Closed KiwiHC16 closed 3 years ago
Il y a deja un point sur le sujet. Le #1273 Je clos le + vieux
@KiwiHC16 @tcharp38
Preneur des infos et des tests. J'ai un routeur qui est présent dans Abeille et donc Zigate alors qu'il est HS. J'aimerai le supprimer car j'ai encore son IEEE mais visiblement la commande 0026 ne le vire pas de la Zigate. A moins que je ne m'y prenne mal.
C est un sujet que j'avais démarré il y a un moment mais que j'ai arrété en cours par manque de reponses. Mais en résumé la ou j'en etais
Je me suis pas penché énormément sur le sujet mais c'est curieux comme principe. Je vois pas l'intérêt pour la norme d'exclure la possibilité de virer de force un équipement. Je ferai avec évidemment. Lorsque qq1 se sera penché sur la mémoire d'un coordinateur il y aura certainement une façon de faire. D'ailleurs si on efface la PDM, ca revient en partie à la même chose non ?
Si on efface la PDM oui le coordinateur ne connait plus personne. Mais aujourd hui on ne sait pas enlever juste un eq de la PDM.
Y a plus qu'à mettre le doigt sur la façon de faire. Même si c'est pas très Zigbee Alliance
En fait il y a 3 commandes au moins comprises par la zigate:
0026 permet d'effacer de la zigate les infos d'un device. Je l'utilise quand un équipement 'disparait' ou quand j'ai du mal a faire une nouvelle inclusion car la zigate n'envoie pas deux fois la clef réseau.
Il faudrait que je teste les 3 pour voir les messages sur le zigbee.
@KiwiHC16 Tu utilises la commande Remove avec l'adresse IEE de l'équipement à virer ? Sans action sur la Zigate
La commande passe dans les logs
Un refresh LQI interroge toujours 14 objets. Seulement 13 sur le réseau. Le dernier étant celui que je veux virer.
C'est peut-être parce qu'il n'est pas directement rattaché à la Zigate ?
Remove pour moi retire l equipement de la base zigate. Mais personne sur le réseau n'est informé. Donc sur un LQI le routeur vont continuer à rapporter des infos pendant un certain temps.
Pour faire ce que tu veux il faut certainement utiliser:
Je dirais que pour les eq sur batterie, inutile de perdre du temps a "reveiler" le device. Lui faire un reset et c'est bon il quitte tout seul sans compliquer la procedure et Abeille est au courant.
Pour moi la question ne se pose que pour les eq sur secteur.
Non ?
Sur remplacement d'equipement je fais un remove:
self::publishMosquitto(queueKeyAbeilleToCmd, priorityNeWokeUp, "Cmd" . $destGhost . "/Ruche/Remove", "IEEE=" . $IEEE);
@tcharp38, faisons des tests avant de conclure.
Celui que j'aimerais retirer n'est pas sur batterie. Et effectivement ta fonction remove sur Remplacement devrait opérer de la même façon. A priori.
@tcharp38, faisons des tests avant de conclure.
Bien sur :)
J'ai le detail des specifications et les tests sont en lignes. Reste à savoir ce que l on fait dans Abeille.
Suis partant pour mettre en oeuvre. Y compris une routine php avant d'intégrer. J'ai ce routeur à virer et si j'ajoute la fonction routeur aux modules DIY, j'aimerai être certain de pas les accumuler au fur et à mesure de mes essais
@mickadam29 sur github et Mick... A... sur Slack est la meme personne ?
@KiwiHC16 Tu peux resumer ce que tu sais fonctionnel ?
Oui. Une seule et même personne
Le 17 févr. 2021 à 09:23, Ben notifications@github.com a écrit :
@mickadam29 sur github et Mick... A... sur Slack est la meme personne ?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.
1 - Remove qui est la command 0x0026. (Celle de ce sujet initialement) Fait le remove au niveau NWK. Typiquement utilisé par le controleur de reseau (TC, ici zigate) pour virer des équipement qu il ne veut pas/plus. Probablement pas optionnel car dans la couche Security.
2 - Mgt Leave Request qui est la commande 0x0047 Typiquement utilisé par un Gestionnaire de réseau (ici Abeille) Norme dit Optionnel.
3 - Leave Request Cmd 0x004C Typiquement utilisé par un equipement qui veut en sortir un autre. Par exemple un routeur qui dit à son child, quitte et revient / ou pas. Radius = 1 (Pas de routage)
Donc trois facons de faire decritent dans la norme qui font en gros la même chose.
Je dirai que si j ai bien compris, celui qui doit fonctionner à tous les coups et repond à nos besoins est le premier.
Les trois sont implementés dans des commandes de la ruche.
@tcharp, tu nous fais un beau bouton sur la base de la commande 1 ?
Commande dispo dans la ruche:
@mickadam29, quand tu fais tes essais, si tu effaces la memoire du chipset, il faut faire un Remove depuis la ruche (cf commande ci dessus) sinon tu ne pourras pas re-inclure ton equipement.
Je pense qu'il faut aussi modifier les parametres et passer de: IEEE=#title# à ParentAddressIEEE=#title#&ChildAddressIEEE=#message#
Je vais faire ca.
@mickadam29, quand tu fais tes essais, si tu effaces la memoire du chipset, il faut faire un Remove depuis la ruche (cf commande ci dessus) sinon tu ne pourras pas re-inclure ton equipement.
Je ne souhaite pas faire le reset. Sinon encore une fois, il faudra tout réinclure
Je pense qu'il faut aussi modifier les parametres et passer de: IEEE=#title# à ParentAddressIEEE=#title#&ChildAddressIEEE=#message#
Je vais faire ca.
J'ai tenté avec ZGUI de NXP, ca n'a visiblement pas marché non plus. Je te laisse poursuivre. Dans ce cas, Parent j'ai mis Zigate, et Child, mon routeur à sortir
Et la commande de la ruche je l'ai testée aussi. Sans succès.
Avec l'IEEE de mon routeur à virer
Sur quelle information tu te bases pour dire que cela ne fonctionne pas ?
@mickadam29, quand tu fais tes essais, si tu effaces la memoire du chipset, il faut faire un Remove depuis la ruche (cf commande ci dessus) sinon tu ne pourras pas re-inclure ton equipement.
Je ne souhaite pas faire le reset. Sinon encore une fois, il faudra tout réinclure
Reset Zigate ne fait rien. Erase PDM et tu dois tout re-inclure Remove eneleve juste celui que tu veux. C est cette commande que tu dois utiliser.
Note que rien ne change dans Abeille, c est juste Zigbee.
@KiwiHC16
C'est tout à fait ça que je veux. Juste le remove. Mais rien ne se passe, je vais vérifier à nouveau.
Prends le master, supprimes la ruche, redemarre le daemon pour recreer la ruche, affiche la commade Remove, mets l IEEE de ton device/routeur dans les deux champs (Routeur et equipement).
Ca marche, je teste ça
La commande est passée. Je vérifie le résultat sur 00124B0021080DCD
"Je vérifie le résultat" -> Comment fais tu ?
Il faut que l'équipement soit sur le réseau ? Car Abeille interroge autant de routeurs dans refresh_Lqi.
C'est peut-être pas révélateur ce nombre de routeurs ?
"Car Abeille interroge autant de routeurs dans refresh_Lqi" Il faut que je regarde si le refresh_lqi prend bien en compte le fait que e routeur a ete desactivé dans Abeille car viré du réseau.
ok. Mais j'ai encore l'objet dans Abeille. Il faut peut-être que je le retire non ? gardé pour avoir son adresse courte et IEEE
refresh_lqi ne prend pas en compte la desactivation de l equipement et je ne vais pas le faire car je veux refresh_lqi brute pour recuperer tout ce que l on peut.
Mais j'ai encore l'objet dans Abeille. Il faut peut-être que je le retire non ? gardé pour avoir son adresse courte et IEEE
Remove enleve que du reseau zigbee et ne touche pas a abeille. Si tu le re-inclus il sera de nouveau dans la bon equipement Abeille avec la meme adresse IEEE et peut etre une adresse courte differente.
@tcharp38 si tu peux faire un beau bouton pour exclure avec cette nouvelle version de la version Remove. Elle fonctionne pour les routeur en fournissant 2 fois l adresse IEEE du routeur en paramètre.
Par contre pour les equipements terminaux cela va etre un peut plus difficile. Il faudrait recuperer lors d un refresh LQI le parent de l equipement et le conserver dans les parametres de l equipement.
@mickadam29 je voudrais garder cet issue sur le sujet dans le titre. Pour ton sujet ouvres une issue specifique.
Ca marche.
@tcharp38 si tu peux faire un beau bouton pour exclure avec cette nouvelle version de la version Remove. Elle fonctionne pour les routeur en fournissant 2 fois l adresse IEEE du routeur en paramètre.
Par contre pour les equipements terminaux cela va etre un peut plus difficile. Il faudrait recuperer lors d un refresh LQI le parent de l equipement et le conserver dans les parametres de l equipement.
Ok je vais regarder ca. Mais vu que tu parles d'un equipement parent, quelle doc ferais tu pour expliquer la procedure ? Pour moi ca reste pas clair.
Je te contact sur slack pour les details.
J'ai pu verifier l'exclusion avec un capteur Xiaomi de temp. Apres demande d'exclusion, un p'tit coup de reveil via l'appuis sur son bouton est le message "a quitté le réseau" est apparu. Mais ca n'a pas fonctionné pour le Xiaomi lumi Et je n'arrive pas à reinclure le temp Xiaomi.
De mon côté j'ai réussi à virer mon routeur grâce à la fonction Remove de la Ruche Adresse IEEE du parent qui le connaissait Adresse IEEE de mon routeur à virer. Heureusement que j'avais son IEEE
Merci à vous
Pas propre. Voir #1906
Nouvelle version dispo sur la beta du moment. Utilisation de la cmde 004C au lieu de 0026. Semble ok. Mode dev uniquement jusqu'a confirmation que ca fonctionne tout le temps
Bon j'ai rendu le bouton accessible à tous.
Je clos. A reouvrir si besoin
Ajouter un bouton pour retirer un equipement du reseau zigbee (sans touché a son existance dans Abeille).
La commande existe déjà. Accessible depuis la ruche.
Objectif, more user friendly.