Re: [Plugin Tiers] Xiaomi Home
Publié : 23 juil. 2017, 19:43
Contenu supprimé à la demande de son auteur
Code : Tout sélectionner
[2017-07-23 20:06:01][DEBUG] : {u'token': u'4HYAA9tyrKHTtztO', u'cmd': u'get_id_list_ack', u'data': u'["158d000154a295","158d00014dd776","158d000110670d","158d0001585401","158d00015846fd","158d000149a57c","158d000158481c","158d000158456d","158d00011c8dec","158d000125d9d9","158d0001288fe9","158d00015737db","158d00012cca8e","158d00012f2b68","158d00012644ff","158d0001288fa0","158d000158238f","158d000116e33f","158d000128f6b9","158d000113ca1c","158d000116e2b5","158d0001288e74","158d0001a24def"]', u'sid': u'f0b429cfa963'}
[2017-07-23 20:06:26][DEBUG] : {u'model': u'sensor_motion.aq2', u'cmd': u'report', u'data': u'{"lux":"0"}', u'short_id': 45577, u'sid': u'158d0001a24def'}
[2017-07-23 20:06:26][DEBUG] : {u'model': u'sensor_motion.aq2', u'cmd': u'report', u'data': u'{"status":"motion"}', u'short_id': 45577, u'sid': u'158d0001a24def'}
[2017-07-23 20:06:26][DEBUG] : Send to jeedom : {'devices': {'aquara': {'short_id': 45577, 'cmd': u'report', 'source': '192.168.1.150', 'token': '', 'sid': u'158d0001a24def', 'model': u'sensor_motion.aq2', 'data': {u'lux': u'0', u'status': u'motion'}}}}
Code : Tout sélectionner
[2017-07-23 20:58:47][DEBUG] : {u'model': u'sensor_motion.aq2', u'cmd': u'report', u'data': u'{"no_motion":"180"}', u'short_id': 45577, u'sid': u'158d0001a24def'}
Merci pour l'info, ça fonctionne parfaitement !Pierre_ a écrit : ↑23 juil. 2017, 16:06En m'inspirant de la méthode Gouzou (j'imagine que tu parlais de ce message : viewtopic.php?f=182&t=23382&p=492698&hi ... VM#p492698), et en fouillant sur google j'ai réussi à extraire la db et le token de mon iPhone non jailbreaké en passant par un backup
La méthode devrait marcher avec un mac ou un pc, mais je ne l'ai testé que sur Mac :
1- faire un backup de son iPhone avec iTunes
2- ouvrir le backup avec la version gratuite de iPhoneBackup Viewer : http://www.imactools.com/iphonebackupviewer/ (si votre backup est crypté, il faudra passer par a version payante)
3- dans Raw Data/com.xiaomi.mihome il y a plusieurs fichiers .sqllite, il faut extraire celui qui s'appelle votreuserid_mihome.sqlite (attention, chez moi il y en avait un sans userid qui était vide
4- ouvrir le fichier sqlite avec un viewer sqlite, j'ai utilisé DB Browser http://sqlitebrowser.org
5- Là il faut cliquer sur "Ouvrir une base de données" puis " Parcourir les données" et enfin choisir la table ZDEVICE. Tout à droite il doit y avoir une colonne ZTOKEN avec tous les tokens de vos device Xiaomi, il n'y a plus qu’à trouver le robot!
Bizarrement ça n'a pas marché tout de suite, j'ai du redémarrer le daemon plusieurs fois et attendre plusieurs minutes après avoir rentré la clef pour que cela fonctionne... au point que j'étais sur le point de jeter l'éponge quand j'ai soudain vu le widget se rafraichir sous mes yeux
Une dernière chose, les infos que j'ai lu sur ce thread ont l'air de confirmer ce que disait Gouzou dans le sien : https://community.openhab.org/t/xiaomi- ... t/29347/13
La méthode du .exe n'est plus fonctionnelle avec le dernier firmware, ça explique surement les soucis des gens qui récupère des clefs différentes avec l'exe et avec mitoolkit. Ça vaudrait probablement le coup de la virer de la doc.
Code : Tout sélectionner
2017-07-24 21:50:45][INFO] : Lancement démon xiaomihome : /usr/bin/python /var/www/html/plugins/xiaomihome/resources/xiaomihomed/xiaomihomed.py --loglevel debug --socketport 55019 --callback http://127.0.0.1:80/plugins/xiaomihome/core/php/jeeXiaomiHome.php --apikey XXX --cycle 0.3 --pid /tmp/jeedom/xiaomihome/deamon.pid
[2017-07-24 21:50:46][INFO] : Start xiaomihomed
[2017-07-24 21:50:46][INFO] : Log level : debug
[2017-07-24 21:50:46][INFO] : Socket port : 55019
[2017-07-24 21:50:46][INFO] : Socket host : 127.0.0.1
[2017-07-24 21:50:46][INFO] : PID file : /tmp/jeedom/xiaomihome/deamon.pid
[2017-07-24 21:50:46][INFO] : Apikey : XXX
[2017-07-24 21:50:46][INFO] : Callback : http://127.0.0.1:80/plugins/xiaomihome/core/php/jeeXiaomiHome.php
[2017-07-24 21:50:46][INFO] : Cycle : 0.3
[2017-07-24 21:50:46][DEBUG] : Writing PID 22518 to /tmp/jeedom/xiaomihome/deamon.pid
[2017-07-24 21:50:46][DEBUG] : Init request module v2.12.4
[2017-07-24 21:50:46][DEBUG] : Starting new HTTP connection (1): 127.0.0.1
[2017-07-24 21:50:46][DEBUG] : Format Invalide
[2017-07-24 21:50:46][DEBUG] : http://127.0.0.1:80 "GET /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=XXX HTTP/1.1" 200 0
[2017-07-24 21:50:46][DEBUG] : Socket interface started
[2017-07-24 21:50:46][DEBUG] : LoopNetServer Thread started
[2017-07-24 21:50:46][DEBUG] : Listening on: [127.0.0.1:55019]
[2017-07-24 21:50:46][INFO] : Start listening...
[2017-07-24 21:50:46][DEBUG] : Read Socket Thread Launched
[2017-07-24 21:50:46][DEBUG] : Aquara Thread Launched
[2017-07-24 21:55:05][DEBUG] : Refresh de XiaomiWifi : Aspirateur
[2017-07-24 21:55:05][DEBUG] : execute : action wifi refresh
[2017-07-24 21:55:05][DEBUG] : Client connected to [127.0.0.1:53394]
[2017-07-24 21:55:05][DEBUG] : Message read from socket: {"apikey":"XXX","type":"wifi","cmd":"refresh","model":"vacuum","dest":"","token":"37466b78304e53715342413749555655","devtype":"","serial":""}
[2017-07-24 21:55:05][DEBUG] : Client disconnected from [127.0.0.1:53394]
[2017-07-24 21:55:05][DEBUG] : Message received in socket JEEDOM_SOCKET_MESSAGE
[2017-07-24 21:55:05][DEBUG] : Received command from jeedom : refresh
[2017-07-24 21:55:05][DEBUG] : Refreshing : vacuum
[2017-07-24 21:55:06][DEBUG] : Timeout
[2017-07-24 21:55:07][DEBUG] : Timeout
[2017-07-24 21:55:08][DEBUG] : Timeout
[2017-07-24 21:55:08][DEBUG] : local variable 'd' referenced before assignment
J'ai lu que debian 9 n'est pas encore validée par jeedom. Retourne en v8.8 pour commencer. Je n'ai pas de robot mais je commencerai par là.fdp2 a écrit :Hello,
Je galère avec l'integration de mon robot aspi. depuis 2 jours.
N'arrivant pas à le faire fonctionner, j'ai repris la précédure à zero.
1 - Récupération de la clé via l'utilitaire xiaowifi.exe
2 - Connexion au wifi via l'appli XIAOMI Home, et intégration dans jeedom.
N'ayant aucune remontée d'info, j'ai vérifié le token via le toolkit. La valeur récupérée n'est pas la même.
Je modifie donc le token, mais ça ne marche pas mieux, La log en debug est identique (cf extrait ci-dessous).
Mon jeedom est sur une fresh install debian 9 PHP7 de ce week end, sur laquelle je suis passé à jeedom 3.0.11
Je suis certain de l'IP du robot, un bail DHCP fixe est affecté sur mon routeur, et il apparait bien à cette adresse, et répond au ping
D'ailleurs, si je met une autre adresse IP j'obtiens dans les log un message "offline"
Voici un extrait de la log avec démarrage du deamon + refresh info aspi. Si vous avez des idées, je suis preneur, je ne sais pas trop ou chercher.
Code : Tout sélectionner
2017-07-24 21:50:45][INFO] : Lancement démon xiaomihome : /usr/bin/python /var/www/html/plugins/xiaomihome/resources/xiaomihomed/xiaomihomed.py --loglevel debug --socketport 55019 --callback http://127.0.0.1:80/plugins/xiaomihome/core/php/jeeXiaomiHome.php --apikey XXX --cycle 0.3 --pid /tmp/jeedom/xiaomihome/deamon.pid [2017-07-24 21:50:46][INFO] : Start xiaomihomed [2017-07-24 21:50:46][INFO] : Log level : debug [2017-07-24 21:50:46][INFO] : Socket port : 55019 [2017-07-24 21:50:46][INFO] : Socket host : 127.0.0.1 [2017-07-24 21:50:46][INFO] : PID file : /tmp/jeedom/xiaomihome/deamon.pid [2017-07-24 21:50:46][INFO] : Apikey : XXX [2017-07-24 21:50:46][INFO] : Callback : http://127.0.0.1:80/plugins/xiaomihome/core/php/jeeXiaomiHome.php [2017-07-24 21:50:46][INFO] : Cycle : 0.3 [2017-07-24 21:50:46][DEBUG] : Writing PID 22518 to /tmp/jeedom/xiaomihome/deamon.pid [2017-07-24 21:50:46][DEBUG] : Init request module v2.12.4 [2017-07-24 21:50:46][DEBUG] : Starting new HTTP connection (1): 127.0.0.1 [2017-07-24 21:50:46][DEBUG] : Format Invalide [2017-07-24 21:50:46][DEBUG] : http://127.0.0.1:80 "GET /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=XXX HTTP/1.1" 200 0 [2017-07-24 21:50:46][DEBUG] : Socket interface started [2017-07-24 21:50:46][DEBUG] : LoopNetServer Thread started [2017-07-24 21:50:46][DEBUG] : Listening on: [127.0.0.1:55019] [2017-07-24 21:50:46][INFO] : Start listening... [2017-07-24 21:50:46][DEBUG] : Read Socket Thread Launched [2017-07-24 21:50:46][DEBUG] : Aquara Thread Launched [2017-07-24 21:55:05][DEBUG] : Refresh de XiaomiWifi : Aspirateur [2017-07-24 21:55:05][DEBUG] : execute : action wifi refresh [2017-07-24 21:55:05][DEBUG] : Client connected to [127.0.0.1:53394] [2017-07-24 21:55:05][DEBUG] : Message read from socket: {"apikey":"XXX","type":"wifi","cmd":"refresh","model":"vacuum","dest":"","token":"37466b78304e53715342413749555655","devtype":"","serial":""} [2017-07-24 21:55:05][DEBUG] : Client disconnected from [127.0.0.1:53394] [2017-07-24 21:55:05][DEBUG] : Message received in socket JEEDOM_SOCKET_MESSAGE [2017-07-24 21:55:05][DEBUG] : Received command from jeedom : refresh [2017-07-24 21:55:05][DEBUG] : Refreshing : vacuum [2017-07-24 21:55:06][DEBUG] : Timeout [2017-07-24 21:55:07][DEBUG] : Timeout [2017-07-24 21:55:08][DEBUG] : Timeout [2017-07-24 21:55:08][DEBUG] : local variable 'd' referenced before assignment