Xiaomi et Roborock "Timeout"

Bonjour

Sur une installation toute fraiche du plugin Xiaomi sur une jeedom a jour en 3.3.45. Sur une Smart.

D’abort un problème sur installation des dépendance (daemon qui ne voulait pas demarer)
reinstallation, puis redemarage,
Daemon ok
Plugin Xiaomi demare enfin!

mais rien y fait impossible de commander mon Roborock
(supressionn du robot, redemarage, remise en place du robot)

Impossible de commander mon roborock.vacuum.s5
j’ai recupéré le token via la methode « iphone »
Et vérifier avec la methode « apk modifié »

Ci joint un log.
Des avis?



[2020-04-10 00:16:12][DEBUG] : execute : action wifi start
[2020-04-09 22:16:12][DEBUG] : Client connected to [127.0.0.1:44656]
[2020-04-09 22:16:12][DEBUG] : Message read from socket: {"apikey":"pPh82pe0pxjqXXXXXXXXXXXXXXXXXXXX","type":"wifi","cmd":"send","model":"vacuum2","dest":"","token":"524a44715577XXXXXXXXXXXXXXXXXXXX","devtype":"","serial":"","method":"app_start","param":""}
[2020-04-09 22:16:12][DEBUG] : Client disconnected from [127.0.0.1:44656]
[2020-04-09 22:16:12][DEBUG] : Message received in socket JEEDOM_SOCKET_MESSAGE
[2020-04-09 22:16:12][DEBUG] : Received command from jeedom : send
[2020-04-09 22:16:12][DEBUG] : Executing action on : vacuum2
[2020-04-09 22:16:17][DEBUG] : Timeout
[2020-04-09 22:16:17][DEBUG] : local variable 'd' referenced before assignment
[2020-04-10 00:20:08][DEBUG] : Rafraîchissement de XiaomiWifi : Aspirateur RDC
[2020-04-09 22:20:08][DEBUG] : Client connected to [127.0.0.1:44995]
[2020-04-09 22:20:08][DEBUG] : Message read from socket: {"apikey":"pPh82pe0pxjqXXXXXXXXXXXXXXXXXXXX","type":"wifi","cmd":"refresh","model":"vacuum2","dest":"","token":"524a44715577XXXXXXXXXXXXXXXXXXXX","devtype":"","serial":""}
[2020-04-09 22:20:08][DEBUG] : Client disconnected from [127.0.0.1:44995]
[2020-04-09 22:20:08][DEBUG] : Message received in socket JEEDOM_SOCKET_MESSAGE
[2020-04-09 22:20:08][DEBUG] : Received command from jeedom : refresh
[2020-04-09 22:20:08][DEBUG] : Refreshing : vacuum2
[2020-04-09 22:20:13][DEBUG] : Timeout
[2020-04-09 22:20:15][ERROR] : Exception on socket : local variable 'd' referenced before assignment
[2020-04-10 00:27:09][DEBUG] : Rafraîchissement de XiaomiWifi : Aspirateur RDC
[2020-04-09 22:27:09][DEBUG] : Client connected to [127.0.0.1:46417]
[2020-04-09 22:27:09][DEBUG] : Message read from socket: {"apikey":"pPh82pe0pxjqXXXXXXXXXXXXXXXXXXXX","type":"wifi","cmd":"refresh","model":"vacuum2","dest":"","token":"524a44715577XXXXXXXXXXXXXXXXXXXX","devtype":"","serial":""}
[2020-04-09 22:27:09][DEBUG] : Client disconnected from [127.0.0.1:46417]
[2020-04-09 22:27:09][DEBUG] : Message received in socket JEEDOM_SOCKET_MESSAGE
[2020-04-09 22:27:09][DEBUG] : Received command from jeedom : refresh
[2020-04-09 22:27:09][DEBUG] : Refreshing : vacuum2
[2020-04-09 22:27:14][DEBUG] : Timeout
[2020-04-09 22:27:14][ERROR] : Exception on socket : local variable 'd' referenced before assignment
[2020-04-10 00:28:34][DEBUG] : execute : action wifi start
[2020-04-09 22:28:34][DEBUG] : Client connected to [127.0.0.1:46525]
[2020-04-09 22:28:34][DEBUG] : Message read from socket: {"apikey":"pPh82pe0pxjqXXXXXXXXXXXXXXXXXXXX","type":"wifi","cmd":"send","model":"vacuum2","dest":"","token":"524a44715577XXXXXXXXXXXXXXXXXXXX","devtype":"","serial":"","method":"app_start","param":""}
[2020-04-09 22:28:34][DEBUG] : Client disconnected from [127.0.0.1:46525]
[2020-04-09 22:28:34][DEBUG] : Message received in socket JEEDOM_SOCKET_MESSAGE
[2020-04-09 22:28:34][DEBUG] : Received command from jeedom : send
[2020-04-09 22:28:34][DEBUG] : Executing action on : vacuum2
[2020-04-10 00:28:38][DEBUG] : execute : action wifi refresh
[2020-04-09 22:28:38][DEBUG] : Client connected to [127.0.0.1:46530]
[2020-04-09 22:28:38][DEBUG] : Message read from socket: {"apikey":"pPh82pe0pxjqXXXXXXXXXXXXXXXXXXXX","type":"wifi","cmd":"refresh","model":"vacuum2","dest":"","token":"524a44715577XXXXXXXXXXXXXXXXXXXX","devtype":"","serial":""}
[2020-04-09 22:28:38][DEBUG] : Client disconnected from [127.0.0.1:46530]
[2020-04-09 22:28:39][DEBUG] : Timeout
[2020-04-09 22:28:39][DEBUG] : local variable 'd' referenced before assignment
[2020-04-09 22:28:39][DEBUG] : Message received in socket JEEDOM_SOCKET_MESSAGE
[2020-04-09 22:28:39][DEBUG] : Received command from jeedom : refresh
[2020-04-09 22:28:39][DEBUG] : Refreshing : vacuum2
[2020-04-09 22:28:44][DEBUG] : Timeout
[2020-04-09 22:28:44][ERROR] : Exception on socket : local variable 'd' referenced before assignment
[2020-04-10 00:31:02][DEBUG] : execute : action wifi start
[2020-04-10 00:31:15][INFO] : Lancement démon xiaomihome : /usr/bin/python /var/www/html/plugins/xiaomihome/resources/xiaomihomed/xiaomihomed.py --loglevel debug --socketport 55019 --callback http://192.168.1.200:80/plugins/xiaomihome/core/php/jeeXiaomiHome.php --apikey pPh82pe0pxjqXXXXXXXXXXXXXXXXXXXX --cycle 0.05 --pid /tmp/jeedom/xiaomihome/deamon.pid
[2020-04-09 22:31:17][INFO] : Start xiaomihomed
[2020-04-09 22:31:17][INFO] : Log level : debug
[2020-04-09 22:31:17][INFO] : Socket port : 55019
[2020-04-09 22:31:17][INFO] : Socket host : 127.0.0.1
[2020-04-09 22:31:17][INFO] : PID file : /tmp/jeedom/xiaomihome/deamon.pid
[2020-04-09 22:31:17][INFO] : Apikey : pPh82pe0pxjqXXXXXXXXXXXXXXXXXXXX
[2020-04-09 22:31:17][INFO] : Callback : http://192.168.1.200:80/plugins/xiaomihome/core/php/jeeXiaomiHome.php
[2020-04-09 22:31:17][INFO] : Cycle : 0.05
[2020-04-09 22:31:17][DEBUG] : Writing PID 2416 to /tmp/jeedom/xiaomihome/deamon.pid
[2020-04-09 22:31:17][DEBUG] : Init request module v2.23.0
[2020-04-09 22:31:17][DEBUG] : Starting new HTTP connection (1): 192.168.1.200:80
[2020-04-10 00:31:17][DEBUG] : Format Invalide
[2020-04-09 22:31:17][DEBUG] : http://192.168.1.200:80 "GET /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=pPh82pe0pxjqXXXXXXXXXXXXXXXXXXXX HTTP/1.1" 200 0
[2020-04-09 22:31:17][DEBUG] : Socket interface started
[2020-04-09 22:31:17][DEBUG] : LoopNetServer Thread started
[2020-04-09 22:31:17][DEBUG] : Listening on: [127.0.0.1:55019]
[2020-04-09 22:31:17][INFO] : Start listening...
[2020-04-09 22:31:17][DEBUG] : Read Socket Thread Launched
[2020-04-09 22:31:17][DEBUG] : Aquara Thread Launched

Est il normal que ces champs soit vide ?

Hello,
Je n’ai pas la réponse mais un truc me semble surprenant c’est que jamais nous ne voyons l’adresse IP de ton robot dans les logs. Je vois beaucoup une adresse de loopback et une 192.168.1.200 (probablement de jeedom) mais jamais ta .173

Effectivement c’est un peu etrange…

En suivant ce post là Tout semble bon... mais (Sinon ce ne serait pas drôle) - #28 par patogo

J’ai fais comme cet utilisateur reset et suppression du roborock sur l’application Xiaomi, re-association au wifi, nouveauy token
rajout dans l’application rien ne change…

JE viens d’un vielle Jeedom vendu initialement sous Debian 9, j’ai souvent eu des problèmes du a des vieux packets qui traînent…

Voila les logs de reinstallations des dependance:

********************************************************
*             Installation des dépendances             *
********************************************************
Hit:1 http://security.debian.org stretch/updates InRelease
Ign:2 http://ftp.debian.org/debian stretch InRelease
Hit:3 http://www.deb-multimedia.org stretch InRelease
Hit:5 http://ftp.debian.org/debian stretch-updates InRelease
Hit:6 http://ftp.debian.org/debian stretch-backports InRelease
Hit:7 http://ftp.debian.org/debian stretch-proposed-updates InRelease
Hit:8 http://ftp.debian.org/debian stretch Release
Hit:4 https://repo.jeedom.com/odroid stable InRelease
Hit:9 https://oph.mdrjr.net/meveric all InRelease
Hit:10 https://oph.mdrjr.net/meveric stretch InRelease
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
libffi-dev is already the newest version (3.2.1-6).
libssl-dev is already the newest version (1.1.0l-1~deb9u1).
python-cryptography is already the newest version (1.7.1-3+deb9u2).
python-dev is already the newest version (2.7.13-2).
python-pip is already the newest version (9.0.1-2+deb9u1).
The following packages were automatically installed and are no longer required:
linux-headers-3.16.72+ python-lockfile
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Collecting construct
Using cached https://files.pythonhosted.org/packages/30/2f/e2e6bad1b80f744cf5c2a6d622e3dee698b43e6c040f980ae0ac0edd5e54/construct-2.10.54.tar.gz
Building wheels for collected packages: construct
Running setup.py bdist_wheel for construct: started
Running setup.py bdist_wheel for construct: finished with status 'done'
Stored in directory: /root/.cache/pip/wheels/7a/40/3b/25a36d42a9b8a2d46c1db8b7623865202b811d3e76f9d0b84a
Successfully built construct
Installing collected packages: construct
Successfully installed construct-2.10.54
Collecting pyudev
Using cached https://files.pythonhosted.org/packages/72/c8/4660d815a79b1d42c409012aaa10ebd6b07a47529b4cb6880f27a24bd646/pyudev-0.22.0.tar.gz
Collecting six (from pyudev)
Using cached https://files.pythonhosted.org/packages/65/eb/1f97cb97bfc2390a276969c6fae16075da282f5058082d4cb10c6c5c1dba/six-1.14.0-py2.py3-none-any.whl
Building wheels for collected packages: pyudev
Running setup.py bdist_wheel for pyudev: started
Running setup.py bdist_wheel for pyudev: finished with status 'done'
Stored in directory: /root/.cache/pip/wheels/39/fd/ac/f5251065fe762db2ef2c619c9113fb8c96b07ddb37ee85fd63
Successfully built pyudev
Installing collected packages: six, pyudev
Successfully installed pyudev-0.22.0 six-1.14.0
Collecting requests
Using cached https://files.pythonhosted.org/packages/1a/70/1935c770cb3be6e3a8b78ced23d7e0f3b187f5cbfab4749523ed65d7c9b1/requests-2.23.0-py2.py3-none-any.whl
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests)
Using cached https://files.pythonhosted.org/packages/e8/74/6e4f91745020f967d09332bb2b8b9b10090957334692eb88ea4afe91b77f/urllib3-1.25.8-py2.py3-none-any.whl
Collecting chardet<4,>=3.0.2 (from requests)
Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests)
Downloading https://files.pythonhosted.org/packages/57/2b/26e37a4b034800c960a00c4e1b3d9ca5d7014e983e6e729e33ea2f36426c/certifi-2020.4.5.1-py2.py3-none-any.whl (157kB)
Collecting idna<3,>=2.5 (from requests)
Using cached https://files.pythonhosted.org/packages/89/e3/afebe61c546d18fb1709a61bee788254b40e736cff7271c7de5de2dc4128/idna-2.9-py2.py3-none-any.whl
Installing collected packages: urllib3, chardet, certifi, idna, requests
Successfully installed certifi-2020.4.5.1 chardet-3.0.4 idna-2.9 requests-2.23.0 urllib3-1.25.8
Collecting pyserial
Using cached https://files.pythonhosted.org/packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl
Installing collected packages: pyserial
Successfully installed pyserial-3.4
Collecting future
Using cached https://files.pythonhosted.org/packages/45/0b/38b06fd9b92dc2b68d58b75f900e97884c45bedd2ff83203d933cf5851c9/future-0.18.2.tar.gz
Building wheels for collected packages: future
Running setup.py bdist_wheel for future: started
Running setup.py bdist_wheel for future: finished with status 'done'
Stored in directory: /root/.cache/pip/wheels/8b/99/a0/81daf51dcd359a9377b110a8a886b3895921802d2fc1b2397e
Successfully built future
Installing collected packages: future
Successfully installed future-0.18.2
Collecting pycrypto
Using cached https://files.pythonhosted.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz
Building wheels for collected packages: pycrypto
Running setup.py bdist_wheel for pycrypto: started
Running setup.py bdist_wheel for pycrypto: finished with status 'done'
Stored in directory: /root/.cache/pip/wheels/27/02/5e/77a69d0c16bb63c6ed32f5386f33a2809c94bd5414a2f6c196
Successfully built pycrypto
Installing collected packages: pycrypto
Successfully installed pycrypto-2.6.1
Collecting enum34
Using cached https://files.pythonhosted.org/packages/6f/2c/a9386903ece2ea85e9807e0e062174dc26fdce8b05f216d00491be29fad5/enum34-1.1.10-py2-none-any.whl
Installing collected packages: enum34
Successfully installed enum34-1.1.10
Collecting enum-compat
Using cached https://files.pythonhosted.org/packages/41/46/8ed2368976d934652d8f33f1fdd86f5580fab45e890c90a848e83097a093/enum-compat-0.0.3.tar.gz
Collecting enum34; python_version < "3.4" (from enum-compat)
Using cached https://files.pythonhosted.org/packages/6f/2c/a9386903ece2ea85e9807e0e062174dc26fdce8b05f216d00491be29fad5/enum34-1.1.10-py2-none-any.whl
Building wheels for collected packages: enum-compat
Running setup.py bdist_wheel for enum-compat: started
Running setup.py bdist_wheel for enum-compat: finished with status 'done'
Stored in directory: /root/.cache/pip/wheels/2f/60/6f/6b24ecbc75f5f6f62f598c5c705eee9381e6b9790ff400c575
Successfully built enum-compat
Installing collected packages: enum34, enum-compat
Successfully installed enum-compat-0.0.3 enum34-1.1.10
Collecting wheel
Using cached https://files.pythonhosted.org/packages/8c/23/848298cccf8e40f5bbb59009b32848a4c38f4e7f3364297ab3c3e2e2cd14/wheel-0.34.2-py2.py3-none-any.whl
Installing collected packages: wheel
Successfully installed wheel-0.34.2
********************************************************
*             Installation terminée                    *
********************************************************

