Pb prise aqara Zigbee chinoise plugin Xiaomihome

Non du tout il y a une petite modification à effectuer dans un fichier du plugin,

Lis la réponse de Superbricolo

Bonjour,

Bonne question c’est un autre plugin que personnellement je n’utilise plus depuis pluss depuis presque 2 ans car il y a un risque de brick de la passerelle (plus de son)

Bonjour à tous,

J’utilise le plugin xiaomihome depuis quelques mois maintenant, pour des capteurs Zigbee et des ampoules WiFi (Yeelight + Philips via appliance).
Par manque d’expérience, je n’ai pas encore de Jeedom de prod et de Jeedom de test, et je n’avais que 7 jours de sauvegarde (cela m’aura au moins servi à apprendre de mes erreurs :wink:)

Après avoir fait la dernière mise à jour (stable), j’ai mis trop de temps pour constater que j’avais des erreurs dans les logs et que certaines commandes ne fonctionnaient plus. Trop tard pour faire une restauration complète ou partielle :disappointed_relieved:

En parcourant ce fil, j’ai vu qu’une solution de contournement avait été proposée, merci ! J’ai donc appliqué la modification dans xiaomihome.class.php et depuis cela va mieux.

Il me reste néanmoins un problème concernant les ampoules Philips via appliance WiFi
→ j’arrive désormais à les allumer / éteindre ou jouer sur la luminosité, mais je n’ai pas de retour d’état
→ peu importe son état réel, la commande info « Statut » retourne systématiquement une chaîne de caractère « vide » / null :

NB : n’ayant pas testé ces ampoules avant la màj, je ne sais pas si cela est lié à la màj ou pas.
Est-ce que l’un d’entre vous a des ampoules « Philips Wi-Fi bulb E27 White » ? Avec un retour d’état ?

Merci d’avance pour votre aide.

Hello,
J’en ai 2 et j’ai bien l’état de type binaire.
Par contre moi j’ai restauré l’ancienne version du plugin…
Le logical id est status::power

3 « J'aime »

Hello,

Oui c’est bien « status::power » mais c’est bizarre car par défaut (à la création des commandes de l’équipement) il me le met en Autre (= string)…


J’ai modifié le type en info - Binaire
=> même résultat, il me retourne « vide » / null. Je m’attendais à avoir 0 ou 1, même si la valeur n’est pas mise à jour. Sauf si ce n’est pas un vrai booléen mais un objet pouvant être null ?

Après analyse des logs en DEBUG, voici ce que je peux vous dire :

  • Ampoules offline : RAS
[2021-05-21 15:50:09][DEBUG] : Offline Wifi : MiPhilips - Bureau
[2021-05-21 15:50:12][DEBUG] : Offline Wifi : MiPhilips - Cuisine
[2021-05-21 15:50:15][DEBUG] : Offline Wifi : MiPhilips - Dressing
[2021-05-21 15:50:18][DEBUG] : Offline Wifi : MiPhilips - Entrée
[2021-05-21 15:50:21][DEBUG] : Offline Wifi : MiPhilips - SàM
  • Ampoules online : des erreurs apparaissent (uniquement sur les appliances WiFi = ampoules Philips. A contrario les Yeelight n’ont pas ce pb)
[2021-05-21 16:10:05][DEBUG] : Rafraîchissement de XiaomiWifi : MiPhilips - Bureau
[2021-05-21 16:10:05][DEBUG] : Envoi : {"apikey":"*****","type":"wifi","cmd":"refresh","model":"philipsmono","dest":"192.168.0.103","token":"*****","devtype":"","serial":""}
[2021-05-21 16:10:05][DEBUG] : Rafraîchissement de XiaomiWifi : MiPhilips - Cuisine
[2021-05-21 16:10:05][DEBUG] : Envoi : {"apikey":"*****","type":"wifi","cmd":"refresh","model":"philipsmono","dest":"192.168.0.102","token":"*****","devtype":"0609","serial":"b323"}
[2021-05-21 16:10:06][DEBUG] : Rafraîchissement de XiaomiWifi : MiPhilips - Dressing
[2021-05-21 16:10:06][DEBUG] : Envoi : {"apikey":"*****","type":"wifi","cmd":"refresh","model":"philipsmono","dest":"192.168.0.105","token":"*****","devtype":"","serial":""}
[2021-05-21 16:10:06][DEBUG] : Rafraîchissement de XiaomiWifi : MiPhilips - Entrée
[2021-05-21 16:10:06][DEBUG] : Envoi : {"apikey":"*****","type":"wifi","cmd":"refresh","model":"philipsmono","dest":"192.168.0.100","token":"*****","devtype":"","serial":""}
[2021-05-21 16:10:06][DEBUG] : Rafraîchissement de XiaomiWifi : MiPhilips - SàM
[2021-05-21 16:10:06][DEBUG] : Envoi : {"apikey":"*****","type":"wifi","cmd":"refresh","model":"philipsmono","dest":"192.168.0.101","token":"*****","devtype":"","serial":""}
[2021-05-21 14:10:06.134][ERROR] : SOCKET-READ------Exception on socket : list index out of range
[2021-05-21 14:10:06.518][ERROR] : SOCKET-READ------Exception on socket : list index out of range
[2021-05-21 14:10:07.083][ERROR] : SOCKET-READ------Exception on socket : list index out of range
[2021-05-21 14:10:07.580][ERROR] : SOCKET-READ------Exception on socket : list index out of range
[2021-05-21 14:10:08.068][ERROR] : SOCKET-READ------Exception on socket : list index out of range

