[Tuto] Intégration prises Tuya / Smart Life

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
breizhcat
Messages : 23
Inscription : 24 mai 2020, 12:08
Localisation : Aussonne
Contact :

[Tuto] Intégration prises Tuya / Smart Life

Message par breizhcat »

Bonjour à tous,

Suite aux messages de cette conversation j'ai creusé un peu pour réussir à intégrer mes prises Tuya (Modèle AWP08L) dans Domoticz.

Après beaucoup d'essais infructeux, je suis tombé sur une explication permettant d'obtenir les clés via API Rest. Par chance on peut aussi envoyer des commandes aux devices.

Un peu de configuration dans Domoticz et un peu de Python m'ont permis de faire fonctionner le tout.

Le code est disponible ici : https://github.com/BreizhCat/domoticz-tuya

Comment ça marche ?

Step 1 - Obtenir des clés et lié son compte
A force de recherche je suis tombé sur une nouvelle méthode pour récupérer les fameuses Local Key sur cette page Tuyapi Repo. Malheureusement malgré plusieurs essais, je n'ai pas réussi à intégrer de manière fonctionnelle mes prises dans Domoticz. J'ai fini par trouver une autre solution. Cela existe peut être déjà mais ici c'est ma solution.
  • Créez un compte sur ce site iot.tuya.com.
  • Enregistrez vos prises dans l'application via votre téléphone (Android or IOS).
  • Une fois le compte validé, cliquez sur "Cloud Development" dans la barre en haut puis cliquez sur "Create". Après avoir créé l'application cliquez dessus pour obtenir vos clés.
  • A partir d'ici ma solution diffère un peu. Dans le menu de gauche cliquez sur "Linked Devices". Sélectionnez l'onglet "Link devices by App Account". Sur votre téléphone allez dans "Profil" cliquez sur l’icône "Scan". Dans la page web cliquez sur "Add App Account" and scannez le QR code. Votre compte est maintenant lié "Tuya Cloud".
Step 2 - Configure the application
Dans le dossier du script vous trouverez code.json.model. Renommez le en code.json et complétez le avec les informations Client ID et Client Secret.

Image

Code : Tout sélectionner

{ "devices":{ "prise_a":"", "prise_b":"" }, "client_id":"", "app_id":"" }
La liste des devices est totalement optionnelle pour le moment. Je l'ai ajouté afin de garder en mémoire les ids des prises. Ces derniers se trouvent dans l'application dans les informatins du Device à la ligne ID Virtuel.

Step 3 - Play with it
Ce script envoi des requêtes au Cloud Tuya pour envoyer des commandes aux prises.
Options available
main.py --switch <ID> <True|False>
main.py --status <ID>
main.py --toggle <ID>
Installation
Dans votre dossier de scripts Domoticz clonez le repo.

Code : Tout sélectionner

git clone https://github.com/BreizhCat/domoticz-tuya.git
Ajoutez le mode éxecutable au fichier main.py. chmod a+x main.py

Image

Dans Domoticz créez un dummy device et sur les actions On & Off appeller le script avec l'option switch True or False.

Bon courage et pardonnez mon code en python c'est mon premier script :) !

Merci.
Dernière modification par breizhcat le 04 juin 2020, 11:37, modifié 1 fois.
Rpi3 / Domoticz Beta
Scripts LUA
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: Intégration prises Tuya / Smart Life

Message par Wolfen38 »

Ca fonctionnerait pour un inter de volet tu penses ?
breizhcat
Messages : 23
Inscription : 24 mai 2020, 12:08
Localisation : Aussonne
Contact :

Re: Intégration prises Tuya / Smart Life

Message par breizhcat »

Il faut voir si le device est disponible une fois appairé à l'application.

Avec l'application POSTMAN on peut faire plein de tests. Je peux faire quelques captures pour montrer comment s'en servir.
Ce soir là je n'ai pas le temps.
Rpi3 / Domoticz Beta
Scripts LUA
breizhcat
Messages : 23
Inscription : 24 mai 2020, 12:08
Localisation : Aussonne
Contact :

Re: Intégration prises Tuya / Smart Life

Message par breizhcat »

Alors voilà.

J'ai ajouté un fichier dans le repo Git avec l'explication pour les tests POSTMAN

https://github.com/BreizhCat/domoticz-t ... POSTMAN.md
Rpi3 / Domoticz Beta
Scripts LUA
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: Intégration prises Tuya / Smart Life

Message par Wolfen38 »

Merci, je vais regarder tout ca de pret.

Mon inter de volet tuya a encore fait des siennes cette nuit, pour le moment, je le controle dans dz via ifttt, mais parfois ca ne fonctionne pas, et comme pas de retour d'etat, impossible de savoir si la commande est bien passé...

Du coup cette nuit, la porte de mon poulailler est restée ouverte, heureusement, le renard est pas passé.... Gros coup de pot...

Avec ta façon de faire, t'as un retour d'état de tes inter ?
breizhcat
Messages : 23
Inscription : 24 mai 2020, 12:08
Localisation : Aussonne
Contact :

Re: Intégration prises Tuya / Smart Life

Message par breizhcat »

Hello

Oui y a une méthode status. Qui renvoi le statut du device.
Rpi3 / Domoticz Beta
Scripts LUA
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: Intégration prises Tuya / Smart Life

Message par Wolfen38 »

Super, merci
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: Intégration prises Tuya / Smart Life

Message par Wolfen38 »

Quand tu parles d'une appli au debut, tu parles de quelle appli ?

Car mon inter de volet est dans smartlife, et quand je vais dans profil, y a pas scan....
breizhcat
Messages : 23
Inscription : 24 mai 2020, 12:08
Localisation : Aussonne
Contact :

Re: Intégration prises Tuya / Smart Life

Message par breizhcat »

Tuya Smart (https://play.google.com/store/apps/deta ... mart&hl=fr).

J'ai mis à jour le post principal. J'ai oublié de remettre les liens.
Rpi3 / Domoticz Beta
Scripts LUA
getget
Messages : 98
Inscription : 05 janv. 2018, 03:21

Re: Intégration prises Tuya / Smart Life

Message par getget »

Bonjour, j'ai fait la manip mais mon compte est en "Free trial" (90 jours) après c'est 300€/an ?!

D'autre part, j'ai bien renseigné les clefs (client_id = client_id et client_secret = app_id) mais ca ne marche pas :(

sudo python3 ./main.py --switch 0420XXXXXXXXXXXXXXb57e True
Login...
Get sign...
Switch...
Get sign...
Execution Error: you don't have access to this API
Répondre