Aller au contenu

Ender 3V2 - TP-Link TAPO 100 connexion échec - Octoprint/Raspeberry pi4


Messages recommandés

Posté(e)

Bonjour,

Ayant rencontré quelques difficultés avec la bibliothèque python PyP100, je suis passé à l'API : "from tapo_plug import tapoPlugApi".
J'arrive à lire l'état de la prise et à la commander par script python. S'il y en a que ça intéresse, je peux développer ce point.

Mais pour répondre à ta question @bedepe, je pense que tu as juste à
- aller dans les paramètre d'Octoprint
- dans la partie "Printer", tu trouveras un menu "GCODE Scripts" : dans la case "Après l'impression", tu rajoutes M81
- tu enregistres.

Et voila : à chaque fin d'impression, ton imprimante s'éteindra ... ce que tu va rapidement trouver pénible quand tu voudras enchainer les impressions, mais tu peux désactiver l'option en rajouter un ";" devant l’instruction "M81".

Attention, ce n'est que lorsque l'impression se termine normalement que l'imprimante s'arrêtera. Je te laisse le soin d'explorer les autres possibilités offertes par ce menu.

  • 2 months later...
Posté(e)
Le 17/02/2022 at 21:17, GuniLingus a dit :

Et bonsoir à tous. Le soucis du plugin pour les Tapo vient d'un conflit qu'Octoprint a avec une dépendance du plugin.

Pour l'installer et le paramétrer voilà le lien à entrer en installation via url:  https://github.com/harisjmd/OctoPrint-TapoSmartplug/archive/refs/heads/master.zip

Une fois installé il ne vous reste plus qu'à entrer vos infos dans la gestion du plugin.

J'espère que ça pourra en aider plus d'un qui comme moi galère 😄

Bonsoir,

J'ai rencontré le même problème de pilotage pour ma prise connectée Tapo.

J'ai testé avec votre plugin, mais cela ne fonctionne toujours pas. Je possède une Tapo P110, est-ce que le plugin ne fonctionne qu'avec les Tapo P100 ?

Posté(e) (modifié)
Il y a 10 heures, Roma1n a dit :

Je possède une Tapo P110, est-ce que le plugin ne fonctionne qu'avec les Tapo P100 ?

Possible... J'ai un P100 donc je ne peux pas reproduire ! Mais j'en doute : TPLINk ne va pas entretenir une API par modèle...

Je n'utilise pas le plugin PSU Control mais GCODE System Commands qui me permet de créer des pseudo-commandes gcode de lancement de scripts python.

Par exemple, voici le script d'extinction de la prise :

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# by RFN 2023

from tapo_plug import tapoPlugApi


imp3d = {"tapoIp": "(adresse IP de la prise)","tapoEmail": "(email de login tapo)","tapoPassword": "(mot de passe)"}
tapoPlugApi.plugOff(imp3d)

(remplacer les chaines entre parenthèses, par tes valeurs)

En remplaçant tapoPlugApi.plugOff(imp3d) par tapoPlugApi.plugOn(imp3d), on obtient l'effet inverse.

Modifié (le) par RFN_31
Posté(e)
Le 17/04/2023 at 09:00, RFN_31 a dit :

Possible... J'ai un P100 donc je ne peux pas reproduire ! Mais j'en doute : TPLINk ne va pas entretenir une API par modèle...

J'ai pu échanger ma prise P110 par une prise P100.
J'ai testé de nouveau avec le plugin : https://github.com/harisjmd/OctoPrint-TapoSmartplug/archive/refs/heads/master.zip

Mais j'obtiens toujours la même erreur, l’icône éclair est grisé et tourne en rond.

image.png.b866855df2e5774df2d9c7d68dc1660a.png

Je vous ai joint la configuration de ma prise dans le plugin.
L'adresse IP est défini statiquement donc je suis sur de celle-ci.
Est-ce que vous auriez une idée de l'erreur s'il vous plaît ?

 

Le 17/04/2023 at 09:00, RFN_31 a dit :

Je n'utilise pas le plugin PSU Control mais GCODE System Commands qui me permet de créer des pseudo-commandes gcode de lancement de scripts python.