Avant que vous me posiez la question :

  • j’ai fixé les IP
  • j’ai revérifié les tokens

Help please

Les Yeelight n’ont pas besoin de token et de décodage de trame il me semble. Donc le pb se porte sur tous les devices avec token.
Je peux voir pour t’extraire une archive du plugin si tu peux/sait te connecter en ssh sur ton jeedom pour remplacer ton répertoire actuel.

1 « J'aime »

A t on de la visibilité sur un correctif officiel ? Le sujet a été ouvert il ya un mois, ça fait long je trouve, je dis pas ça pour moi j’ai fait un rollback, mais il ya encore des utilisateurs qui achètent le plugin buggé.

1 « J'aime »

Si tu peux, ça serait top ! Je suis un peu dégoûté de m’en être rendu compte trop tard et de ne pas avoir de sauvegarde assez ancienne.
Oui pas de souci pour me connecter en SSH pour remplacer le dossier du plugin. Et je dois même pouvoir le faire depuis JeeXplorer.

Je pensais que le correctif résolvait tout, en tout cas j’avais l’impression en lisant ce fil de discussion que la plupart d’entre vous aviez retrouvé quelque chose de fonctionnel…
Je testerai avec ton archive et si ça marche, je pense qu’on pourra dire que le correctif ne résout pas tout… :unamused:

Bonjour,

Suite à l’aide d’@Ultraboss :+1:, j’ai installé son ancienne version en remplacement de la mienne.
Procédure suivie :
-désactivation du plugin
-remplacement du plugin
-réactivation du plugin
-redémarrage du daemon

Voici mes logs pour une ampoule Philips allumée :

[2021-05-26 16:05:18][DEBUG] : Rafraîchissement de XiaomiWifi : MiPhilips - SàM
[2021-05-26 14:05:18][DEBUG] : Client connected to [127.0.0.1:45984]
[2021-05-26 14:05:18][DEBUG] : Message read from socket: {"apikey":"*****","type":"wifi","cmd":"refresh","model":"philipsmono","dest":"192.168.0.101","token":"*****","devtype":"","serial":""}
[2021-05-26 14:05:18][DEBUG] : Client disconnected from [127.0.0.1:45984]
[2021-05-26 14:05:18][DEBUG] : Message received in socket JEEDOM_SOCKET_MESSAGE
[2021-05-26 14:05:18][DEBUG] : Received command from jeedom : refresh
[2021-05-26 14:05:18][DEBUG] : Refreshing : philipsmono
[2021-05-26 14:05:18][DEBUG] : {"params": ["power", "bright", "cct", "snm", "dv"], "id": 44947, "method": "get_prop"}
[2021-05-26 14:05:18][DEBUG] : {"result":["on",100,0,0],"id":44947}
[2021-05-26 14:05:18][DEBUG] : {"result":["on",100,0,0],"id":44947}
[2021-05-26 14:05:18][ERROR] : Exception on socket : list index out of range

[2021-05-26 16:10:17][DEBUG] : Rafraîchissement de XiaomiWifi : MiPhilips - SàM
[2021-05-26 14:10:17][DEBUG] : Client connected to [127.0.0.1:46380]
[2021-05-26 14:10:17][DEBUG] : Message read from socket: {"apikey":"*****","type":"wifi","cmd":"refresh","model":"philipsmono","dest":"192.168.0.101","token":"*****","devtype":"","serial":""}
[2021-05-26 14:10:17][DEBUG] : Client disconnected from [127.0.0.1:46380]
[2021-05-26 14:10:18][DEBUG] : Message received in socket JEEDOM_SOCKET_MESSAGE
[2021-05-26 14:10:18][DEBUG] : Received command from jeedom : refresh
[2021-05-26 14:10:18][DEBUG] : Refreshing : philipsmono
[2021-05-26 14:10:18][DEBUG] : {"params": ["power", "bright", "cct", "snm", "dv"], "id": 22395, "method": "get_prop"}
[2021-05-26 14:10:18][DEBUG] : {"result":["on",100,0,0],"id":22395}
[2021-05-26 14:10:18][DEBUG] : {"result":["on",100,0,0],"id":22395}
[2021-05-26 14:10:18][ERROR] : Exception on socket : list index out of range

