Closed KiwiHC16 closed 1 year ago
Master:
commit 98ef62d1664fa5fb7e06d3d21b2f7903736b768e (HEAD -> master, origin/master, origin/HEAD)
Author: Tcharp38 <tcharp38@laposte.net>
Date: Wed Nov 15 10:41:16 2023 +0100
TS0205__TZ3210_up3pngle
Situation de départ: Juste une prise
Refresh du reseau donne:
Et la prise à bien été interrogée:
Je supprime la prise avec bouton rouge en haut à droite:
Plus de prise:
Refresh reseau, bouton orange:
Message pendant operation:
La prise est bien interrogée sur zigbee:
J ai bien les infos mais pas de nom d eq car n existe pas dans jeedom:
Mais je n ai pas de prise créée dans Jeedom à la suite du refresh.
Pour moi, il y a une regression dans le code.
Une des raisons principales d'avoir développé le refresh réseau était de récupérer les équipements inconnus de Jeedom qui existent dans le réseau zigbee sur la base des listes de voisines.
Dans la version d'abeille actuelle, il semble que la creation d'eq ne se produit "que" sur la base des messages d'annonce.
Si pendant un refresh réseau, on a un equipement, comme la prise ici, qui remonte mais n'est pas dans jeedom il faut aller l'interroger pour le recuperer.
Je me souviens avoir eu l approche suivante: faire une liste de toutes les informations connues et récupérées et interooge tout le monde pour créer les eq manquants:
Interroge tous le monde pour decouvrir les équipements manquant et les créer dans Jeedom.
L'idée est bien de recréer le reseau sans intervention utilisateur sur les équipements et le plus vite possible. Dans le cas de la prise, je dois débrancher/branche pour provoquer l annonce (A eviter au maximum) et ou attendre en esperant qu'elle fasse une annonce un jour ou l'autre, mais quand ? jamais ?
Pour moi un device
doit entrainer dans la foulée la requete pour chaque info manquante jusqu'a pouvoir identifier son modele et le creer proprement.
C'est du coup aussi le cas des qu'on fait une requete LQI et qu'Abeille decouvre une nouvelle adresse.
Si je ne suis pas encore totalement satisfait, ca marche plutot pile poil pour moi. Du coup.. je réitère.. je veux bien ton package de logs complet. Meme par email (tcharp38@laposte.net) si tu ne veux pas le laisser ici. Mais il ne contient aucune info critique à mon sens. J'avais déja filtré des choses en fonction de retours utilisateurs.
C'est du coup aussi le cas des qu'on fait une requete LQI et qu'Abeille decouvre une nouvelle adresse.
Dans ce cas il y a un bug car cela ne fonctionne pas pour moi.
Ok je te fais un log dans la soirée.
Test quper rapide car je dois y aller:
Manip, suppression prise, refresh network, et pas de prise crée, tout ca j espere est dans le logs que je n ai pas eu le temps de regarder. A ce soir.
Tres etrange mais il doit y avoir un effet de bord qq part que je ne vois pas pour l'instant.
Tu as vidé une partie de l'historique du parser en particulier et je ne vois pas comment cet equipement qui apparait via LQI (adr 92D3) est connu ou non du parser. Et du coup je ne vois pas quand le parser recoit l'info "equipement supprimé".
En gros
Bref, je veux bien un package + complet sinon tu as qq billes. Je continue de creuser.
Question.. tu l'as supprimé comment exactement ?
Tu as vidé une partie de l'historique du parser
Oui j ai vidé les logs avant de faire les manips pour faciliter la lecture.
Toujours avec ce bouton Supprimer.
Je vais entrer dans le code pour essayer de t'amener des billes plus précises.
Tu peux déja suivre la sequence que j'ai indiqué. 1/ s assurer que le parser est au courant de la suppression 2/ voir un deviceUpdates() puis newDevice() suite à un refresh reseau
Je retombe sur un scenarion similaire au precedent cas: 1) Suppression, refresh network, rien 2) Suppression, restart Abeille, refresh network, Prise créée.
/* Called from decode8002() to decode "Mgmt_lqi_rsp" message */
function decode8002_MgmtLqiRsp($dest, $srcAddr, $pl, &$toMon) {
....
foreach ($nList as $N) {
...
$this->deviceUpdates($dest, $N['addr'], '', $updates);
Apres restart Abeille:
[2023-11-14 10:30:12] Management LQI response: SQN=CD, Status=00, NTableEntries=01, StartIdx=00, NTableListCount=01
[2023-11-14 10:30:12] NExtPANId=76D888B1B30664F5, NExtAddr=84182600000E857B, NAddr=92D3, NBitMap=0225 => ?/Sibling/RxONWhenIdle/Router, NDepth=00, NLQI=9F
[2023-11-14 10:30:12] BEN Calling deviceUpdates() with Dest: Abeille1 and aadr: 92D3 and ?: (rien) and update: {"ieee":"84182600000E857B"}
[2023-11-14 10:30:12] 92D3/84182600000E857B is a new device.
[2023-11-14 10:30:12] deviceUpdates('ieee', '84182600000E857B'): Status=identifying
[2023-11-14 10:30:12] Requesting active endpoints list
Sans Restart Abeille
[2023-11-14 10:31:41] Management LQI response: SQN=D3, Status=00, NTableEntries=01, StartIdx=00, NTableListCount=01
[2023-11-14 10:31:41] NExtPANId=76D888B1B30664F5, NExtAddr=84182600000E857B, NAddr=92D3, NBitMap=0225 => ?/Sibling/RxONWhenIdle/Router, NDepth=00, NLQI=93
[2023-11-14 10:31:41] BEN Calling deviceUpdates() with Dest: Abeille1 and aadr: 92D3 and ?: (rien) and update: {"ieee":"84182600000E857B"}
Ok donc ca ressemble à fait que le parser ne sait pas que l'equipement a été supprimé. Peux tu juste refaire la meme suppression et regarder le log parser ? Tu dois voir un truc du style
[2023-11-15 20:54:10] Some equipments removed from Jeedom
[2023-11-15 20:54:10] Device Abeille1/67A4 (ieee=5C0272FFFE2857A3) removed from Jeedom
La prise a été créée. Je supprime la prise et je log AbeilleParser. Aucune trace, aucun message.
Shi.. Tu es sur le master ou sur un merge ? Si merge, peux tu verifier qu'il n'y a pas de diff ? Attention j'ai poussé encore plein d'updates sur le master mais ca doit pas toucher ce sujet
Hoo.. sinon j'ai une autre idée. Une diff entre ta version de Jeedom et la mienne.
Et si je fais pas la facon : Supprimer de Jeedom
J ai :
[2023-11-14 10:38:28] Some equipments removed from Jeedom
[2023-11-14 10:38:28] Device Abeille1/92D3 (ieee=84182600000E857B) removed from Jeedom
J ai
commit 98ef62d1664fa5fb7e06d3d21b2f7903736b768e (HEAD -> master, origin/master, origin/HEAD)
Author: Tcharp38 <tcharp38@laposte.net>
Date: Wed Nov 15 10:41:16 2023 +0100
TS0205__TZ3210_up3pngle
a) Supprimer de Jeedom, n informe pas le parser b) Supprimer de Abeille, informe le parser
Est ce le soucis ?
Je vais supposer que tes merges se sont bien passés et donc tu es parfaitement aligné. Ta version de Jeedom c'est quoi ?
Pour ces tests:
Je suis en 4.4 Il faut que je trouve comment revenir en arriere du coup. Je soupconne une difference de comportement de jeedom à ce niveau.
Yessssss. Arrete de chercher. Je reproduis le souci en 4.3.19. Je dois creuser du coup pour comprendre la difference. Jeedom ne fait pas la meme chose :(
Ok, je te laisse la main.
J'ai poussé dans le master qqch qui semble compatible avec le core 4.3.19 et le 4.4.0. Je te laisse te realigner et verifier.
Super. 5 tests et tous ok. Je clos.
Continuation du cas: #2642