Bonjour,
pour infos j’ai débugué le script pytapo pour caméra Tapo C200 et C310.
pytapo 3.3.19 (la derniere version dispo à ce jour)
python 3.7.3 (derniere version dispo sur jeedom debian10) , testé et validé aussi avec python 3.9.0
firmware 1.3.9 sur cam (derniere mise à jour dispo à ce jour)
Je n’ai pas de souscription au cloud mais le compte est actif.
https://tapo.tplinkcloud.com/tapo_web/#/login/signIn
L’application Android active le MFA (authentifiction à 2 facteurs): Rendre votre compte plus sécurisé : introduction de la vérification en deux étapes (2FA) pour l'application Tapo | TP-Link France
C’est ce qui est la cause du pb de l’authentification avec le script pytapo
Donc se connecter sur le cloud pour avoir un code (envoyer sur le téléphone) qui permet de confirmer la connexion.
la nouvelle version de pytapo utilise une synthaxe ternaire pour les IF
Il faut donc repasser en synthaxe simple dans 2 fichiers !
fichier 1:
~/.local/lib/python3.7/site-packages/pytapo/media_stream/_utils.py
à la ligne 56
remplacer
if i := b.find(sep, start_index) != -1:
par
i=b.find(sep, start_index)
if i != -1:
fichier 2:
~/.local/lib/python3.7/site-packages/pytapo/media_stream/tsReader.py
à la ligne 153
remplacer
if pkt := self.pes[pid].GetPacket():
par
if pkt == self.pes[pid].GetPacket():
se connecter en ssh sur le Raspberry Jeedom
mettre à jour Debian/Jeedom (apt update puis apt upgrade)
verifier la version de python ( python3 --version)
installer pytapo (python -m pip install pytapo)
vérifier la version de pytapo (pip show pytapo)
créer un fichier de test (test.py) avec dedans
#!/usr/bin/env python3
from pytapo import Tapo
password_cloud = "pass_cloud" # cloud password
host = "ipJeedom" # ip of the camera, example: 192.168.1.52
tapo = Tapo(host, "admin", password_cloud)
request = tapo.getBasicInfo()
print(request)
tester:
python3 test.py
et voilà ma C200 et C310 sont de retours !
Pour ceux qui veulent jouer un peu c’est ce script qui m’a mis sur la piste: