[TUTO] piloter une caméra Tp-link Tapo

Je suis repassé sur pytapo 3.3.18 et j’ai maintenant également une erreur d’authentification, j’ai ouvert une issue sur github, je pense qu’il y a un soucis lié à la cam C210 et à son firmware.
Je reviens ici dès que j’ai plus de news si ça peut en aider d’autres.

Le développeur de pytapo m’indique que la version de Python3 à savoir la 3.7 est trop ancienne pour fonctionner avec pytapo 3.3.18, il faudrait passer sur python 3.9 est-ce que c’est possible sur la box jeedom smart ?

C’est enfin fonctionnel pour 2 caméras C210 en firmware 1.3.11 il faut :

  • installer pytapo dernière version aujourd’hui 3.3.18
  • installer python récent j’ai installé python 3.9
  • si C210 alors le user est « admin » et le password est « le password du compte tapo »

Et ça fonctionne merci pour ce tuto, et merci au créateur de pytapo.

1 « J'aime »

Bonjour.
J’ai une camera C210
Je suis une bille car je n’arrive pas a comprendre le tuto , j’ai lu plusieurs post mais je m’embrouille . du coup j’ai de essayer des choses mais ça ne fonctionne pas, j’ai des erreurs comme ça :

.
Je n’ose pas aller plus loin car j’ai peur de faire des betises.
J’ai une une Atlas.voici la page santé ( si ça peut aider):

Il y aurait’il une personne qui aurait la patience de m’aider ?

Bonjour à tous,

J’ai un problème avec avec le scripts, tout fonctionnait bien et puis depuis quelques jours ça, je ne peux plus piloter ma caméra une tapo C200.

J’ai désinstaller puis réinstaller pytapo mais cela n’a pas résolu mon problème, juste changé l’erreur.

Voici l’erreur que j’ai

