N’hésitez pas à mettre en commentaire les résultats de vos essais.
Ce tuto est un peu une mise en forme de ce que j’ai trouvé sur le forum. Par exemple ici :
Et de mes propres essais.
Le code est inspiré de celui de @Nostromo42
Ce tuto nécessite l’installation du plugin Script.
Comment piloter une caméra Tapo ?
Il existe une bibliothèque python qui permet de piloter la caméra. Très complète, elle permet de faire la plupart des actions que vous pouvez faire avec l’appli Tapo.
Installation de pip :
Si vous ne l’avez pas encore installez pip.
sudo apt install python3-pip
EDIT : Attention, voir dans les derniers messages celui de PyToon 24 novembre 2023:
- installer pytapo dernière version aujourd’hui 3.3.18*
- installer python récent j’ai installé python 3.9*
Chargement de la bibliothèque :
Via ssh, par exemple via putty tapez la ligne suivante :
sudo python3 -m pip install pytapo
A vérifier, mais j’ai l’impression que si on ne met pas le sudo, la bibliothèque n’est disponible que pour l’utilisateur en cours lors de l’installation et donc pas pour jeedom.
Dans jeedom, dans le plugin script
Créez une nouvelle action de type script :
Cliquez sur « nouveau »
Donnez un nom à votre script
ATTENTION l’extension PY doit être en majuscule.
Puis, copiez ce code dans la fenêtre d’édition qui s’ouvre :
Attention, erreur classique : pas de blanc derrière #
Remplacez les XXXXX par vos valeurs en laissant les guillemets
utilisateur : mdp que vous aurez ajouté via l’application Tapo (via votre smartphone).
Pour les C100, C200, il faut bien utiliser le « login du compte local » ou « admin » ainsi que le « mot de pass local » de l’application tapo. Utilisateur et mdp que vous aurez donc ajouté via l’application Tapo (via votre smartphone) en faisant mdp/utiisateur que l’on donne dans l’ap Tapo :
roue dentée / Réglage avancé / compte de la caméra
Pour la C310, il faut utiliser le login « admin » et le « mot de passe local » du compte application tapo
Pour la C210, il faut utiliser le login « admin » et le "mot de passe du compte TPLINK " (le compte principal)
Host : l’IP de votre caméra.
#!/usr/bin/env python3
from pytapo import Tapo
import sys
user="xxxxxxx" # user you set in Advanced Settings -> Camera Account
password="xxxxxxxxxxxx" # password you set in Advanced Settings -> Camera Account
host="xxxxxxxxxxxx" # ip of the camera, example: 192.168.1.52
def moveX(x) :
tapo2=Tapo(host, user, password)
res ={}
try :
res = tapo2.moveMotor(x,0)
except Exception :
print("Caméra en butée (X)")
res["error_code"] =-1
if(res.get("error_code")==0) :
return 1
else :
return -1
moveX(sys.argv[1])
Donnez un nom à votre commande
Donnez une valeur de déplacement en paramètre (ici 10 )
Vous devriez voir votre caméra tourner si elle n’est pas déjà en limite de rotation.
Le paramètre peut être une commande info :
D’autres fonctions que vous pouvez utiliser :
moveY (inclinaison de la caméra)
#!/usr/bin/env python3
from pytapo import Tapo
import sys
user="xxxxxxx"
password="xxxxxxxx"
host="xxxxxxxxxxxx"
def moveY(y) :
tapo2=Tapo(host, user, password)
res ={}
try :
res = tapo2.moveMotor(0,y)
except Exception :
print("Caméra en butée (Y)")
res["error_code"] =-1
if(res.get("error_code")==0) :
return 1
else :
return -1
moveY(sys.argv[1])
moveXY (déplacement dans les deux sens à la fois)
#!/usr/bin/env python3
from pytapo import Tapo
import sys
user="xxxxxx"
password="xxxxxxxxxx"
host="xxxxxxxxx"
def moveY(x,y) :
tapo2=Tapo(host, user, password)
res ={}
try :
res = tapo2.moveMotor(x,y)
except Exception :
print("Caméra en butée (Y)")
res["error_code"] =-1
if(res.get("error_code")==0) :
return 1
else :
return -1
moveY(sys.argv[1],sys.argv[2])
exemple d’appel :
ou en utilisant des virtuels donnant le déplacement à réaliser :
setPreset (aller à une position présélectionnée)
A vous de voir si vous ajoutez les try exept. Là, je ne les ai pas mis
Passez en paramètre le n° de la présélection
#!/usr/bin/env python3
from pytapo import Tapo
import sys
user="xxxxxxx"
password="xxxxxxxx"
host="xxxxxxxxx"
def preselect(s) :
tapo2=Tapo(host, user, password)
res=tapo2.setPreset(s) # ID de la préposition voulue
preselect(str(sys.argv[1]))
Création d’un présélection
Passez en paramètre le nom que vous voulez donner à votre présélection
#!/usr/bin/env python3
from pytapo import Tapo
import sys
def savePreset(s) :
user="xxxxx"
password="xxxxx"
host="xxxxxxx"
tapo2=Tapo(host, user, password)
res=tapo2.savePreset(s) # ID de la préposition voulue
savePreset(str(sys.argv[1]))
reboot`Pour le reboot :
#!/usr/bin/env python3
from pytapo import Tapo
import sys
user="XXXX"
password="XXXX"
host="XXXXXX"
def reboot() :
tapo2=Tapo(host, user, password)
res=tapo2.reboot()
return res
result=reboot()
print (result)
Attention, un reboot met du temps avant de se faire. Etre patient après l’avoir déclenché.
`