Récupérer id et localkey pour Tuya Smartlife

merci pour toute ces explications démoralisante … plus qu’a chercher du matériel open sources mais perso j’ai beau chercher je trouve rien de bien sympa , ya bien shelly qui permet pas mal de truc mais rien d’aussi vaste que les périphe tuya

@bernardfr.caron merci pour ce retour.
EDIT: je me réponds à moi-même en fonction de ce que j’ai compris après mise en pratique, au cas où cela intéresserait d’autres personnes…

Je me permet quelques questions pour être sûr de bien comprendre le mode de fonctionnement du plug-in au sein de l’écosystème Smartlife :

  1. le plug-in, une fois qu’un des équipements est connecté à celui-ci fonctionne-t-il en mode coupure par rapport au monde extérieur (le Cloud Tuya), i.e. l’équipement continue-t-il malgré tout de communiquer avec le Cloud Tuya?
    Réponse : le pilotage semble pouvoir se faire en parallèle via l’application SmartLife qui communique avec les équipements via le Cloud Tuya/SmartLife
  2. les communications de font-elles dans les 2 sens, i.e à l’initiative soit de l’équipement (pour pousser un changement d’état ou un évènement de type action, soit du Cloud Tuya (dans le cas où l’application Smartlife le pilote)?
    Réponse: j’ai l’impression que oui la communication se fait dans les 2 sens
  3. dans le cas où le périphérique ne connaît plus le Cloud Tuya, la mise à jour de son firmware est-il encore possible?
    Réponse: a priori le périphérique connait toujours le Cloud Tuya
  4. tant qu’il n’est pas supprimé de l’appli Smartlife et rajouté, l’équipement garde toujours le même token, c’est bien cela?
    Réponse : a priori oui comme indiqué dans la doc
  5. existe-t-il un état intermédiaire où l’équipement peut être à la fois piloté par l’application et par le plug-in ? Ou cela reste strictement exclusif? Dans ce cas à quel moment de fait cette passation de témoin pour piloter l’équipement?
    Réponse: pilotage en // pas exclusif
  6. l’application mobile doit- elle être forcément arrêtée pour que le plug-in puisse piloter les équipements ?
    Réponse : Non elle peut continuer de fonctionner pour pilotage via le Cloud
  7. j’ai une vingtaine d’équipements à migrer dois-je les migrer tous d’un coup dans ce cas?
    Réponse : non, cela peut et doit se faire les uns après les autres afin de détecter les commandes spécifiques à chaque type de matériel
    Merci d’avance pour ces éclaircissements ! De rien! :wink:
    N.B.: peut être profiter de ces réponses pour enrichir la documentation?
    Soit un chapitre d’introduction permettant d’appréhender les concepts, notions et principes de fonctionnement du plug-in, soit dans une FAQ.
    Cela permettra à ceux qui veulent s’y mettre de bien comprendre les tenants et aboutissants et donc les impacts suite à l’utilisation du plug-in.
    Je me permet cette remarque car j’ai vu dans l’un des post du forum que tu sollicitais les utilisateurs du plug-in à te faire part d’idées d’améliorations.

La doc du plugin est la plus lourde de tous les plugin et j’ai déjà eu la remarque qu’elle l’est trop.

La plupart des réponses aux questions sont dans la doc et pour les autres je ne sais pas.

Oui c’est vrai qu’elle est très riche (effectivement une des plus riche que j’ai pu parcourir parmi tous les plugin Jeedom, et c’est tout à ton honneur, et je comprend donc que tu renvoies systématiquement à la documentation lorsque tu as des questions) et que l’on peut parfois s’y perdre, c’est pour cela qu’il me semblait intéressant d’avoir quelques guidelines au début pour s’y retrouver plus facilement.
Mais je comprend que c’est déjà beaucoup de boulot de fait et que tu ne souhaites pas forcément réinvestir dessus maintenant.
En relisant certaines sections, je commence maintenant à mieux m’y retrouver, mais il est parfois nécessaire de relire plusieurs fois la documentation pour bien l’appréhender (en tout cas c’est le cas pour ma part) d’où mes nombreuses questions.
J’en profitais juste pour te donner mon retour d’expérience sur ce sujet si tu souhaitais améliorer un peu la doc.
En attendant, je continue à creuser la doc et je vous dis si je suis vraiment bloqué.

Bonjour @bernardfr.caron

je sollicite ton aide car je n’arrive pas à accrocher un de mes interrupteur Wifi.
J’ai désactivé tous les autres, redémarré le démon et j’ai ces traces:

>>>>Daemon Started
[2020-11-01 19:24:51][DEBUG] :    Memory used :2229 ko 280 o
[2020-11-01 19:24:51][DEBUG] : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Search for devices <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
[2020-11-01 19:24:51][DEBUG] : ****** Device listenable PC lumière salle à manger - Class:TuyaCustom_V2 @192.168.0.78Chanel:1 *****
[2020-11-01 19:24:51][DEBUG] :    Key not set
[2020-11-01 19:24:51][DEBUG] :    Socket created  @192.168.0.78
[2020-11-01 19:24:51][DEBUG] :    Connection impossible. Err=115 : Operation now in progress
[2020-11-01 19:24:51][DEBUG] :    ADD New device @192.168.0.78 channel:1
[2020-11-01 19:24:51][DEBUG] : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> End <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
[2020-11-01 19:24:51][DEBUG] :   Memory used :2337 ko 176 o
[2020-11-01 19:25:52][DEBUG] : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Search for devices <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
[2020-11-01 19:25:52][DEBUG] : ****** Device listenable PC lumière salle à manger - Class:TuyaCustom_V2 @192.168.0.78Chanel:1 *****
[2020-11-01 19:25:52][DEBUG] :    Key:0  time diff:61
[2020-11-01 19:25:52][DEBUG] :    Wait to update
[2020-11-01 19:25:52][DEBUG] : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> End <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
[2020-11-01 19:25:52][DEBUG] :   Memory used :2338 ko 640 o

La conf me semble bonne, tout est renseigné, je viens de récupérer le jeton via la technique Man In the Middle avec la commande tuya-cli list-app.

Et les traces avec le second switch identique qui lui passe à la connexion:

[2020-11-01 19:31:17][DEBUG] : ****** Device listenable Switch lumière garage - Class:TuyaCustom_V2 @192.168.0.71Chanel:1 *****
[2020-11-01 19:31:17][DEBUG] :    Key not set
[2020-11-01 19:31:17][DEBUG] :    Socket created  @192.168.0.71
[2020-11-01 19:31:17][DEBUG] :    ADD New device @192.168.0.71 channel:1
[2020-11-01 19:31:17][DEBUG] :    Device and socket exist : key:0 @192.168.0.71 channel:1 diff:0
[2020-11-01 19:31:17][DEBUG] : ****** Device listenable PC lumière salle à manger - Class:TuyaCustom_V2 @192.168.0.78Chanel:1 *****
[2020-11-01 19:31:17][DEBUG] :    Key not set
[2020-11-01 19:31:17][DEBUG] :    Socket created  @192.168.0.78
[2020-11-01 19:31:17][DEBUG] :    Connection impossible. Err=115 : Operation now in progress
[2020-11-01 19:31:17][DEBUG] :    ADD New device @192.168.0.78 channel:1
[2020-11-01 19:31:17][DEBUG] : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> End <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
[2020-11-01 19:31:17][DEBUG] :   Memory used :2353 ko 656 o
[2020-11-01 19:31:17][DEBUG] :    Update state @192.168.0.71
[2020-11-01 19:31:17][DEBUG] :     Cmd to 192.168.0.71 - Try:192.168.0.71  6668 - Connect OK!
[2020-11-01 19:31:17][DEBUG] :     Update state
[2020-11-01 19:31:17][DEBUG] :     Receive after decode :=

N.B. : je viens de reconnecter le second switch ce jour, j’ai du le réappairer avec SmartLife et donc mettre à jour le token.
Par contre SmartLife m’a demandé si je souhaitais mettre à jour le micro logiciel, mais je n’ai pour le moment pas accepté, je devrai peut-être finalement?

Une idée?
Merci d’avance

normalement ne fait pas de mise à jour.
Regarde ta version de firmware 1. ou 2. mais normalement maintenant tout est en 2. depuis longtemps.
la aussi l’err 115 : pas la bonne clé ou pas le bon id

1 « J'aime »

Merci @bernardfr.caron
Les micrologiciels de mes appareils semblent plutôt être en v1.0.6 par exemple sur l’interrupteur dont il est question ci-dessus.
Je n’arrive pas à obtenir la version du micrologiel de l’interrupteur qu’il me demande de mettre à jour, il me propose juste la version cible à mettre à jour. Comme c"est celle du second qui fonctionne, je pense que je vais la mettre à jour non?
Screenshot_20201105-191354_Smart Life|180x400
Screenshot_20201105-191329_Smart Life|180x400
Screenshot_20201105-191256_Smart Life|180x400

Pour la clef et le jeton, j’ai vérifié déjà 2 fois mais je ne! dois pas avoir les yeux en face des trous…
Je retente…! !

Bonjour à tous,
J’espere que vous allez bien
J’essaye de trouver la localkey d’un smart plug sur SmartLife, via iOS en utilisant l’application HTTP Catcher.
Autant le deviceID est assez facile a repérer, autant la localkey, c’est un peu plus tricky, vous connaissez le nom de la variable json qui donne cette fameuse key ??

Pour t’aider il faut nous donner des billes.
Je ne suis pas sûr que cette technique permette de récupérer les infos nécessaires.

Merci de ton retour rapide,
Le but est de pouvoir connaitre la consommation électrique d’une prise. Dans l’application SmartLife, j’ai bien la remonté d’info de consommation de la prise donc surement récupérable je pense (en tout cas j’espère).
De ce que j’ai pu lire du plugin WifilightV2 il est nécessaire d’avoir deux éléments :

  • Le DeviceID, ca easy a trouver :slight_smile:
  • La localkey, ou le token qui va bien
    C’est là que ca se complique un peu. Donc j’ai installé un proxy via l’applicaiton HTTP Catcher, installer le certificat pour récupérer les infos qui transites. Jusque là tout va bien, j’active le sniff du reseau et j’effectue les actions sur l’appli SmartLife lié à mon plug pour récupérer quelques trames.
    Je récupère bien des données en JSON, mais impossible de mettre la main sur ce jeton.
    Les infos remontées sont :
  • time
  • lang
  • deviceId (fastoche)
  • et
  • osSystem
  • BundleID
  • Ion
  • channel
  • appVersion
  • (je passe les trucs qui servent a pas grand chose …)
  • sid
  • sign
  • PostData
  • requestID
  • clientID (mais a priori non)

Du coup si qqun a une idée j’avoue que je suis bien preneur.

J’espere qu’avec ces infos il y aura un peu plus de matière

donc la localkey ne passe pas.
trouver un vieux tel android pour faire le boulot.

J’ai tenter en passant par les API de tuya en enregistrant le compte, mais j’ai une vieille insulte en retour de commande (je pense qu’il faut sans doute attendre un peu)
A toutes fins utile voici le retour du cmdlet
« There was an issue fetching that device. Make sure your account is linked and the ID is correct. » brrr
L’api, le secret et le deviceiD eux sont bon pourtant.
bon bah si ca passe pas d’ici 24h, mission Android je vous tiendrai au courant si ca bouge en attendant un peu sur tuya
Bonne soirée à tous,

UPDATE
Alors pour récupérer la key … faut juste … penser à … comment dire … activer les droits sur les APIs Tuya ca peut aider. Et juste besoin d’attendre 10 15mn :slight_smile: Hope this helps

1 « J'aime »

pour récupérer ID/localkey pas besoin des api,le but est justement de les contourner

Bonjour, après quelques errances, j’ai réussi à récupérer la localkey d’une prise double extérieure et de deux prises simples de marque Teckin.
Je les ai dans un premier temps configurées avec l’appli Smart Life prise sur le play store, qui ne m’a pas permis de récupérer les localkey.
J’ai ensuite installé la version 3.11.0, que j’ai lancé avec HttpCanary (Packet Capture ne fonctionnait pas chez moi, impossible d’installer le certificat) qui m’ont permis de retrouver les infos pour chaque prise.
J’utilise un smartphone Samsung Galaxy S9+ sous Android 10.
L’intégration à Jeedom a ensuite été assez simple, le plus dur ayant été de repérer l’adresse IP de chaque prise (j’ai utilisé l’adresse Mac également récupérée via HttpCanary pour les différencier).
En espérant que ça puisse servir à d’autres.
Merci pour ce plugin très efficace en tous cas !

1 « J'aime »

Bonjour,

J’utilisais jusqu’à aujourd’hui le plugin Smartlife et depuis hier, plein d’erreur du à une modification sur serveur Smartlife.

Je souhaite donc récupérer les jeton et id de tous mes appareils mais j’ai beau installer sur Bluestacks sur PC: Packet Capture 1.7.2, Smartlife 3.11.0 et que des paquets no data SSL…

J’ai testé de faire aussi le script python proposé plus haut, ca me donne la liste des appareils mais pas les jetons ni id…

j’ai l’impression que c’est cette histoire de certificat que je n’arrive pas à faire! c’est obligatoire? ca me demande de créer de passwd à chaque fois. je ferme l’app packet capture et la réouvre et ca zappe cette étape. c’est ça mon erreur?

j’ai vraiment besoin d’aide svp…

Edit: j’avais pas pensé à ma vieille tablette Android! j’ai installé Smartlife 3.11.0 dessus et PC 1.7.2 et là j’ai pas mettre le certificat en place je pense. j’ai de très longue liste rouge que je peux lire…

c’est a vous de fixer l’adresse ip de chacun de vos appareils sur votre routeur dés que vous ajouter un nouvel appareil :wink:
faites un fichier excel pour bien classer toutes les ip fixe de votre réseau…

je commande à ajouter un à un mes appareils Smartlife sur wifilightv2. J’ai noté tous les devID et localKey sur un fichier excel.
Sur les quelques prises ajoutées, c’est ok, un interrupteur ok aussi.

Par contre, je mets quoi pour des rubans led svp?

Et j’ai 2 prises Maxio qui ont une led intégré et controlable indépendamment de le prise. je les utilise comme veilleuse pour les enfants. pouvez vous me dire comment ajouter ce genre de prise avec led?

Merci

dans les 2 cas, lire la doc

Bonjour.
Je viens d’essayer sur Nox Player avec Smart Life 3.11 et impossible à me connecter à mon compte. J’ai une erreur 50505.

Sous Bluestack , j’ai une erreur ‹ incorrect timer 50502 ›

@bernardfr.caron , tu as deja eu une remontée d’erreur come cela ?

non la procédure est dans le fil localkey tuya mais avec un tél physique.
Ces erreurs sont en général des erreurs de packetcapture, httpcanary ça passe.