Par exemple, voici le script d'extinction de la prise :

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# by RFN 2023

from tapo_plug import tapoPlugApi


imp3d = {"tapoIp": "(adresse IP de la prise)","tapoEmail": "(email de login tapo)","tapoPassword": "(mot de passe)"}
tapoPlugApi.plugOff(imp3d)

(remplacer les chaines entre parenthèses, par tes valeurs)

En remplaçant tapoPlugApi.plugOff(imp3d) par tapoPlugApi.plugOn(imp3d), on obtient l'effet inverse.

Je ne connais pas ce plugin, est-ce vous pouvez me dire comment je dois faire pour rajouter ce script et pour l'exécuter s'il vous plaît ?

image.png.f63ddb2dd93da9a8dfa4efe4db8962f7.png

Je vous remercie.

Posté(e)

Pour installer le tapoPlugApi,  se connecter avec Putty au Raspberry et taper la commande :

pip install tapo-plug
Pour info, la page de l'API : https://pypi.org/project/tapo-plug/

OctoPrint aura besoin du plugin GCODE System Commands que tu installes via le plugin manager.

Après il suffit de créer une commande qui appelle le script donner précédemment.

Posté(e)
Il y a 3 heures, RFN_31 a dit :

Pour installer le tapoPlugApi,  se connecter avec Putty au Raspberry et taper la commande :

pip install tapo-plug
Pour info, la page de l'API : https://pypi.org/project/tapo-plug/

OctoPrint aura besoin du plugin GCODE System Commands que tu installes via le plugin manager.

Après il suffit de créer une commande qui appelle le script donner précédemment.

Je vous remercie pour votre réponse.

J'ai pu installer le tapo-plug et le plugin GCODE  System Commands sur Octoprint.
J'ai créer un script pour éteindre la prise mais rien ne se passe :

image.png.5f597f966ac1b124921056d4111987b7.png

image.png.e80dad4bab2e0a76fe87bd12453bee3f.png

J'ai essayé de ping la prise, et le ping est fonctionnel.
Est-ce que vous avez une idée du problème s'il vous plaît ?
Pour l'appeler dans un gcode je dois juste ajouter la ligne "OCTO1;" ? Pour tester est-ce que je peux tester un gcode juste avec cette ligne de code ?

Je vous remercie

Posté(e)

Bonjour,

vu que TapoOff appartient à root, la commande OCTO1 devrait plutôt être : sudo /usr/local/bin/TapoOff.sh

(Et d'ailleurs pourquoi sh et que contient ce fichier ? le code que j'ai donné est en python...)

Python est-il bien installé ? En quelle version ?

As-tu testé tes commandes avant de vouloir les lancer depuis OctoPrint ?

Posté(e)
Il y a 13 heures, RFN_31 a dit :

Bonjour,

vu que TapoOff appartient à root, la commande OCTO1 devrait plutôt être : sudo /usr/local/bin/TapoOff.sh

(Et d'ailleurs pourquoi sh et que contient ce fichier ? le code que j'ai donné est en python...)

Python est-il bien installé ? En quelle version ?

As-tu testé tes commandes avant de vouloir les lancer depuis OctoPrint ?

Pour le fichier TapoOff.sh j'ai repris l'un des exemples du lien que vous avez donné : https://pypi.org/project/tapo-plug/
Pour la commande OCTO1 j'ai repris l'exemple du plugin GCODE System Commands
image.png.6993ec7f0374274d4f402208a1ef33d2.png

 

Voici ma version de python :
image.png.f815ce51104d9718b724b52a3dca84aa.png

J'ai recopié votre script pour l'exécuter en local sur la carte, voici le message que j'obtiens :
image.png.020263c59a80c0826925cce8bdca17d5.png
image.png.0a64b3fbff7e0a3ad2d702d7a47e75fd.png

Pourtant j'ai bien exécuter la commande "pip install tapo-plug" :
image.png.0d2a4df275efa985e773de39f009ebe1.png

Est-ce que vous avez une idée d'où peut venir l'erreur ?
Pour la commande OCTO, si j'utilise un script python quelle est la commande à mettre ? "sudo /usr/local/bin/TapoOff.py" ?

Je vous remercie

 

image.png

image.png

image.png

Posté(e)
Il y a 13 heures, Roma1n a dit :

Pour la commande OCTO, si j'utilise un script python quelle est la commande à mettre ? "sudo /usr/local/bin/TapoOff.py" ?

Oui

Mais cela ne marchera pas tant qu'il y a l'erreur sur le module crypto. A priori, il faut désinstaller les anciens modules et installer pycryptodome. Voici les commandes :

pip3 uninstall crypto 
pip3 uninstall pycrypto 
pip3 install pycryptodome
Posté(e)

Que donne cette commande :

pip3 list | grep crypt

Certains ont résolu le problème du module Crypto avec cette commande :

ln -s /usr/lib/python3/dist-packages/Cryptodome /usr/lib/python3/dist-packages/Crypto

Posté(e)

Voici le résultat :
image.png.769de49dcf698bed0da8ddef7f8820d3.png

J'ai trouvé une autre librairie et un autre script qui me permet de piloter ma prise connecté
Maintenant le problème est pour appeler ce script dans un fichier GCODE
J'ai créé une commande OCTO1 pour l'éteindre :
image.png.cb260172cf918487590b29dea2a69efa.png

Et j'ai créé un fichier GCODE avec 1 seule ligne "OCTO1;"

Mais cela n'éteint pas la prise
Avez-vous une idée de comment utiliser ce plugins'il vous plaît ?

Posté(e)

Tu veux dire que tu as trouvé une autre biblio et un script qui commande ta prise. Alors il faut que ta commande OCTO1 appelle ton scrypt et non plus '/home/pi/TapoOff.py'

Si tu continues à appeler un script qui ne fonctionne pas, forcément ta commande échoue !

 

Par ailleurs, pas besoin de créer un script pour tester ta commande OCTO1 : si tu vas dans l'onglet 'Terminal' d'OctoPrint, tu peux taper tes commandes gcode directement...

Posté(e) (modifié)

Justement j'ai modifié mon script TapoOff.py
Il correspond au nouveau script avec la nouvelle biblio

Je ne savais pas pour l'onglet Terminal... En effet lorsque j'appelle la commande OCTO1, j'ai une erreur en retour

J'ai essayé la commande "python3 /home/pi/TapoOff.py" dans un terminal, et celle-ci fonctionne très bien
Est-ce que je dois mettre cette commande dans le plugin ou juste le chemin absolu du fichier ?

Modifié (le) par Roma1n
Posté(e)

N'étant pas sur du bon fonctionnement à répétition de l'autre méthode j'ai reprise votre programme en créant le lien symbolique que vous m'avez conseillé et cela fonctionne correctement.
La commande OCTO1 pour appeler le script pour éteindre la prise fonctionne également.
Je peux donc appeler cette commande à la fin d'un fichier gcode pour éteindre l'imprimante. Pour éviter de rajouter cette commande dans chaque fichier GCODE, l'ajout de la commande M81 dans le script après impression le permet, est-ce bien ça ? Est-ce que je dois créer cette commande M81 ou existe-elle par défaut ?

Mon nouveau problème est pour allumer cette prise, car si l'imprimante est éteinte je ne peux exécuté aucune commande, donc comment je peux appeler un script depuis Octoprint sans passer par l'imprimante ?

Posté(e)

Tu peux créer une autre commande pour allumer l'imprimante. Il te suffira de la lancer par le terminal d'octoprint.

Oublie le M81 : Tu mets dans les paramètres d'octoprint un OCTO1 après toute impression. Je préconise aussi d'y mettre une tempo (un 'sleep 300' par exemple) pour attendre que l'imprimante ait le temps de refroidir : couper les ventilo quand elle est encore très chaude n'est pas une bonne idée...

Après, avec un smartphone, tu peux installer l'appli Tapo pour commander ta prise...

Posté(e)

Oui, je pense que je vais utiliser l'application pour contrôler la prise et Octoprint seulement pour l'imprimante. Je vais m'intéresser à essayer de me connecter depuis l'extérieur à Octoprint.

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...