Refresh xiaomi LYWSD03MMC

14 remontées autonome depuis la modification du nom du fichier

Bon je vais reproduire comme toi alors.
Moi ils ont tous le symbole bluetooth allumé et j’en ai 2 qui ont décroché dans la nuit…

Tu utilises une antenne déportée ?

Parceque chez moi les données remontent bien à partir du local en remettant les bindkeys, cependant sur mon antenne, pour une obscure raison, les modules sont bien détectés mais la température n’est pas récupérée.
ça me dit : SCANNER------It’s a unknown packet and I known this device so I send a4:c1:38:d1:XX:XX

[2021-01-07 10:59:55.334][DEBUG] : SCANNER------Clearing seen
[2021-01-07 10:59:55.390][DEBUG] : SCANNER------[(255, 'Manufacturer', '060001092002bfa5991239ee99a907b3dd947a888df40ba2927919d58b')] True random 39:b7:6f:1b:XX:XX
[2021-01-07 10:59:55.396][DEBUG] : SCANNER------It's an unknown packet but not sent because this device is not Included and I'am not in learn mode 39:b7:6f:1b:XX:XX
[2021-01-07 10:59:55.464][DEBUG] : SCANNER------[(255, 'Manufacturer', '06000109200244ac3cfbf0a1c94131fabb5bac210f3d07844a5c0637ea')] True random 51:53:fb:05:XX:XX
[2021-01-07 10:59:55.468][DEBUG] : SCANNER------It's an unknown packet but not sent because this device is not Included and I'am not in learn mode 51:53:fb:05:XX:XX
[2021-01-07 10:59:55.763][DEBUG] : SCANNER------[(1, 'Flags', '06'), (22, '16b Service Data', '95fe30585b052aee700638c1a408')] True public a4:c1:38:06:XX:XX
[2021-01-07 10:59:55.766][DEBUG] : No name in data but i know it is : lywsd03
[2021-01-07 10:59:55.772][DEBUG] : SCANNER------It's a unknown packet and I known this device so I send a4:c1:38:06:XX:XX
[2021-01-07 10:59:55.774][DEBUG] : {'id': 'A4:C1:38:06:XX:XX', 'type': 'default', 'name': 'lywsd03', 'rssi': -61, 'source': 'RaspberryPi 0', 'present': 1}
[2021-01-07 10:59:55.995][DEBUG] : Send to jeedom : {'devices': {'A4:C1:38:06:XX:XX': {'id': 'A4:C1:38:06:XX:XX', 'type': 'default', 'name': 'lywsd03', 'rssi': -61, 'source': 'RaspberryPi 0', 'present': 1}}}
[2021-01-07 10:59:56.031][DEBUG] : Starting new HTTP connection (1): 192.168.68.116:80
[2021-01-07 10:59:56.148][DEBUG] : http://192.168.68.116:80 "POST /plugins/blea/core/php/jeeBlea.php?apikey=7eMkMgY2kdi6yTIgeVHlRAw6twEfbaJy HTTP/1.1" 200 0
[2021-01-07 10:59:57.027][DEBUG] : SCANNER------[(1, 'Flags', '06'), (22, '16b Service Data', '95fe30585b052a0542d138c1a408')] True public a4:c1:38:d1:XX:XX
[2021-01-07 10:59:57.029][DEBUG] : No name in data but i know it is : lywsd03
[2021-01-07 10:59:57.033][DEBUG] : SCANNER------It's a unknown packet and I known this device so I send a4:c1:38:d1:XX:XX
[2021-01-07 10:59:57.035][DEBUG] : {'id': 'A4:C1:38:D1:XX:XX', 'type': 'default', 'name': 'lywsd03', 'rssi': -82, 'source': 'RaspberryPi 0', 'present': 1}
[2021-01-07 10:59:57.143][DEBUG] : SCANNER------[(1, 'Flags', '06'), (22, '16b Service Data', '95fe30585b052fef734738c1a408')] True public a4:c1:38:47:XX:XX
[2021-01-07 10:59:57.145][DEBUG] : No name in data but i know it is : lywsd03
[2021-01-07 10:59:57.148][DEBUG] : SCANNER------It's a unknown packet and I known this device so I send a4:c1:38:47:XX:XX
[2021-01-07 10:59:57.149][DEBUG] : {'id': 'A4:C1:38:47:XX:XX', 'type': 'default', 'name': 'lywsd03', 'rssi': -86, 'source': 'RaspberryPi 0', 'present': 1}
[2021-01-07 10:59:57.199][DEBUG] : Send to jeedom : {'devices': {'A4:C1:38:D1:XX:XX': {'id': 'A4:C1:38:D1:XX:XX', 'type': 'default', 'name': 'lywsd03', 'rssi': -82, 'source': 'RaspberryPi 0', 'present': 1}, 'A4:C1:38:47:XX:XX': {'id': 'A4:C1:38:47:XX:XX', 'type': 'default', 'name': 'lywsd03', 'rssi': -86, 'source': 'RaspberryPi 0', 'present': 1}}}
[2021-01-07 10:59:57.222][DEBUG] : Starting new HTTP connection (1): 192.168.68.116:80
[2021-01-07 10:59:57.478][DEBUG] : http://192.168.68.116:80 "POST /plugins/blea/core/php/jeeBlea.php?apikey=7eMkMgY2kdi6yTIgeVHlRAw6twEfbaJy HTTP/1.1" 200 0

non j’ n’ai pas d’antenne déporté, pour éviter d’en utiliser, j’ai utiliser un clé avec un très grande porté qui couvre toute la maison, jusqu’à sur la rue même.

tu as bien modifié ca ?

Yep c’était modifié par défaut quand j’ai rajouté les modules :


J’ai testé avec et sans le refresh forcé, ça change rien.

Wow, j’ai trouvé mon erreur ! :astonished:

Dans la procédure décrite ici Sonde de température Xiaomi Mijia LYWSD03MMC - #11 par timcrouzet, pour utiliser les modules lywsd03, il est précisé :

  • Ajouter la dépendance sur la librairie de décryptage : sudo pip3 install pycryptodomex

Ce que j’avais bien fait sur le local, mais pas sur l’antenne. Je viens de le faire et j’ai maintenant les valeurs qui remontent correctement.

C’est pas une mince affaire d’utiliser ces sondes ! :exploding_head:

P.S. J’ai également remarqué que les valeurs ne s’enregistrent dans l’historique que si elles varient.

bien joué !

Oui j’ai bien relancé les antennes et le demon.

et ca tu l’as fait aussi ?

A faire sur le local ET sur les antennes.
Le faire uniquement sur le local ne le copie pas sur les antennes.

Tu marques
A faire sur le local ET sur les antennes.
Le faire uniquement sur le local ne le copie pas sur les antennes.
Sachant que j’ai une antenne déporté je dois installer librairie de décryptage : sudo pip3 install pycryptodomex sur les deux et c’est quoi que tu fais uniquement sur le local ??

le fichier .py_with_bindKey que tu modifie, puis tu le renome en .py (sauvegarde le .py en .py_old au cas ou)

ça c’est fait et je mets mes MAC/keys dedans mais ça ne change rien.
Mais dans mon log j’ai toujours « Decryption failed: MAC check failed » malgré les minuscules.

Alors, sur le Local tu dois faire :
1.

En reprenant le MAC address de chacune de tes sondes associé avec le bindkey que tu obtiens via cette page. Attention, si tu fais « do activation » une seconde fois sur le même module, le bind key change !
Par ailleurs, tant que la page est ouverte et que tu es connecté à un module, celui-ci n’est pas détecté par Blea, il faut juste rafraichir la page ou la fermer quand tu as terminé.
Et moi j’ai gardé les majuscules pour les MAC, ça fonctionne « très bien » avec.

  1. Ajouter la dépendance sur la librairie de décryptage : sudo pip3 install pycryptodomex sur ton local via SSH

Ensuite sur tes antennes :

  1. Tu installes les dépendances etc… si c’est pas déjà fait.

  2. Tu lances le daemon de tes antennes et tu vérifies qu’elles ont bien repris le bon fichier .py en regardant le contenu de /blead/resources/blead/devices/lywsd03.py et en constatant que tu y retrouves bien tes MAC + bindkey comme sur ton local.

  3. Maintenant tu dois également ajouter la dépendance sur la librairie de décryptage : sudo pip3 install pycryptodomex sur ton antenne, via SSH.
    Je me suis aperçu qu’il me manquait cette dépendance car j’avais un message dans le log disant qu’il ne trouvait pas le cryptodome, mais c’était même pas une erreur.

Au final tu auras donc :

  1. La librairie de décryptage installée sur ton local et sur ton antenne
  2. Le fichier de config paramétré avec tes MAC et tes bindkeys sur ton local. Il sera ensuite automatiquement recopié sur tes antennes quand tu lancera le daemon.

Si ça ne fonctionne toujours pas, mets-toi en mode debug, relance le daemon et envoie nous une partie du fichier de log de l’antenne.
Voici un exemple de trame qui remonte la température sur mon antenne :

[2021-01-07 22:14:51.592][DEBUG] : No name in data but i know it is : lywsd03
[2021-01-07 22:14:51.597][DEBUG] : LYWSD03------isvalid data=95fe58585b05360542d138c1a491a1370e8c0100006bdf3d54, mac=a4:c1:38:d1:XX:XX, name=lywsd03, manuf=
[2021-01-07 22:14:51.599][DEBUG] : SCANNER------This is a lywsd03 device a4:c1:38:d1:XX:XX
[2021-01-07 22:14:51.601][INFO] : LYWSD03------adv data=95fe58585b05360542d138c1a491a1370e8c0100006bdf3d54, mac=a4:c1:38:d1:XX:XX, name=lywsd03, manuf=
[2021-01-07 22:14:51.603][INFO] : LYWSD03------Encrypted
[2021-01-07 22:14:51.615][DEBUG] : {'present': 1, 'temperature': 19.6, 'id': 'A4:C1:38:D1:XX:XX', 'type': 'lywsd03', 'name': 'lywsd03', 'rssi': -73, 'source': 'RaspberryPi 0'}

Sur ce, bon courage ! :crossed_fingers:

super clair, je confirme pour les majuscules, mois aussi je les ai, il semble que la différence est juste un souci d’affichage dans les logs.

Je ne pense pas que cela ai vraiment de l’importance, mais tu devrais les remettre en MAJ

Merci à vous deux pour votre aide, je ne vais pas crier victoire trop vite, mais les infos sont remonté et j’oubliais bien quelque chose.
Je n’avais pas compris qu’il fallait mettre les antennes à jour en cliquant sur « mettre à jour tous les fichiers » je faisais que redémarrer les antennes. Je vous tiens au courant.

Bon cela fait 1 jour que j’ai des remontée donc ça c’est niquel mais je vois que la température et l’humidité ne remontent pas en même temps et surtout aléatoirement.
Donc si je regarde mes températures sur Jeedom et sur le capteur elles ne sont jamais pareilles.
Pour le refresh, il faut le cocher ou pas ?

Surtout pas de refresh forcé, car il fait planté le thermomètre, il faut alors le démonter pour enlever la pile ou au mieux il ne plantera mais bouffera ta pile en 1 mois.

Quand tu dis que les valeurs ne sont pas pareil, c’est de beaucoup ?

Car le refresh auto d’après ce que j’ai compris se fait sous condition tel que si une valeur est différente de plus de X degrés/humidité.

Exemple si le dernier envoi il faisais 20° et qu’il fait maintenant 20.2 et que le X degré de différence est ±0.5° alors pas de refresh, et si pas de variation depuis plus de X minutes alors j’envoi quand même (les valeur cité ne sont pas les bonnes mais le principe l’est je crois).

Si les valeurs sont vraiment différentes, vérifie que tu n’as pas inversé des thermomètres.

Nb: mes remontées sont bien régulières depuis mes derniers tests, j’ai basculé mes compteur Mijia comme capteur de mon thermostat, et recyclé mes Aquara Zigbee dans mon frigo/congel.

1 « J'aime »

En vrai mes remonté se font toutes les 10 min environs mais rien entre 2.
Si je mets le capteur dans mes mains la température augmente mais pas sur jeedom.

10 minutes c’est pas mal, très bien même. pense que tu est sur un protocole bluetooth BLE (Low Energie) il ne faut pas envoyer en temps reel sinon adieu les piles. Avec des vraies variations de températures 10 minutes c’est plus que correcte