[2021-05-26 16:15:18][DEBUG] : Rafraîchissement de XiaomiWifi : MiPhilips - SàM
[2021-05-26 14:15:18][DEBUG] : Client connected to [127.0.0.1:46796]
[2021-05-26 14:15:18][DEBUG] : Message read from socket: {"apikey":"*****","type":"wifi","cmd":"refresh","model":"philipsmono","dest":"192.168.0.101","token":"*****","devtype":"","serial":""}
[2021-05-26 14:15:18][DEBUG] : Client disconnected from [127.0.0.1:46796]
[2021-05-26 14:15:18][DEBUG] : Message received in socket JEEDOM_SOCKET_MESSAGE
[2021-05-26 14:15:18][DEBUG] : Received command from jeedom : refresh
[2021-05-26 14:15:18][DEBUG] : Refreshing : philipsmono
[2021-05-26 14:15:18][DEBUG] : {"params": ["power", "bright", "cct", "snm", "dv"], "id": 11647, "method": "get_prop"}
[2021-05-26 14:15:18][DEBUG] : {"result":["on",100,0,0],"id":11647}
[2021-05-26 14:15:18][DEBUG] : {"result":["on",100,0,0],"id":11647}
[2021-05-26 14:15:18][ERROR] : Exception on socket : list index out of range

et éteinte via l’appli Xiaomi Home :

[2021-05-26 16:40:18][DEBUG] : Rafraîchissement de XiaomiWifi : MiPhilips - SàM
[2021-05-26 14:40:18][DEBUG] : Client connected to [127.0.0.1:48724]
[2021-05-26 14:40:18][DEBUG] : Message read from socket: {"apikey":"*****","type":"wifi","cmd":"refresh","model":"philipsmono","dest":"192.168.0.101","token":"*****","devtype":"","serial":""}
[2021-05-26 14:40:18][DEBUG] : Client disconnected from [127.0.0.1:48724]
[2021-05-26 14:40:19][DEBUG] : Message received in socket JEEDOM_SOCKET_MESSAGE
[2021-05-26 14:40:19][DEBUG] : Received command from jeedom : refresh
[2021-05-26 14:40:19][DEBUG] : Refreshing : philipsmono
[2021-05-26 14:40:19][DEBUG] : {"params": ["power", "bright", "cct", "snm", "dv"], "id": 20733, "method": "get_prop"}
[2021-05-26 14:40:19][DEBUG] : {"result":["off",100,0,0],"id":20733}
[2021-05-26 14:40:19][DEBUG] : {"result":["off",100,0,0],"id":20733}
[2021-05-26 14:40:19][ERROR] : Exception on socket : list index out of range

→ Contrairement à la dernière version du plugin, j’obtiens désormais des réponses, et on peut voir que le statut ‹ on › / ‹ off › est bien retourné, mais j’ai toujours une erreur « Exception on socket : list index out of range » :thinking:

Et surtout, malgré les réponses, la commande info Statut de mon ampoule retourne toujours « vide » / null :unamused:

En regardant la requête, j’ai l’impression qu’on attend 5 paramètres alors que l’ampoule n’en retourne que 4… Cela expliquerait le « list index out of range » ?

Si ça peut aider, il s’agit d’ampoules :

  • nom dans l’app Xiaomi Home : Philips Wi-Fi bulb E27 White
  • modèle dans le plugin xiaomihome : philipsmono
  • modèle dans « Get Mi Home devices token » : philips.light.hbulb
  • firmware à jour : 1.3.7_0029

Hello,

mes 2 ampoules Philips sont en v 1.3.0_0035 sur serveur Chinois et pas de màj proposée.
Je me note de PAS les mettre à jour…

C’est en cours d’investigation. On essaie de trouver un moment avec @lunarok pour qu’il regarde sur un Jeedom test avec le problème.

2 « J'aime »

Salut,
Dis-moi, tes ampoules Philips, elles gèrent la température de couleur ? Car j’ai l’impression que c’est ce modèle qui est compatible avec le plugin.
Or les miennes n’ont pas cette fonction (allumer/éteindre, réglage de la luminosité, et c’est tout). Cela pourrait expliquer la différence de réponse…

Est-ce que quelqu’un saurait me dire où je peux regarder dans le code ?
Merci d’avance,

Je me réponds tout seul :

En cherchant dans le code, j’ai trouvé la liste des paramètres du device « philipsmono » dans globals.py
J’ai simplifié la liste des paramètres pour ce device en ne gardant que « power » et « bright »
Après redémarrage du daemon (je ne sais pas s’il fallait le faire, mais dans le doute…), je n’ai plus d’erreur dans les logs :

[2021-05-27 17:10:18][DEBUG] : Rafraîchissement de XiaomiWifi : MiPhilips - SàM
[2021-05-27 15:10:18][DEBUG] : Client connected to [127.0.0.1:41090]
[2021-05-27 15:10:18][DEBUG] : Message read from socket: {"apikey":"*****","type":"wifi","cmd":"refresh","model":"philipsmono","dest":"192.168.0.101","token":"*****","devtype":"","serial":""}
[2021-05-27 15:10:18][DEBUG] : Client disconnected from [127.0.0.1:41090]
[2021-05-27 15:10:18][DEBUG] : Message received in socket JEEDOM_SOCKET_MESSAGE
[2021-05-27 15:10:18][DEBUG] : Received command from jeedom : refresh
[2021-05-27 15:10:18][DEBUG] : Refreshing : philipsmono
[2021-05-27 15:10:18][DEBUG] : {"params": ["power", "bright"], "id": 41232, "method": "get_prop"}
[2021-05-27 15:10:18][DEBUG] : {"result":["on",100],"id":41232}
[2021-05-27 15:10:18][DEBUG] : {"result":["on",100],"id":41232}
[2021-05-27 15:10:18][DEBUG] : Send to jeedom : {u'devices': {u'wifi_192.168.0.101': {'status': {u'bright': 100, u'power': u'on'}, 'ip': u'192.168.0.101', 'model': u'philipsmono'}}}
[2021-05-27 15:10:18][DEBUG] : Starting new HTTP connection (1): 127.0.0.1:80
[2021-05-27 17:10:19][DEBUG] : Status Array (     [status] => Array         (             [bright] => 100             [power] => on         )      [ip] => 192.168.0.101     [model] => philipsmono )

Je pense donc que mon modèle d’ampoule Philips n’est pas compatible avec les paramètres par défaut.

Oui les miennes gèrent la temp couleur.

Ok donc malgré leur nom similaire, ce ne sont pas les mêmes ampoules, mon modèle EU doit être une version « cheap »

Bonjour,
Alors oups moi j’ai un souci :

root@jeedom:/var/www/html# lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 8.0 (jessie)
Release:        8.0
Codename:       jessie
root@jeedom:/var/www/html# python --version
Python 2.7.9
root@jeedom:/var/www/html# python3 --version
Python 3.4.2

root@jeedom:/var/www/html# pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
root@jeedom:/var/www/html# pip list | grep cryptography
cryptography (0.6.1)

root@jeedom:/var/www/html# pip3 --version
Traceback (most recent call last):
  File "/usr/bin/pip3", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python3.4/dist-packages/pkg_resources/__init__.py", line 72, in <module>
    import packaging.requirements
  File "/usr/local/lib/python3.4/dist-packages/packaging/requirements.py", line 9, in <module>
    from pyparsing import stringStart, stringEnd, originalTextFor, ParseException
ImportError: No module named 'pyparsing'

Je n’ai pas de pip3 apparemment, est-ce normal ? Un truc manquant à installer ?
Merci

Bonjour,
je viens de passer ma smart sous buster, sur mon autre smart j’ai bien fait la modification
en supprimant le 3
sur la smart que je viens de mettre a jour pas moyen de relancer le demon…
Du coup je testé la beta et la le demon repart mais impossible de commander la prise aqara zigbee.
j’ai refait cette modif a la ligne 201

$cmd = '/usr/bin/python ' . $xiaomihome_path . '/xiaomihomed.py';

et le demon ne repart plus.
du coup j’ai remis

$cmd = '/usr/bin/python3 ' . $xiaomihome_path . '/xiaomihomed.py';

je ne sais plus quoi faire pour la prise zigbee
par contre la passerelle je la controle bien avec la beta et le 3
Merci pour votre aide

Bonsoir,

Cela deviens un dépôt de questions sans réponses ici ou hors sujet …

Comment voulez vous qu’une personne trouve quelque chose ici …

Pour mémoire le forum fonctionne comme suit :

Un sujet avec une question

Des propositions de solutions

Une solution

Bonne Soirée

1 « J'aime »