KiwiHC16 / Abeille

Abeille pour Jeedom (Gateway ZiGate)
GNU Affero General Public License v3.0
60 stars 52 forks source link

Xiaomi Smoke sensor etat =1 quand plus de batterie et "battery percent" = null #2723

Open balabap opened 2 months ago

balabap commented 2 months ago

Salut, comme demandé j'ouvre ce sujet pour une probleme de detecteur de fumée Xiaomi. Je remet mon texte sur l'autre sujet, pour plus de clarté pour les autres utilisateurs si besoin. Le modele n'est pas détecté sur Jeedom, le type est le suivant : Xiaomi Smoke Sensor sur la fenetre compatibilité du plugin, c'est celui-ci : image

Sur mon installation j'ai des détecteurs de fumée Xiaomi, et leur comportement est "bizarre" ces derniers temps. Lorsque j'avais le plugin Zigate, j'avais 2 entrées Alarm qui correspondaient a la détection de fumées et a l'appui long pour le test de mémoire. Avec Abeille, il y a une valeur "Etat" qui quand il ne se passe rien renvoie une chaine vide, et en théorie renvoie 1 quand il y a détection de fumées. Dans mon cas j'ai un scénario basé sur la valeur de "Etat" et qui me préviens d'un potentiel incendie. il y a quelques semaines j'ai eu le déclenchement de mon systeme (Sirene pour nous réveiller et Alexa assez fort pour nous réveiller) à 2h du matin. Sur une installation similaire chez un parent, j'ai eu 2 déclenchements ces 10 derniers jours sur 2 détecteurs de fumées différents. Dans les 2 cas l'état est passé 1, alors qu'en réalité le détecteur déclencheur de l'alerte s'est mis a "biper" pour indiquer que la batterie est faible. Je penses que l'alerte à 2h du mat chez moi estaussi due a un pb de piles. Et en regardant sur les infos récupérées, l'info "Battery-Percent" ne renvoie rien. Je te mets les logs de mon installation. AbeilleLogs-240803.tar.gz Mes Détecteurs sont les suivants : (ID / Addresse) 198 / 8AAE 200 / 517D 210 / CF3B 230 /FA7C

Merci à toi.

tcharp38 commented 2 months ago

Salut Le modele est carrement antique et il n'est pas juste. Donc pas surprenant.

As tu moyen de faire un test (a declencher à partir du sensor et pas jeedom) et me filer les logs dans la foulée pour que je vois ce qui remonte ? Quelle est la ref de ce device ?

tcharp38 commented 2 months ago

Tiens, a decompresser dans Abeille/core/config/devices/sensor_smoke sensor_smoke.zip

puis refaire l'inclusion

L'info Etat est remplacée par "Smoke alarm" et j'ai revu le status batterie.

J'ai aussi ajouté un "Test new". Peux tu verifier que ca fonctionne comme "test old" que je souhaite virer ?

J'ai toujours besoin des logs apres un declenchement forcé Merci

balabap commented 2 months ago

merci pour ton retour, je te ferai les tests en début de semaine prochaine. Le modele exact est celui-ci : https://zigbee.blakadder.com/Xiaomi_JTYJ-GD-01LM_BW.html

je sais pas si ça pourrais t'aider.

balabap commented 2 months ago

Salut, tu trouveras le package de logs suite a la mise a jour (faite hier) vers la dernière beta. j'ai comparé le fichier json et celui de la beta, ils sont identiques. je ne l'ai donc pas importé manuellement. AbeilleLogs-240811.tar.gz

j'ai fait l'inclusion dans Abeille d'un détecteur vers 10h54 / 10h55 ce matin.

Je reste a ta disposition pour les prochains tests.

Merci

tcharp38 commented 2 months ago

Est ce que "Smoke alarm" fonctionne comme tu le souhaites (remplace 'Etat') ?

J'ai besoin que tu fasses un test avec "Test new" et me dise si ca fonctionne, et me file le package de logs suite à ca.

Merci

balabap commented 2 months ago

AbeilleLogs-240811 (1).tar.gz Voici le log, j'ai juste appuyé sur Tester sur la commande "test-New" je n'ai vu aucune réaction. Le smoke-sensor n'a pas sonné. Si tu m'envoie une mise a jour je testerai sur l'autre systeme familial cet après-midi, sinon je testerai sur le mien ce soir. Merci a toi

tcharp38 commented 2 months ago

Etrange, le sensor dit ne pas acquitter la requete. Peux tu du coup faire la meme manip "test new" mais aussi "test old" et me dire si l'une d'elles provoque une reaction du sensor.

Merci

balabap commented 2 months ago

AbeilleLogs-240811 (3).tar.gz Tu trouveras, les tests faits sur l'autre installation familliale. J'ai fait plusieurs tests d'inclusion entre 16h00 et 16h10, avec les test-New et Test

tcharp38 commented 2 months ago

Du coup tu vois un resultat pour "Test" mais pas pour "Test new". C'est bien ca ?

balabap commented 2 months ago

Oui quand je fais "Test", le détecteur fait 1 Bip.

tcharp38 commented 2 months ago

Ok je vois un souci pour "Test new".

Ecrase le modele avec celui ci, et tu fais juste une "mise à jour" via l 'onglet avancé du sensor. sensor_smoke.zip J'espere que "Test new" fonctionne du coup.

Autre point.. en dehors d1 bip, ce "test" fait comme si il y avait une alarme ? Je ne vois rien remonter

balabap commented 2 months ago

AbeilleLogs-240811 (2).tar.gz Voici les logs. L'appui sur Test-New, ne réagit pas comme le test-Old

tcharp38 commented 2 months ago

ok repete l'action 2 ou 3 fois, séparé d1 sec, pour voir

balabap commented 2 months ago

AbeilleLogs-240811 (4).tar.gz Je viens de faire le test

tcharp38 commented 2 months ago

ok ca ne fonctionne pas. Mais pas surpenant. Je ne vois pas comment un device qui n'ecoute pas tout le temps peut recevoir un ordre si on ne le repete pas jusqu'a ce que par hasard.. il se reveille. Je vais reflechir à ca.

Quand est il de smoke alarm ?

balabap commented 2 months ago

Smoke Alarm vaut 0

tcharp38 commented 2 months ago

Peux tu declencher une alaram et me filer les logs avec l'heure ?

balabap commented 2 months ago

AbeilleLogs-240812.tar.gz Voici les logs sur mon install : 10h51 : avec le fichier de la beta, j'ai fait les test-new et test odl et un appui long sur le bouton de l'appareil pour simuler un test de détection de fumées ensuite j'ai mis le fichier que tu m'as fourni hier et testé sur l'autre installation familiale 10h55 : Plusieurs appuis test-new (j'ai eu 1 ou 2 bips) plusieurs appuis sur test-old (j'ai eu 1 bip) Appui long sur le bouton du device pour simuler un test de détection

Cet appui long équivalait a "Alarm2" de mémoire avec le plugin Zigate.

tcharp38 commented 2 months ago

A priori "Smoke alarm" fonctionne

[2024-08-12 10:52:04][INFO] : Evènement sur la commande [Rez de chaussée][Smoke Rdc][Smoke alarm] valeur : 1
[2024-08-12 10:52:08][INFO] : Evènement sur la commande [Rez de chaussée][Smoke Rdc][Smoke alarm] valeur : 0

[2024-08-12 10:55:07][INFO] : Evènement sur la commande [Rez de chaussée][Smoke Rdc][Smoke alarm] valeur : 1
[2024-08-12 10:55:10][INFO] : Evènement sur la commande [Rez de chaussée][Smoke Rdc][Smoke alarm] valeur : 0

Des soucis avec ca ?

balabap commented 2 months ago

un souci oui et non dans le sens ou l'état change. Est-ce que "Smoke alarm correspond à anciennement "Etat" ? Si oui, de mon point de vue il faut dissocier comme cela avait été fait avec sous le plugin Zigate. (Alarm1 (Correspondant a une vraie détection de fumée), Alarm2 (Correspondant a un test par appui long sur le bouton du detecteur)) et surtout avoir le niveau de batterie de la pile

Edit : Perso j'esaye de comprendre comment fonctionnait le module Zigate et comment fonctionne ton module pour t'aider à répondre à mon besoin. Je commence a retrouver mes petits dans tout le code et les fichiers Abeille (l'organisation est claire et assez compréhensible), mais du coté du plugin Zigate je m'y perds et les devs sont arrétés depuis 4ans.

tcharp38 commented 2 months ago

Non "Smoke Alarm" n'est pas "Etat". Ca correspond juste à "Alarm2" et pas une combinaison d'infos. Je doute fortement qu'une veritable alarme soit Alarm1 et le mode test Alarm2. Ca ne fait pas de sens de ne pas pouvoir faire un vrai test. As tu déja déclenché avec de la fumée pour voir ?

Coté batterie tu as deja la tension. pour avoir le % tu refais une inclusion avec mon dernier modele ou simple une "reinitialisation" via l'onglet avancé.

balabap commented 2 months ago

J'ai cette info pour la batterie : BatteriePourcent

Alors que dans le json, j'ai vu ceci : Battery-Percent

tcharp38 commented 2 months ago

Le seul sensor smoke qui utilise le dernier modele est 6953

- ok : [Rez de chaussée][Smoke Rdc], Id=200
       Addr=6953, Model='sensor_smoke', Type='Xiaomi Smoke Sensor'

et tu dois bien avoir un niveau de batterie pour celui la, quel que soit le nom de la commande normalement cachée par défaut

[2024-08-12 10:30:24][DEBUG] : msgFromParser(): Attributes report by name from 'Abeille1/6953/01'
[2024-08-12 10:30:24][DEBUG] :   'Batterie' (0001-01-0020) => 3.065 V
[2024-08-12 10:30:24][DEBUG] :   trigCommand(Val=3.065, TrigOffset='(max(min(#value#,3),2.85)-2.85)*100/(3-2.85)')
[2024-08-12 10:30:24][DEBUG] :   Triggering cmd 'BatteriePourcent' (0001-01-0021) with Val='100'
[2024-08-12 10:30:24][DEBUG] :   Battery % reporting: 0001-01-0021, Val=100
balabap commented 2 months ago

oui je n'ai en effet modifié qu'un seul détecteur. Ma remarque sur le batteriePourcent était surtout par rapport à la différence d'écriture entre le json de référence (Battery-Percent) et ce qui est affiché dans les commandes (batteriePourcent). c'est peut être normal ;-)

en regardant cette parge : https://www.zigbee2mqtt.io/devices/JTYJ-GD-01LM_BW.html ils indiquent qu'il y aurait une commande "battery_low", est-ce que tu saurais récupérer cette info ?

tcharp38 commented 2 months ago

Oui, teste avec ce nouveau modele. Quoi que... tu ne pourra pas tant que la battery n'est pas "low". sensor_smoke.zip

A appliquer sur la beta dispo demain.

Tu pourra retester "Test new"

balabap commented 2 months ago

Je viens de mettre à jour Abeille puis j'ai déposé le fichier. J'ai fait "mise a jour" et "Réinitialiser" depuis avancé. J'ai même refait une inclusion, et je ne vois pas la commande BatteryLow se créer. Je te mets le package de logs. test réalisés a partir de 9h40 / 45 aujourd'hui

Test-New réalisé a 9h57 AbeilleLogs-240820 (1).tar.gz

tcharp38 commented 2 months ago

Bon visiblement tu as tout enchainé et ca n'est marché dessus.

Ne refais qu'un "reinitialiser" SANS nouvelle inclusion. La commande "Battery-Low" devrait apparaitre.

Quant au test "Test new" .. aussi à refaire mais 1 seul click, sans autre appuis sur "Test".

Et laisse au moins 30sec avant de faire un package de logs. Merci

balabap commented 2 months ago

Hello, désoél j'ai pas eu le temsp de retester hier. Voila les logs. 7h42 => Réinitialiser pour le detecteur et appui sur le bouton pour le réveiller. PAreil a 7h44 => le comportement est le même. Je n'ai toujours pas la nouvelle commande

Après avoir regardé mon sensor est en time out depuis hier 10h52....

7h46 le tente une inclusion. Jusqu'a 7h49 ou j'arrive enfin a le réinclure. Mais les commandes sont pas à jour.

7h50 => test new => l'appareil bip

voici le package de logs AbeilleLogs-240821.tar.gz

tcharp38 commented 2 months ago

Pas de soucis.

Bon je ne garde que "Test new".

Coté cmd "Battery-Low".. je seche. Je vois qu'elle est bien ajoutée pendant le processus

[2024-08-21 07:44:41][DEBUG] :   Adding info 'Battery-Low' (01-batteryLow)

mais elle n'apparait pas par la suite. J'ai fait le meme essai en ajoutant la commande sur un autre device et pour le coup elle est bien créée.

Bref.. je creuse

balabap commented 1 month ago

Hello, je peux te créer un compte admin sur mon install si tu veux et t'envoyer les infos par MP (si cela est possible) ?

tcharp38 commented 1 month ago

Il faudrait plutot qu'on fasse une session partagée mais bon difficile pour l'instant de dire quand.

Peux tu activer le mode "developpeur" via la page config, puis "options avancées" et "mode dev: activer". Ca va creer un AbeillePhp.log avec les erreurs PHP eventuelles. Donc refaire la manip de "reinit" et me filer les logs.. des fois que.

Chez moi ca fonctionne tres bien. Je ne reproduis pas ce souci

balabap commented 1 month ago

hello, pas de souci. j'ai activé le mode dev, mais vu l'heure je vais éviter de faire biper l'appareil dans toute la maison. Je te fais un retour dès que j'ai fait la manipulation. Peut être demain matin.

balabap commented 1 month ago

hello, je viens seulement de faire la manipulation. J'ai ce message qui est apparu :

deamon(): Exception [MySQL] Error code : 23000 (1062). Duplicate entry '200-Test' for key 'unique' : UPDATE `cmd` SET `id` = :id, `logicalId` = :logicalId, `generic_type` = :generic_type, `eqType` = :eqType, `name` = :name, `order` = :order, `type` = :type, `subType` = :subType, `eqLogic_id` = :eqLogic_id, `isHistorized` = :isHistorized, `unite` = :unite, `configuration` = :configuration, `template` = :template, `display` = :display, `value` = :value, `isVisible` = :isVisible, `alert` = :alert WHERE id = :id --

Voici le package de Logs associés. J'ai fait le réinitialiser vers 9h28 ce matin. AbeilleLogs-240902.tar.gz

tcharp38 commented 1 month ago

Hello

Ha zut. Un cas pas bien supporté à cause de la commande "Test" qui est renommée.

Ca t'ennuies de supprimer carrement l'equipement cote Jeedom et refaire une inclusion ?

balabap commented 1 month ago

Non aucun problème. c'est justement pour ce genre de possibilité que je n'ai modifié qu'un équipement. JE fais ça et je te dis.

balabap commented 1 month ago

Bon , je n'arrive pas a réintégrer mon périphérique. J'ai tenté plusieurs fois. Je n'ai pas fait d'exlusion avant. J'aurais peut etre du. AbeilleLogs-240902 (1).tar.gz

tcharp38 commented 1 month ago

Non pas besoin de l'exclure avant. Je vois qu'il s'annonce dans les logs. Pas de creation d'equipement c'est ca ?

tcharp38 commented 1 month ago

Ok je pense qu'il y a un bug interne de synchro. Du coup ton equipement ne semble pas recréé au niveau Jeedom. Redemarre Abeille et refais une inclusion. Ca devrait passer.

Je regarde de mon coté

balabap commented 1 month ago

je viens de le faire. par précaution et vu le nombre de messages qui sont apparus au moment de reboot le démon, j'ai carrément désactivé le plugin. A ce moment la j'ai eu un joli message "Abeille desinstallé" vers 13h53. quand je regarde le log, je vois plein de messages effectivement comme uoi il désinstalle abeille. C'est un peu violent de désinstaller à la désactivation du plugin non ?

L'inclusion se passe moyen. Il me trouve un équipement abeille 1-321. Je ne vois rien dans les logs, normal je suis plus en debug.

Je réactive le mode debug et je refais une inclusion. 14h02 C'est pas mieux. AbeilleLogs-240902 (2).tar.gz

tcharp38 commented 1 month ago

J'ai trouvé qq regressions. Sorry :( Par contre cette histoire de désinstallation.. je suis pas.

A decompresser dans Abeille/core/class AbeilleParser.class.php.zip

A decompresser dans Abeille/core/php php.zip

A decompresser dans Abeille/desktop/js Abeille.zip

Et tu redemarres Abeille

Bon en fait je fais une beta pour demain. Ca concerne trop de monde.

balabap commented 1 month ago

Hell, pas de souci, pour les régressions, les Beta son faites pour ça. Comme on dit dans mon taf, même si c'est pas forcement coool, "c'est les clients qui testent" ;-)

il est trop tard pour refaire une inclusion, je verrai demain si il y a du mieux sur l'appareil si il le découvre mieux. Je te tiens au courant. Edit : Ce matin me smoke sensor, est bien reconnu, et j'ai bien la commande qui va bien. Dès que j'ai le temps je teste avec une pile usagée, si j'en ai encore une.