Hello,
J’ai essayé de me lancer sur l’utilisation de pytapo pour piloter ma caméra C210 fraîchement installée (et opérationnelle autrement via le plugin-camera, y compris avec les commandes ptz) et je bloque.
L’install du module semble fonctionnel puisque la commande ssh pip show pytapo montre que la version 3.3.42 est installée.
J’ai créé le script initiate.pyproposé sur le git en remplaçant dans celui les login MDP et ip, et dès l’exécution de celui-ci j’ai un message d’erreur :
0015|[2025-03-14 09:17:26] ERROR : Erreur exécution de la commande [Aucun][tapo][test] : Erreur sur sudo chmod +x /var/www/html/plugins/script/data/Initiate.PY 2>/dev/null;/var/www/html/plugins/script/data/Initiate.PY 2>&1 valeur retournée : 1. Détails : Traceback (most recent call last): File "/var/www/html/plugins/script/data/Initiate.PY", line 3, in <module> from pytapo import Tapo File "/usr/locl/lib/python3.9/dist-packages/pytapo/__init__.py", line 12a, in <module> from kasa.transports import KlapTransportV2, KlapTransport ModuleNotFoundError: No module named 'kasa'
Une idée ?
Mon script initiate.py en question:
#!/usr/bin/env python3
from pytapo import Tapo
user = "****" # user you set in Advanced Settings -> Camera Account
password = *****:" # password you set in Advanced Settings -> Camera Account
host = "192.168.1.47" # ip of the camera, example: 192.168.1.52
tapo = Tapo(host, user, password)
request = tapo.getBasicInfo()
print (request)
Merci Michel pour ta réponse rapide. J’ai donc installé le module « python-kasa » (car « kasa » tout seul c’est une librairie en ghanéen ) en faisant la commande sudo python3 -m pip install python-kasa mais maintenant j’ai le message suivant :
0019|[2025-03-14 11:02:33] ERROR : Erreur exécution de la commande [Aucun][tapo][test] : Erreur sur sudo chmod +x /var/www/html/plugins/script/data/Initiate.PY 2>/dev/null;/var/www/html/plugins/script/data/Initiate.PY 2>&1 valeur retournée : 1. Détails : Traceback (most recent call last): File "/var/www/html/plugins/script/data/Initiate.PY", line 3, in <module> from pytapo import Tapo File "/usr/local/lib/python3.9/dist-packages/pytapo/__init__.py", line 12, in <module> from kasa.transports import KlapTransportV2, KlapTransport ModuleNotFoundError: No module named 'kasa.transports'
J’aurais pensé que kasa.transports était inclus dans kasa . Comme tu peux le vois je suis novice en python
Oui tout ce que je fais jusque là est en ssh. Le résultat est là (j’ai corrigé l’espace entre le - et le m ) :
jeedom@JeedomAtlas:~$ python3 -m pip list | grep kasa
python-kasa 0.7.7
jeedom@JeedomAtlas:~$ python3
Python 3.9.2 (default, Feb 28 2021, 17:03:44)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more informati
on.
>>> from kasa.transports import KlapTransportV2, KlapTransport
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'kasa.transports'
>>> exit()
En fait Tapo est la marque de TPLink pour la domotique donc ça ne me paraît pas si déconnant, si ?
Est-ce que le problème ne viendrait pas du fait que dans l’arborescence du module kasa il n’y a pas de fichier transports.py mais un répertoiretransports ?
OK, je n’avais pas cherché plus d’info, mais ça se tient.
Non, c’est correcte. Les classes sont linkées dans le fichier __init__.py
Par contre tu as la version 0.7.7 de python-kasa alors que la dernière version est la 0.10.2. Je ne suis pas un spécialiste de pip, d’instinct, je désinstallerais le module et le réinstallaerais dans un venv en forçant la version à 0.10.2 pour voir quels sont les messages d’erreur. Il y a sans doute plus propre/élégant mais au moins dans un venv, c’est indépendant du système et si le venv est cassé, il suffit de le supprimer.
Est-ce que tu utilises un plugin de Mips ou MyModbus ou tout autre plugin qui utilise la bibliothèque développée par Mips et nebz, celle qui installe pyenv ?
Pour le savoir, que retourne : ls -l /opt ? S’il y a un répertoire pyenv c’est que c’est le cas.
jeedom@JeedomAtlas : -$ ls -l /opt total 4
drwxr-xr-x 14 root root 4096 3 mars 19: 22 pyenv
J’ai essayé d’installer une version plus ancienne de pytapo (0.3.33) qui correspond à la date de la release de la version 0.7.7 de kasa (la dernière compatible avec python 3.9) et ça semble marcher un peu mieux (message d’erreur différent en rapport avec l’impossibilité de connexion à la caméra, car entre temps j’ai fait une autre manip’ et du coup elle est débranchée). Mais j’ai l’impression que je progresse
Je vais essayer de te guider vers l’utilisation d’un venv pyenv sous python 3.11 que tu as sans doute déjà sur ta machine et sinon, on va l’installer, ce n’est pas grand chose. Que retournent ces commandes ?
En fait ne perds pas ton temps avec venv Michel, avec les anciennes versions installées comme expliqué plus haut cela fonctionne maintenant ! Merci de m’avoir guidé et d’avoir pris du temps.
Je laisse encore un peu le sujet ouvert au cas où j’ai d’autres soucis
Oh laaa, mais c’est royal, tu as 3 versions de python 3.11 installées sous pyenv, on va prendre la dernière et faire un venv.
On va faire comme dans un fil auquel j’ai participé, mais avec une version python d’un pyenv :
1ère ligne test de version de python, ça doit être 3.9.2
2ème ligne : création d’un venv dédié à pytapo (NE PAS utiliser sudo !)
3ème ligne activation du venv avec lequel on va faire les tests
4ème ligne test de version de python, maintenant ça doit être 3.11.11 puisque le venv est activé
5ème ligne mise à jour de base
6ème ligne: installation de pytapo et de python-kasa
7ème ligne vérification des versions installées
Par contre le pip upgrade semble bloquer, il faut lancer en sudo ? (Et à peu près même message pour linstall de kasa) :
pytapo_venv) jeedom@JeedomAtlas:~$ python3 -m pip install --upgrade pip wheel
Requirement already satisfied: pip in /var/www/html/plugins/script/data/pytapo_venv
/lib/python3.11/site-packages (24.0)
Collecting pip
Using cached pip-25.0.1-py3-none-any.whl.metadata (3.7 kB)
Collecting wheel
Using cached wheel-0.45.1-py3-none-any.whl.metadata (2.3 kB)
Using cached pip-25.0.1-py3-none-any.whl (1.8 MB)
Using cached wheel-0.45.1-py3-none-any.whl (72 kB)
Installing collected packages: wheel, pip
ERROR: Could not install packages due to an OSError: [Errno 13] Permission non acco
rdée: '/var/www/html/plugins/script/data/pytapo_venv/lib/python3.11/site-packages/w
heel'
Check the permissions.
[notice] A new release of pip is available: 24.0 -> 25.0.1
[notice] To update, run: pip install --upgrade pip
Il faudrait trouver avec quel utilisateur ça fonctionnerait pour le tester en ssh. Par contre avec le plugin script, il faudra que ça fonctionne avec l’utilisateur www-data.
Peut-être avec jeedom:jeedom ?
Je te cache pas que je suis un peu perdu là .
J’ai pas fait le chown q’dont tu parlais plus haut car je ne sais pas à quoi ça sert, et je ne sais pas comment utiliser jeedom:jeedom comme utilisateur, et pour lancer quoi ?