RFN_31 Posté(e) Janvier 28, 2023 Posté(e) Janvier 28, 2023 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.
Roma1n Posté(e) Avril 16, 2023 Posté(e) Avril 16, 2023 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 ?
RFN_31 Posté(e) Avril 17, 2023 Posté(e) Avril 17, 2023 (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) Avril 17, 2023 par RFN_31
Roma1n Posté(e) Avril 18, 2023 Posté(e) Avril 18, 2023 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. 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 ? Je vous remercie.
RFN_31 Posté(e) Avril 19, 2023 Posté(e) Avril 19, 2023 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.
Roma1n Posté(e) Avril 19, 2023 Posté(e) Avril 19, 2023 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 : 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
RFN_31 Posté(e) Avril 20, 2023 Posté(e) Avril 20, 2023 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 ?
Roma1n Posté(e) Avril 20, 2023 Posté(e) Avril 20, 2023 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 Voici ma version de python : J'ai recopié votre script pour l'exécuter en local sur la carte, voici le message que j'obtiens : Pourtant j'ai bien exécuter la commande "pip install tapo-plug" : 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
RFN_31 Posté(e) Avril 21, 2023 Posté(e) Avril 21, 2023 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
Roma1n Posté(e) Avril 22, 2023 Posté(e) Avril 22, 2023 Je viens d'exécuter vos commandes et j'ai toujours la même erreur lors de l'exécution du script python depuis Putty :
RFN_31 Posté(e) Avril 22, 2023 Posté(e) Avril 22, 2023 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
Roma1n Posté(e) Avril 22, 2023 Posté(e) Avril 22, 2023 Voici le résultat : 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 : 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 ?
RFN_31 Posté(e) Avril 22, 2023 Posté(e) Avril 22, 2023 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...
Roma1n Posté(e) Avril 22, 2023 Posté(e) Avril 22, 2023 (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) Avril 22, 2023 par Roma1n
Roma1n Posté(e) Avril 22, 2023 Posté(e) Avril 22, 2023 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 ?
RFN_31 Posté(e) Avril 22, 2023 Posté(e) Avril 22, 2023 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...
Roma1n Posté(e) Avril 22, 2023 Posté(e) Avril 22, 2023 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.
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant