Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for atc1441 custom firmware to Lywsd03 #121

Open
wants to merge 2 commits into
base: beta
Choose a base branch
from

Conversation

tancou
Copy link

@tancou tancou commented Feb 5, 2021

See English version below

Bonjour à tous,

J'ai ajouté une condition au parser de données pour ajouter le support du firmware custom atc1441 aux capteurs de températures Lywsd03 de Xiaomi.

La modification ne modifie pas le fonctionnement actuel de l'implémentation et ajoute juste une condition pour vérifier si la trame reçue correspond à l'implémentation de atc1441

La documentation relative à ce firmware est disponible ici https://github.com/atc1441/ATC_MiThermometer#advertising-format-of-the-custom-firmware
Le support est aussi assuré pour le firmware @pvvx qui est un fork un peu plus avancé de ce que @atc1441 a fait. C'est également le firmware que j'utilise pour mes 3 capteurs.
L'implémentation ne nécessite pas de BindKeys.

Une implémentation plus propre de ce code serait à faire selon moi, étant donné que dans les paramètres par défaut du fichier ./core/config/devices/lywsd03/lywsd03.json il est stipulé que le capteur doit être en mise à jour forcée et avec un intervalle de 15 minutes.
Le firmware proposé ci-dessus utilise le advertising via le Bluetooth Low Energy, ce qui permet de tenir 6 mois avec la pile, et broadcaster la température, humidité et batterie toutes les 2.5 secondes (modifiable si besoin.)
Je pense ainsi qu'il serait bien de faire un type différent dans BLEA pour que les settings soient en non forcé par défaut, à défaut d'avoir de la doc juste en dessous.

Ma proposition n'empêche en rien le bon fonctionnement du code que je pull request ici.


Hi there,

I added a condition to the data parser to support the custom atc1441 firmware to Xiaomi's Lywsd03 temperature sensors.

The modification does not change the current working implementation with MiHome and just adds a condition to check if the received frame matches the implementation of atc1441

The documentation for this firmware is available here https://github.com/atc1441/ATC_MiThermometer#advertising-format-of-the-custom-firmware.
Support is also provided for the @pvvx firmware which is a slightly more advanced fork of what @atc1441 has done. This is also the firmware I use for my 3 sensors.
The implementation does not require BindKeys.

A cleaner implementation of this code would be great to do, as in the default settings of the ./core/config/devices/lywsd03/lywsd03.json file it is stipulated that the sensor must be in forced update and with a 15 minutes interval.
The firmware quoted above uses advertising via Bluetooth Low Energy, which allows to last 6 months with the battery, and broadcasts the temperature, humidity and battery every 2.5 seconds (can be changed if needed.)
So I think it would be great to make a different type in BLEA so that the settings are not forced by default, if you don't have documentation just below.

My proposal doesn't prevent the code I pull request here from working properly.

@tancou
Copy link
Author

tancou commented Jul 15, 2021

Bonjour @sarakha63

Je me permets de te notifier car je pense que cette modification à un réel intérêt pour l'implémentation des capteurs flashé avec le firmware atc1441 et ses dérivés, qui totalisent 1.2K stars et un repo actif.

Une fois flashé les capteurs sont indépendants et il suffit de laisser BLEA écouter leurs broadcast. Les piles tiennent plus longtemps, il est possible via le firmware de définir les intervalles d'émissions. Et leur integration est immédiate dans BLEA et sans avoir à renseigner ni l'adresse mac, ni à les connecter à une passerelle Xiaomi. J'ai flashé 4 capteurs reçus la semaine dernière en 5 minutes avec seulement la page du flash de pvvx (fork avancé de atc1441) et un smartphone. L'intégration a été immédiate dans Jeedom avec les modifs de cette PR.

Dans mon texte principal de la PR je dis qu'il faudrait revoir la description du JSON qui explique le fonctionnement dans Jeedom. En effet, avec le firmware et cette modif, l'ajout est immédiat, consomme moins d'énergie (pas de connexion au capteur en BT) et est non bloquant.

Et enfin, cette PR ne modifie en rien le fonctionnement actuel des capteurs non flashé. C'est juste que si le capteur est flashé, alors il sera reconnu immédiatement par BLEA. Ce qui n'est pas le cas actuellement sans faire mumuse soit avec la clef de chiffrement de Xiaomi, ou bien de se connecter en dur au capteur, ou bien en tripatouillant l'adresse mac dans des fichiers en dur...

À moins que je ne me trompe, cette PR propose l'intégration la plus simple de ces capteurs trouvable à moins de $5.

@Micka41
Copy link
Contributor

Micka41 commented Aug 18, 2021

C'est pas mal du tout ça !
Merci !!

@Philmo67
Copy link

Bonjour,
je confirme le bon fonctionnement de ce PR.
Pour clarifier les choses, peut-être serait-il bon d'introduire un type de device "lywsd03 atc1441/pvvx" en tout cas un nom différenciant des "lywsd03 non flashés".
Merci d'avance pour un futur commit facilitant les futures mises à jour :-)

@tancou
Copy link
Author

tancou commented Aug 14, 2023

Voilà c'est fait, le nouveau modèle s'appelle Xiaomi Lywsd03 atc1441.
Les données sont automatiquement collectées même en cas d'erreur de modèle.

@Philmo67
Copy link

Bonjour, peut-on espérer un passage en stable ? :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants