KiwiHC16 / Abeille

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

Zigate v2 ne communique plus avec les équipements suite aux dernières mises à jour Abeille #2490

Closed ValFaure closed 7 months ago

ValFaure commented 1 year ago

Bonjour,

J'ai fait la mise à jour vers abeille 221104-BETA-1 et j'ai perdu la communication avec tous mes équipements. Idem après passage à la 221105-BETA-1. La plupart sont passés en Time-Out dans la page santé. J'ai une ampoule qui est bien notée en OK, tout comme la Zigate, mais aucune commande ne fonctionne. J'ai dans les logs un "WARNING: Zigate1 cmd 0100 TIMEOUT (SQN=, SQNAPS=) => Considering zigate available. " qui revient quand je tente une commande.

Une idée sur ce qui peut avoir causé ce souci ? J'ai tenté de reflasher la Zigate mais sans succès. Je suis sur une PiZigateV2 avec firmware 3.22.

Ci-joint les logs pris après redémarrage des deamons et tentative d'une commande ON sur l'ampoule. AbeilleLogs-221106.tar.gz

PS : pour info, il y a eu une mise à jour Jeedom vers la 4.3.9 au même moment

tcharp38 commented 1 year ago

Donc ca n'est pas vraiment le nombre de groupes qui semble etre en cause mais supprimer un groupe semble "nettoyer" qqch.

Si jamais ca se reproduit un essai à faire

Je veux voir si le nombre de groupes est debile quand ca ne fonctionne pas (on voyait 16 groupes definis) et si il retombe a qqch de coherent des que ca fonctionne.

ValFaure commented 1 year ago

Salut. Désolé pour le temps de réponse mais je suis plutôt pris en ce moment et j'ai pas eu l'occasion de me repencher sur le sujet.

Déjà, j'ai eu depuis plusieurs pertes de communication même quand je n'avais pas redémarré Jeedom ou lancé une mise à jour. Il faut savoir que je désactive la lumière de le LED de la Pizigate via l'onglet "Avancé" de la page de l'objet "Ruche" dans Jeedom, et c'est quand je remarque que la LED s'est rallumée sans raison que je sais que j'ai perdu la communication avec mes équipements. Peut-être un lien à creuser ?

En tout cas j'ai pu faire les tests que tu voulais. Dans les logs à partir de 17:13 (j'ai fait les mêmes manip à 17:08 mais je n'étais pas en débug) :

-> j'ai fait un get group après chaque action "Remove group" ou "Add group" :

Il y a donc bien un lien avec le nombre de groupes on dirait.

Sinon j'ai fait les dernières mises à jour Jeedom et Abeille hier. Ca m'a de nouveau tout cassé comme "prévu", et j'ai tout retrouvé en faisant la manip si dessus (redescendre à 4 groupes, reboot du démon, retour à 6 groupes).

AbeilleLogs-221212.tar.gz

edgd1er commented 1 year ago

Bonjour,

J'ai eu des problèmes similaires de pertes de tous les équipements, j'ai mis ça sur le dos du matériel. Pour contrer le problème, j'ai crée un scenario a déclenchement provoqué time_diff(#[Maison][Ruche-Abeille1][Last]#,Now,m)>60 puis apres un if pour controler l'écart de temps, je fais un restart du daemon:

$_plugin_Id = 'Abeille';

    // charger le plugin 
    $_plugin = plugin::byId($_plugin_Id);
    if (is_object($_plugin)) {
            // start deamon ...
        $scenario->setLog('Arret du plugin ' . $_plugin_Id);    
        $_plugin->deamon_stop(true);    
        $scenario->setLog('démarrage du plugin ' . $_plugin_Id);
        $_plugin->deamon_start(true);
        $scenario->setLog('status daemon du plugin : ' . $_plugin->deamon_info()['state']);
    }

A voir si un "simple" restart automatique des daemons permet de contourner le problème rencontré.

tcharp38 commented 1 year ago

Je rappelle que ce pb est specifique Zigate v2. Je n'ai jamais vu ce foutu code d'err 6 avant.

Quoi qu'il en soit tes essais montrent que lorsque ca plante (plein d'erreurs 06), le redemarrage (donc un reset SW ?) semble finir par remettre les choses en place. Lorsque ca se reproduit tente de ne faire que des reset SW pour voir si les choses retombent "en marche"

ValFaure commented 1 year ago

Désolé j'avais mis de côté le suivi de mon problème et je n'avais pas trouvé d'autres pistes à explorer. Aujourd'hui j'ai quand même pu voir le dysfonctionnement en direct alors que je n'avais lancé aucune commande (je le vois à la LED de la Zigate qui se rallume et qui à partir de là passe en timeout). J'ai noté l'heure tout de suite, cela à eu lieu autour de 19h20 / 19h21. Pourrais-tu me dire si tu vois quelque chose dans les logs qui te parle ? Pour moi c'est encore du chinois !

Je vois quand même qu'autour de cette minute, juste avant le timeout, il y a eu une interrogation sur des prises et sur des batteries d'interrupteur. Les prises sont les équipements les plus récents que j'ai mis sur mon réseau. Cela a quand même fonctionné sans erreur avant ça, mais au début le modèle n'était pas connu d'abeille automatiquement et j'avais dû le lié manuellement à un autre modèle de prise (voir issue #2334). Depuis, plusieurs mises à jour sont passées et ces prises sont inclues sans problème, mais j'ai des commandes qui se sont rajoutées : plusieurs commandes poll (0006, 0702, 0B04) là où avant je n'avais que la 0B04 de mémoire. Pour info l'identifiant de ces prises remonte ainsi : page objet prise A

Voilà, si ça se trouve aucun rapport. Désolé pour le pavé, je lance un peu une bouteille à la mer ! Au moins je connais la solution pour tout faire repartir à chaque fois, mais ne pas trouver la cause ça me rend dingue !

Pour rebondir sur ton dernier message, un SW reset ne suffit pas. Il faut toujours que je fasse les étapes suivantes :

AbeilleLogs-230212.tar.gz

tcharp38 commented 1 year ago

Salut @ValFaure D'apres tes logs, un SW reset à été déclenché vers 19:18

[2023-02-12 19:18:16] Ndpu stuck at 01 for more than 4mins => SW reset.

mais la zigate a redemarré dans un état de m... puis elle boucle avec des tas de logs. En gros... elle a crashé

 Bus Fault Handler  Stack Register Dump R0 = 0x00000005 R1 = 0x00000000

Voila donc on revient sur la fiabilité du FW Zigate v2. Je ne peux que le reporter à l'équipe mais je crains qu'il n'y ai pas de retour rapide.

Du coup coté Abeille je peux juste tenter un truc... voir comment relancer à nouveau la zigate encore et encore jusqu'a ce que ces erreurs 6 disparaissent.

tcharp38 commented 1 year ago

Je provoque un reset SW au bout de 20s si l'erreur 06 revient. Une beta sera dispo demain pour test.

ValFaure commented 1 year ago

Merci pour ton retour rapide, comme d'habitude !

En effet je peux reproduire le problème et provoquer la perte de communication de la Zigate en faisant manuellement un SW reset. Je ne sais pas si c'est ça qui se passe aléatoirement depuis le début et qui met la Zigate en carafe mais en tout cas le résultat est similaire.

J'ai bien installé la beta du jour, malheureusement un SW reset ne suffit pas à faire repartir la Zigate. Il faut toujours que je lui retire manuellement des groupes pour descendre en-dessous de 5 et là c'est bon.

D'ailleurs à ce sujet, j'aimerais tester quelques temps en ne laissant que 4 groupes sur la Zigate, mais je n'ai plus le retour de ce que je fais. Sur la page Abeille la liste des groupes ne s'actualise plus pour la colonne "Télécommande". Pour la colonne membre c'est ok (j'ai d'ailleurs changé les groupes de tous mes équipements pour voir). Ca ne s'actualise pas non plus pour les autres télécommandes, mais ça fonctionne quand même, puisque j'ai réussi à les associer aux nouveaux groupes des équipements avec le bouton "Set group remote".

groupes

Du coup je ne sais plus quels groupes sont sur la Zigate. J'ai essayé de voir si dans les logs je voyais l'info après un "Get groups" sur la Zigate, mais rien n'a l'air de sortir.

AbeilleLogs-230215.tar.gz

tcharp38 commented 1 year ago

Es tu sur que plusieurs SW reset ne viennent pas à bout du souci ? Je n'en vois pas trace dans tes logs.

Pour les groupes des telecommandes.. oui c'est une regression depuis un moment. je n'ai pas trouvé encore comment faire qqch de fiable. On ne peut pas interroger une telecommande vu qu'elle ne repond pas forcement. Elle dort.

ValFaure commented 1 year ago

Je pense que plusieurs SW reset ne changent rien (on voit d'ailleurs que Abeille en fait toutes les 2mn dès que la Zigate passe en timeout). Je pourrais réessayer manuellement la prochaine fois que le problème revient.

Là actuellement je voudrais tester toutes les combinaisons de groupes avec mes scénarios tout en restant à moins de 5 groupes liés à la Zigate, d'où mon besoin de voir quels groupes sont actuellement associés. Je comprend bien le problème d'interrogation des télécommandes qui sont sur batterie, mais la Zigate étant alimentée en permanence, n'y a-t-il pas une commande que je pourrais exécuter pour voir les groupes dont elle fait partie ?

En tous cas depuis plusieurs jours je suis passé en dessous de 5 groupes (enfin je pense) et je n'ai pas eu de perte de communication. Donc deux possibilités :

tcharp38 commented 1 year ago

Tu es le mieux placé pour les essais et les conclusions. Et merci d'avoir complété le post chez Zigate. Pas sur que ca donne qqch car je vois tres peu d'activite mais.. qui sait. Le pb existe et ca pourrait interesser qqn d'autre

tcharp38 commented 1 year ago

Salut @ValFaure Il ya un FW v2 de test: https://github.com/fairecasoimeme/ZiGatev2/releases/tag/v3.a0 Je te laisse le tester et faire un retour directement chez Zigate. La balle est entre vous.

ValFaure commented 1 year ago

Tests faits avec le dernier firmware 3A0, bah c'est pas bon... Même pas pu tester le problème de groupes (je suis resté à moins de 5 pour l'instant), et j'ai plusieurs équipements qui ne répondent plus, et d'autres qui fonctionnent mais avec des latences de fou.

Juste pour écarter une incompatibilité Abeille, je te joins les derniers logs des fois que tu y vois quelque chose de parlant, sinon je vais aussi faire un retour sur le github ZigateV2 (dans les logs j'ai notamment l'équipement 948B que j'ai testé qui ne répondait plus, et qui correspond à une ampoule IKEA Tradfri E14).

AbeilleLogs-230310.tar.gz

Edit : Bon le temps d'écrire le message, j'ai récupéré la plupart des équipements, notamment le 948B. Par contre toujours de la latence prononcée de façon aléatoire, alors qu'en version 3.22 c'était nickel (c'est plus direct si je fais des on/off à la suite mais si j'attends 30s/1mn je retrouve de la latence comme si la Zigate avait oublié la route vers l'équipement). Je continue les tests. Ci-après les logs avec les dernières commandes passées.

AbeilleLogs-230310-2.tar.gz

tcharp38 commented 1 year ago

Tu n'as fait que le changement de FW ? Ou tu as aussi fait une mise à jour Abeille entre temps ? Juste pour etre sur de la cause.

Ha decompresse ce code dans core/class pour ecraser l'original. Je viens de voir un crash que j'ai fixé. et redemarre Abeille apres.

AbeilleParser.class.php.zip

ValFaure commented 1 year ago

Alors les deux au final. J'ai d'abord essayé le nouveau firmware sans mettre à jour Abeille, puis après mise à jour, mais le résultat était le même.

J'ai mis la nouvelle version de AbeilleParser.class.php mais pas vraiment de mieux. J'ai encore beaucoup de devices en timeout (peut-être que certaines vont finir par revenir, ça fait moins de 10mn depuis le reboot), et beaucoup de latence dans celles qui sont up (2-3 secondes pour réagir).

J'ai plusieurs cas de figure après un reboot (ou après un SW reset) :

Edit : bon encore une fois le temps d'écrire et certaines devices sont remontées (notamment la prise 3205 mais avec de la latence comme les autres). Toujours KO pour les ampoules IKEA.

Edit 2 : quelques devices en plus après une vingtaine de minutes (des ampoules Hue, des détecteurs de mouvement Aqara). J'en suis pas sûr mais j'ai l'impression qu'à chaque fois ils reviennent à la vie dans le même ordre (toujours le même détecteur en premier, l'ampoule de telle pièce en première,...). Et juste pour confirmer, si je repasse sur le firmware 3.22, je retrouve tous les équipements tout de suite et avec aucune latence.

tcharp38 commented 1 year ago

Tu me filera un nouveau package ?

ValFaure commented 1 year ago

Ah bah oui, quel c** ! Il était prêt en plus mais j'ai oublié de le joindre :-)

Le voilà (plusieurs ON/OFF sur différents devices vers 11h45-50) : AbeilleLogs-230311.tar.gz

tcharp38 commented 1 year ago

Un retour rapide:

Bref tout ca n'aide pas beaucoup. J'ai l'impression qu'un des routeurs est en vrac et ne fait pas le relais. Tous ceux derriere sont donc impactés. Il manque clairement une vue permettant de voir comment est le maillage et donc pas ou ca passe. Par ex j'avais un repeteur Ikea qui n'etait plus joignable sans raisons et pourant le routage se faisait à travers lui. Du coup je l'ai viré. Trop de merdes avec ce truc.

ValFaure commented 1 year ago

Oui du coup sans doute une incompatibilité entre un équipement qui fait routeur et le firmware 3A0. Il faudrait que je reparte d'un réseau vierge et que j'ajoute les équipements 1 à 1 pour voir.

Pour l'instant je suis repassé sur le firmware 3.22. Besoin d'un système qui fonctionne pour à l'heure actuelle, je retenterai les tests un peu plus tard.

Par contre ce qui me manque vraiment c'est de pouvoir interroger les groupes auxquels la Zigate est rattachée. Depuis les dernières mises à jour c'est impossible et j'ai des messages d'erreur avec les commandes "Get group" et "Add group" de la page Abeille (ça me mets que l'argument end point est vide : erreur get groups

J'ai vu que l'affichage de la partie "Groupes" avait changée, avec maintenant une colonne "End Point", et les commandes "Get group" et "Add group" fonctionnent bien pour les autres équipements.

Du coup est-ce normal ce message d'erreur quand la commande est appliquée à la Zigate ?

tcharp38 commented 1 year ago

Tu ne serais pas revenu en version stable par hasard ?

Si non, j'ai besoin que tu fasses l'action, note l heure, et me file le package de logs que je regarde mais pour moi c'est un vieux pb.

ValFaure commented 1 year ago

Alors voilà :

AbeilleLogs-230321.tar.gz

Je suis bien sur la dernière beta du jour. Peut-être le changement répété de firmware qui a cassé un truc ?

tcharp38 commented 1 year ago

Effectivement je vois bien l'erreur. Tu procedes comment ?

Le changement de FW n'a rien à voir avec ca.

ValFaure commented 1 year ago

Je passe par la page d'Abeille et j'utilise les bouton de la partie "Groupes" :

boutons groupes

Bon par contre hier soir comme ça ne marchait pas j'ai essayé plusieurs commandes sur la page "Avancé" de la Zigate (notamment "Interroger liste des end points"), donc je sais pas si mon système est très clean pour un debug. J'ai même fini par supprimer la Zigate dans Jeedom pour qu'elle se recréée, et si je regarde dans la BDD Jeedom comme indiqué dans la doc, on dirait que c'est un peu vide pour l'entrée correspondant à la zigate par rapport à d'autre devices (pas de valeur "main EP" par exemple). Dernières lignes des captures :

table eqlogic (1) table eqlogic (2) table eqlogic (3)

tcharp38 commented 1 year ago

Je creuse. Ca y est je peux reproduire.

tcharp38 commented 1 year ago

Je pousse une beta pour demain. Une fois Abeille redémarré ca devrait résoudre ton souci.

ValFaure commented 1 year ago

Dernière BETA installée à l'instant. Merci pour le boulot !

Du coup c'est mieux, plus de message d'erreur, mais je n'ai pas d'infos qui sont remontées pour les groupes avec "Get groups". Pour "Add group" j'ai essayé de nouveau d'ajouter le groupe 2722. Pas de message d'erreur non plus mais aucune idée de si ça prend bien la commande.

Il y a bien une ligne qui s'est rajoutée sur la page Abeille pour la zigate en revanche :

get groups vide

Essais faits à 18h05 et 18h07 dans les logs

AbeilleLogs-230323.tar.gz

tcharp38 commented 1 year ago

Je vois un comportement anormal de la zigate. Il manque des messages concernant la gestion des groupes.

Je vois que tu es aussi en FW 3.22.

Du coup je ne sais quoi dire. Tu avais fait ton retour sur la 3.A0 ? Cette Zigate v2 me desespere :(

ValFaure commented 1 year ago

Par encore fait de retour sur le firmware 3.A0 car pas eu vraiment le temps pour le tester. Je voulais surtout retrouver un système stable pour le moment.

Sinon les commandes sur les groupes sont visiblement prises en compte, même si le retour d'infos n'a pas l'air de se faire.

En passant par la page avancée de la Zigate, le bouton "Remove" pour "ZCL: 0004 - Remove all groups" m'a bien vidé tous les groupes, et "Add" pour "ZCL: 0004 - Add group" me rajoute bien le groupe que je lui mets en attribut (les appuis sur mes télécommandes sont bien de nouveau pris en compte dans mes scénarios), malgré le message dans le log parser qui dit "Abeille1, Type=8060/Add group response (unused)." Pour "ZCL: 0004 - Get group membership" je pense aussi que la commande est prise en compte correctement, mais le message d'info n'arrive jamais.

Pour l'instant ça me convient, je peux au moins faire fonctionner tous mes scénarios, même si je dois faire avec 5 groupes max. Je verrai pour tester un peu plus le dernier firmware à l'occasion.

Si jamais, et si tu as encore des cheveux à t'arracher, j'ai toujours une PiZigate V2 en rab que je peux t'envoyer ! ;-)

tcharp38 commented 1 year ago

Le message ""Abeille1, Type=8060/Add group response (unused)." n'est pas important. Le type 8060 ne sert plus à Abeille.

Pour le "Get group membership" ta zigate ne se comporte pas comme il faut. Je pense au FW daubé. Je m'explique: c'est la reponse de la requete qui revient bien mais sur ma v1 j'ai un message type 8002 qui n'est pas sur ta v2

ma v1

[2023-03-26 12:46:25] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0004, SrcEP=01, DstEP=01, SrcAddrMode=02, SrcAddr=0000, DstAddrMode=02, DstAddr=0000 [2023-03-26 12:46:25] FCF=19/Cluster-specific/Serv->Cli, SQN=01, cmd=02/Get group membership response [2023-03-26 12:46:25] Get group membership response: Capacity=05, GroupCount=00 [2023-03-26 12:46:25] Groups: NONE [2023-03-26 12:46:25] Abeille1, Type=8062/Get group membership response (unused).

ta v2

[2023-03-23 18:02:17] Abeille1, Type=8062/Get group membership response (unused).

J'ai loggué le souci chez Zigate.. mais bon j'ai bien peur que ca ne soit que "pour infos".

tcharp38 commented 1 year ago

@ValFaure Du coup ton sentiment sur le FW 3.A0 ? Pire ? Mieux ? Sais pas ? Sais pas encore ?

tcharp38 commented 1 year ago

Bon si tu suis le sujet https://github.com/fairecasoimeme/ZiGatev2/issues/61, il a fait un essai en 3.22 et ca fonctionne pour lui ;(

ValFaure commented 1 year ago

Petit retour tardif à cause d'un petit rhume...

Alors je viens de m'y remettre un peu ce soir. Pour répondre à tes questions :

En attendant j'ai essayé en 3.A0 de voir si la latence ne venait pas d'un équipement foireux qui ferait mal son job de routeur, comme tu me l'as suggéré. J'ai essayé de débrancher un à un les équipements pour voir si à un moment je perdais cette latence, mais j'ai rien vu de probant. Après je sais pas si juste éteindre l'équipement le sors des routes possibles que connait la Zigate ou si ça demande pas un certain temps avant de se mettre à jour. J'ai essayé aussi en cochant dans Abeille les équipements et en sélectionnant "Exclure", mais là encore rien n'a changé (sauf que j'ai dû restaurer Jeedom après pour retrouver la communication). Idéalement il faudrait un outil qui me permette de voir les routes empruntées et voir où ça bloque, ou directement pouvoir désactiver/activer un équipement en tant que routeur et voir l'effet. Mais bon à part me lancer dans le sniffage de trames !

Bref, je sais plus trop par quel bout prendre le problème. Je verrai ce que donne la plateforme de test. Mais quand je vois qu'à l'origine le problème était que je perdais la communication parce que j'avais plus de 5 groupes sur la Zigate, et que maintenant on se prend la tête pour juste VOIR les groupes présents, ç'est pas très encourageant ! ;-) Enfin qui sait...

Sinon quand même une chose que j'ai remarquée avec les tests de ce soir en 3.A0 : juste après le redémarrage du demon Abeille, je n'ai aucune latence (je peux faire plusieurs ON/OFF sur une ampoule ça réagit direct comme en 3.22). Et au bout de 20-30s, la latence apparait. On voit bien aussi dans les logs les messages de type "NwkStatus=D0/ZPS_NWK_ENUM_ROUTE_DISCOVERY_FAILED, Addr=XXXX" à gogo alors que je n'en ai quasiment aucun en 3.22.

Voilà ! Désolé pour le pavé !

tcharp38 commented 1 year ago

Ne soit pas désolé pour le pavé. Je suis moi meme perplexe quant à la direction à adopter pour améliorer les choses. j'ai l'impression que j'arrive aux limites de la Zigate.

Par contre le fait que ce soit reactif puis de moins en moins... les logs auraient pu donner qq infos. Pense à en attacher chaque fois. Le constat ROUTE_DISCOVERY_FAILED.. peut etre utile a retourner à Zigate.

tcharp38 commented 7 months ago

Salut @ValFaure Ou en es tu ?

ValFaure commented 7 months ago

Salut ! Désolé pas de retour sur cet issue car je me suis pas replongé dans la config depuis un moment.

Comme le problème initial a disparu et que tous mes équipements fonctionnent de manière stable depuis plusieurs mois j'ai rien touché d'autre. Pas de nouveau tests faits avec le dernier firmware Zigate, je suis resté sur la 3.22. Pas mal de mises à jour passées sur Abeille depuis aussi, et la gestion des groupes fonctionne à nouveau donc je t'avoue que j'ai pas eu le courage de refaire des tests.

En soi cette issue peut être clôturée sans problème, sauf si tu estimes qu'il y a encore quelque chose à creuser.

Je peux t'envoyer si jamais tu veux y jeter un coup d’œil, mais pas de souci visible dans mon installation à l'instant T.

Merci quand même pour le suivi que tu apportes aux issues !

AbeilleLogs-240218.tar.gz

tcharp38 commented 7 months ago

Salut

Ok, si tout est stable alors inutile de creuser. Pour les v2 le FW 3.22 est le meilleur et j'ai bien peur qu'il n'y ai rien de mieux vu le peu de reactivité de Zigate.

Côté Abeille j'ai amélioré qq trucs dans le cas des equipements qui ne repondent pas tout de suite par ex. Ca peut expliquer moins d'enchainements de "NO ACK".

Mais apres rapide parcours, je n'ai rien vu dans tes logs qui necessite une investigation donc je clos ce sujet.