Erreur exécution de la commande [Scénario][Caméra positions][Defaut] : Erreur sur /var/www/html/plugins/script/data/tapo_defaut.PY 2>&1 valeur retournée : 1. Détails : Traceback (most recent call last): File « /var/www/html/plugins/script/data/tapo_defaut.PY », line 9, in tapo = Tapo(host,user, password) File « /usr/local/lib/python3.9/dist-packages/pytapo/init.py », line 86, in init self.basicInfo = self.getBasicInfo() File « /usr/local/lib/python3.9/dist-packages/pytapo/init.py », line 1009, in getBasicInfo return self.executeFunction( File « /usr/local/lib/python3.9/dist-packages/pytapo/init.py », line 491, in executeFunction data = self.performRequest( File « /usr/local/lib/python3.9/dist-packages/pytapo/init.py », line 530, in performRequest self.ensureAuthenticated() File « /usr/local/lib/python3.9/dist-packages/pytapo/init.py », line 108, in ensureAuthenticated return self.refreshStok() File « /usr/local/lib/python3.9/dist-packages/pytapo/init.py », line 400, in refreshStok raise Exception(« Invalid authentication data ») Exception: Invalid authentication data

En cherchant, je suis tombé sur cette page
https://github.com/JurajNyiri/pytapo qui indique que si l’on a cette erreur, il faut utiliser admin et le mot de passe du compte cloud mais ça n’a pas résolu mon problème.

EDIT: grace au message Pytoon et en reprenant tout à tête reposé j’ai trouvé la solution.
Pour ceux que ça pourrait aider, suite à la désinstallation de pytapo, j’ai mis à jour ma version de python. grace à ce lien https://linuxize.com/post/how-to-install-python-3-9-on-debian-10/
Puis modifier mes scritps avec admin au lieu de l’user que j’avais créer en local sur ma caméra et ça fonctionne.

Pour info à ceux qui voudrait suivre mon exemple, je ne sais quasiment pas ce que je fait, ma seule compétence c’est Google :sweat_smile: et une sauvegarde de ma VM qui me garanti que je peux faire tout mes test asser sereinement, je ne suis donc pas sur que ça soit la bonne manipulation mais ça a fonctionné pour moi.

1 « J'aime »

Bonjour
En parcourant d’autres posts j’ai lu que Python 3.9 etait incompatible avec debian 10.

Vu que moi, j’ai une box atlas avec debian 10 et python 2.7.16 ( d’ailleur je ne devrait pas etre au moins en version 3.7 ) apparement ça ne peut pas fonctionner.
A moins que je me trompe.
Du coup je remet la C210 au placard.

Bonjour à tous,
Merci pour cette discussion qui m’a bien aidé.
J’ai une jeedom smart en 4.3.21 et j’ai reçu du papa noël une caméra Tapo C310.

Je ne suis pas un as de la programmation, du coup j’essaie de me débrouiller avec mon petit cerveau et les forums plutôt bien fourni.

J’ai réussi à configurer ma caméra avec le plugin caméra, je récupère le flux vidéo mais je n’ai pas le son sur Jeedom, mais je l’ai sur VLC, si quelqu’un a une solution sur ce sujet.

Sinon après avoir tout configuré, je voulais récupérer la détection de mouvement, mais j’avoue que je ne comprends pas les scripts écrit plus haut, où trouver les bibliothèques, où mettre les scripts, etc… Du coup j’ai trouvé un plan B (pas terrible mais ça fonctionne).

J’ai utilisé IFTTT pour ça, j’ai connecté mon compte Tapo à IFTTT et dès qu’il y a une détection de mouvement, je reçois un message sur Télégram. J’ai fait l’applet suivant:

Ensuite j’ai utilisé un BOT sur Télégram qui s’appelle @Auto_Forward_Messages_Bot. J’ai utilisé celui la car il est gratuit pour mon besoin. Puis j’ai fait un transfère de mon bot Télégram IFTTT vers mon BOT Télégram Jeedom, et avec une interaction que j’ai configuré, je reçois une notification avec une image et une vidéo lorsque la caméra détecte un mouvement.

J’avoue ne pas être fan de ce système qui utilise IFTTT et aussi le BOT de Télégram. J’aurais préféré faire une requête HTTP via le webhooks sur IFTTT mais c’est payant et je n’ai pas envie de choisir cette option. Si quelqu’un a quelque-chose de mieux concernant la détection de mouvement je suis preneur ! (Merci d’avoir lu ce gros pavé).

1 « J'aime »

Bonjour à tous,
J’aurais bien voulu piloter ma caméra, mais je n’y arrive pas, mon Jeedom est à jour dans la dernière version. J’ai bien installé :

  • installer pytapo dernière version aujourd’hui 3.3.18*
  • installer python récent j’ai installé python 3.9*
    et recopier les codes en faisant attention de ne pas avoir d’espace avant #.
    Mais j’ai un message d’erreur :
Erreur exécution de la commande [Aucun][Caméra 1 vue 1][Vue 1] : Erreur sur sudo chmod +x /var/www/html/plugins/script/data/posSelect1.py 2>/dev/null;python /var/www/html/plugins/script/data/posSelect1.py 2 2>&1 valeur retournée : 1. Détails : File "/var/www/html/plugins/script/data/posSelect1.py", line 12 SyntaxError: Non-ASCII character '\xc3' in file /var/www/html/plugins/script/data/posSelect1.py on line 12, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

Je ne vois pas ce que je fais de mauvais ??

Bonjour, ce serait pour être sûr si il n’y a pas de plugin Jeedom qui intègre pytapo ? ou si il y a un plugin qui arrivera.

pytapo débugué… tu peux les ressortir du placard :yum: (voir mon message dans le forum)

Bonjour à tous,

Je viens de me lancer dans l’intégration de ma Tapo C210 V2 frimware 1.3.11 dans Jeedom.
Plugin camera ok avec le flux+control OnVif.

Par contre souhaitant avoir accès aux fonctionnalités avancées notamment activer.désactiver le mode confidentiel je me suis interessé à ce fil et donc la librairie pytapo.

J’ai sans cesse une erreur d’authentification, j’ai tout tenté

  • user « admin » + mot de passe de mon compte TP-Link principal
  • user et password défini dans le compte caméra (paramètres avancés)

Avez-vous rencontré ce soucis ?

Merci à tous et bon WE
Manu

Edit 20/10 a 16h54

Ce post parle du probleme et des workaround mais visiblement ce n’est pas encore pour maintenant pour les C210…

Pytapo should be back to normal soon as Tp Link is going to release a new version of the app permitting again third parties integrations to work.

1 « J'aime »

J’avais fini par bidouiller un contournement via deux routines dans alexa via alexaapi Une pour activer, une autre pour désactiver le privacy mode sur la caméra.
Pas terriblement fonctionnel (dès fois ça marche, des fois ça marche pas …) et dépend du réseau internet (d’ou le dès fois ça marche … )
Vivement que Tapo réactive ce mécanisme.

Salut,

J’ai acheté ces caméras (C520WS), très impressionné par la qualité et l’application pour le prix payé.
L’image en 2K est magnifique ; le flux même à distance, rien à dire.
Pour l’heure, je suis en Ethernet sur toutes les caméras + carte SD en local.

Pour l’instant, je suis bloqué puisque la dernière mise à jour empêche la connexion ; j’attends patiemment le 13 !

Je tournais avant avec MotionEye mais j’étais limité en traitement de l’image (une HD demandait beaucoup de puissance).

L’idée serait ici à terme de pouvoir :

  • piloter depuis Jeedom les notifications de détection de mouvement : je veux pouvoir continuer à détecter ce qui se passe mais ne pas être notifié (en cas d’intru si nous sommes à la maison par exemple)
  • piloter la caméra en X/Y/Z
  • piloter entre les presets
  • piloter l’infrarouge ou les couleurs en manuel (si besoin)

Ou trouvez-vous la liste des fonctions possibles avec la lib pytapo ?

Je veux pouvoir prendre des photos sur des événements bien précis (on arrive, on récupère le courrier, le facteur passe) etc.
=> sur ce point, je suis passé par Caméras, ça tourne avec le flux stream1.

Salut,

Vu le peu de solution pour le moment. Mon astuce pour récupérer les détections est de passer par la skill Alexa si tu l’utilises.

Pour ma part j’ai créé un virtuel (On, Off et État) par Cam sur JEEDOM.
Je les envoie dans la configuration Alexa comme un accessoire type prise par exemple.
Et je crée une routine dans Alexa qui quand la Cam détecte un mouvement, allume la fameuse prise virtuelle (avec une remise à 0 de la commande info au bout d’une minute)

C’est fastidieux à mettre en place mais ça à le mérite de fonctionner et de façon plutôt fiable.

Si ça peut aider :slight_smile:

Salut, merci pour ton retour, mais pour moi, je ne veux rien sur trucs connectés ou autre.
Je vais migrer de MotionEye à Frigate finalement pour avoir une détection « fiable » comme propose tapo.

J’ai échangé avec le fournisseur de la librairie tapo et il n’y a pas de possibilité pour avoir la détection sans passer par le cloud de Tapo ou bien en utilisant le protocole Onvif. Après lecture, il faudrait un profile S, mais j’ai essayé de le configurer dans le plugin camera, mais cela ne marche pas ; pas de doc à ce sujet.

Ces caméras sont vraiment parfaites je trouve.

Bonjour,
J’ai récemment acheté 2 caméras Tapo C120 pour remplacer une Netamo welcome qui commence à bugger. Comme beaucoup j’aimerai la coupler avec Jeedom. Je crois comprendre que la gestion des scripts ne fonctionne pas / plus.
Je souhaite pouvoir arrêter / allumer le mode Privacy (ou bien pouvoir modifier les paramètres de notification) et me renvoyer une notif de détection avec le type (personne, mouvement…)
Quel est selon vous le meilleur moyen ? Routines alexa ? J’avoue que mes capacités de programmation sont limitées. Si vous avez des exemples pour copier / coller, je suis preneur.
merci !!

Suite :
En creusant je vois que les dysfonctionnements portent sur les problèmes de versions
Je suis sous debian 10, sur un Raspberry 4. Jeedom 4.4.12

J’ai ces lignes lors de l’installation de Pytapo
$ sudo python3 -m pip install pytapo
Looking in indexes: Simple index, piwheels - Simple index
Requirement already satisfied: pytapo in /usr/local/lib/python3.7/dist-packages (3.3.38)
Requirement already satisfied: pycryptodome in /usr/local/lib/python3.7/dist-pac kages (from pytapo) (3.21.0)
Requirement already satisfied: urllib3 in /usr/lib/python3/dist-packages (from p ytapo) (1.24.1)
Requirement already satisfied: requests in /usr/lib/python3/dist-packages (from pytapo) (2.21.0)
Requirement already satisfied: rtp in /usr/local/lib/python3.7/dist-packages (fr om pytapo) (0.0.4)

Je sèche dans le plugin Scritp.
Il est indiquer de copier un code dans la fenêtre qui souvre à la création du script, or je n’ai que la page avec onglets Equipement et commandes.
Je sèche également pour l’intégration des commandes liées à la détection et mise en place du mode privé.
Merci pour votre aide :pray:

Merci pour ce tuto ça m’a bien aidé, j’ai réussi à le faire fonctionner avec ma C210, hardware 1.4.4.

Je suis sous debian 11 avec python 3.3.9 et jeedom 4.4.9. Constat en essayant d’installer pytapo et par conséquent python-kasa (module nécessaire pour pytapo) : les dernières versions à jour ne sont pas compatibles de python 3.3.9.
J’ai donc testé deux méthodes :

  • d’un côté j’ai forcé l’install de pytapo en version 3.3.33 car c’est celle qui semble compatible de la version 0.7.7 du module python-kasa elle-même la seule compatible avec python 3.3.9. (il existe peut-être une combinaison de versions plus récentes mais je n’ai pas cherché).
  • en parallèle avec l’aide de @Michel_F (merci encore m’sieur !)j’ai installé un venv en version 3.11.11 de python (je vous laisse voir ici la méthode un peu poussive à cause de mes faibles connaissances… Je ferai peut-être un tuto plus synthétique un jour !). Ceci m’a permis d’installer pytapo et donc kasa à la dernière version proposée par pip (respectivement 3.3.42 et 0.10.2).

Et maintenant j’arrive à lancer mes scripts dans les deux environnements! Youpi ! Ces scripts reprennent la syntaxe présentée dans le premier message de ce fil par @mic78000 , merci à toi !

1 « J'aime »

Maintenant une question : j’ai réussi à faire un script qui active le mode Privacy , et qui fonctionne :
(ne prêtez pas attention à la classe Info de login_tapo, c’est ma popote pour ne pas avoir à rentrer dans chaque script les infos persos, et ça fonctionne).

#!/usr/bin/env python3

from pytapo import Tapo
import sys
  
from login_tapo import Info #import de la classe Info du fichier login_tapo.py contenant les login/MDP/ip

def privacyOn() :
    tapo2=Tapo(Info.host, Info.user, Info.password)
    res=tapo2.setPrivacyMode("on") 
    return res

result=privacyOn()
print (result)

Mais son petit frère pour désactiver le mode Privacy ne fonctionne pas, j’ai bien le message « exécuté avec succès » dans jeedom mais rien ne change sur la caméra. Ai-je raté qqch ?

#!/usr/bin/env python3

from pytapo import Tapo
import sys
  
from login_tapo import Info #import de la classe Info du fichier login_tapo.py contenant les login/MDP/ip

def privacyOff() :
    tapo2=Tapo(Info.host, Info.user, Info.password)
    res=tapo2.setPrivacyMode("off") 
    return res
    
result=privacyOff()
print (result)

Hello,

D’après le code de pytapo, il faut utiliser True ou False et pas "on" ou "off".

A+
Michel

1 « J'aime »

Rohlala décidément t’es mon sauveur :smiley: !
J’étais parti de ces lignes trouvées sur le github de pytapo, et ça mentionnait on et off :upside_down_face:

def setPrivacyMode(self, enabled):
        return self.executeFunction(
            "setLensMaskConfig",
            {"lens_mask": {"lens_mask_info": {"enabled": "on" if enabled else "off"}}},
        )

Mais je les ai sûrement mal interprétées ?

enabled est la variable passée en paramètre et est testée pour savoir si "on" ou "off" est envoyé à une fonction. if enabled nécessite que enabled soit un booléen.

D’ailleurs, maintenant que j’y suis, tu peux n’avoir qu’un seul script avec on ou off en paramètre :

#!/usr/bin/env python3

from pytapo import Tapo
import sys
  
from login_tapo import Info #import de la classe Info du fichier login_tapo.py contenant les login/MDP/ip

def getParam():
    ret = None
    if len(sys.argv) >= 1:
        ret = sys.argv[1]
    return ret

def setPrivacy(mode):
    tapo2 = Tapo(Info.host, Info.user, Info.password)
    return tapo2.setPrivacyMode(mode) 
    
param = getParam()
if param in ['on', 'off']:
    result=setPrivacy(param == "on")
    print (result)
else:
    print("error")

1 « J'aime »