Le robot ne répond pas aux requetes, cqfd le token n’est pas bon.
Merci de lire la doc et tenter la dernière méthode pour le token.

PS : inutile d’ouvrir des tickets pour des problèmes de conf surtout quand déjà posté ici

J’ai lu la documentation celle qui est ici: https://lunarok.github.io/jeedom_docs/plugins/xiaomihome/wifi.html
et comme expliqué mon message j’ai testé 2 méthodes différentes de récupération de token:

3ème méthode (iPhone)

4ème méthode (Android)

(EDIT: et trouvé le même token)

Histoire d’'être précis faites vous référence à cette méthode ?

5ème méthode (Packet Sender Tool)

Edit : je viens de voir en dessous cette méthode qui doit être la « dernière »

Extraction depuis les logs Mi Home (Android)

La « dernier méthode » ie Extraction depuis les logs Mi Home (Android)
Me retourne un beau Json, avec exactement le même token que précédemment saisie :-/

Bonjour,
Petit UP
Du coup des solutions ou idées à mettre en œuvre ?

Bonjour,

Peux-tu faire l’essai suivant :

  • Suppression de l’objet
  • aller sur le dashboard
  • Retourner sur le plugin
  • Cliquer sur Ajouter
  • Inscrire un libellé autre que celui d’avant : test
  • mettre uniquement le type de matériel (liste déroulante équipement) et l’adresse IP du matèriel
  • cliquer sur sauvegarder
  • ==> Si tout est ok, le champ Gateway doit être rempli avec l’adresse IP que tu renseigné
  • Cliquer sur Récupérer les infos
  • Attendre
  • Le token doit être renseigné avec uniquement des zéro
  • Cliquer sur sauvegarder
  • Renseigner le vrai token au clavier
  • Cliquer sur enregistrer

Bonjour,
C’est peut-être bête mais as-tu bien appuyer sur le bouton bleu « récupérer les infos » après avoir renseigné le token ?

Bonjour
Merci pour vos retours!
La solution à la fois plus simple et plus compliqué…
Suite à quelques plantations, j’ai mis en plus une alerte Météo pour le gel (les saint de glaces ne sont toujours pas passé!)
Et je me suis rendu compte que toutes les alertes météo faite par le plugins du même auteur ne fonctionnais plus… ils avaient perdu le champ de ma localisation (je ne sais pas suite a quel éventement…)
J’ai re-réglé la ville sur tous les instances du plugins Alerte Météo… Et immédiatement après un petit refresh du plugins Xiaomi , tout fonctionne!
(J’ai déjà eu des problèmes similaire pendant la migration Debian 9 et il avait fallu rechercher dans le plugin de localisation de Lunarok qui avait perdu une clé API Et je ne suis plus quoi ne fonctionnait plus sans le moindre message d’erreur…)

Si Lunarok passe par là (et même d’autres développeur de la communauté Jedom ) et importe un peu d’importance aux personnes qui utilisent leur plugins (Et/ou Jeedom), je conseillerai juste deux choses:

  • Avant d’inventer Google, on a inventer le lien hyper texte! ça manque cruellement dans votre « documentation », des liens directes vers les bonnes ressources!
  • « Failling Gracefully » une philosophie qui manque cruellement à Jeedom (Jeedom au sens large, avec les plugins) Quelques détails: https://uxmag.com/articles/failing-gracefully

Dans les plugins d’alerte météo, qui ont perdu leur ville, on pourrait imaginer facilement un joli message d’erreur dans l’encart prévu à cette usage dans Jeedom:


Là je vois en 2 seconde que j’ai un script qui ne fonctionne plus sans avoir à « chercher dans des log »!
(d’ailleurs des log n’ont jamais été une gestion d’erreur convenable a mon humble avis, du moins pour toutes les principales erreurs! , si un jour Jeedom veux viser le grand publique cf « Failling Gracefully » :wink: )

Tu remet une ville dans vigilancemeteo et Xiaomi remarche ? Tout ça après des ‹ plantations › … Faut faire gaffe ce genre de plantation n’est pas légal et ça fait de grave dégâts sur les neurones

Tu remet une ville dans vigilancemeteo et Xiaomi remarche ?

Aussi étonnant que ça puisse paraître oui…
Et j’ai rien fait d’autre entre temps. (si ça peut améliorer les choses)

Je ne répondrais pas sur la nature de mes plantations, On n’a pas élever les cochons ensemble :wink: .

PS: Impressionné par la rapidité de votre dernière réponse! vu le temps que j’ai attendu pour du support sur un plugin payant avec une jeedom payant.