KiwiHC16 / Abeille

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

[KiwiHC16] Refresh network ne semble pas recuperer les infos des routeurs non définis dans Jeedom db. #2642

Closed KiwiHC16 closed 7 months ago

KiwiHC16 commented 8 months ago

Semble remonter la table de zigate mais n interroge pas les routeurs (RIen en zigbee sniff)

Capture d’écran 2023-11-05 à 15 54 38

Roue orange

Jeedom 4.3.19 et Zigate V1 Frimware 0004-0323

KiwiHC16 commented 8 months ago

Ca semble interroger les routeurs s'ils sont connus par Abeille mais pas s'ils ne sont pas connus par Abeille. Si c est le cas, on a perdu une super fonctionne de decouverte automatique du reseau et la moi qui repart d'une base mariadb vierge, je galère.

La seule facon actuellement est de refaire une inclusion. Pas top.

J ai un equipement dans le grenier tres difficile d acces, galère...

tcharp38 commented 8 months ago

Le refresh lqi récupère les routeur connus de la zigate puis recursivement ceux connus de chaque routeur. Connus ou pas de jeedom. Donc je ne comprends pas la sujet. Bref comme avant. Tu as un log lqi qui prouve le contraire ?

KiwiHC16 commented 8 months ago

Le fonctionnement que tu décris est celui attendu mais ne fonctionne pas. Je suis toujours entrain de re-intégrer tous les devices. Des que j aurai du temps je prendrai des traces.

tcharp38 commented 8 months ago

Ok. Sans trace c'est difficile mais je vais faire des essais demain en surprimant mes routeur de jeedom et en lançant un refresh lqi

KiwiHC16 commented 8 months ago

Je viens de finir la mise a jour d'Abeille sur une docker jeedom derniere version et pas de soucis particuliers sauf cas ouverts ce jour, pas critiques. Donc Beta ok pour moi.

KiwiHC16 commented 8 months ago

Test de ce soir:

Deux prises/plug intégrées (Ruche/Plug1/Plug2):

image

Refresh reseau (Ruche/Plug1/Plug2 sont interrogées):

image

Suppression Plug1 de Jeedom (Supprimer eq, rien en zigbee):

image

Affichage reseau toujours idem:

image

Refresh réseau:

image

Il a bien trouvé un inconnu... Mais inconnu n est pas interrogé pour être créé dans jeedom:

image

Je suis obligé de faire une inclusion manuellement pour retrouver la prise. Sa suppose que je sache qui elle est et ou elle est poure faire la manip. Par le passé, Abeille interrogeait et créait les equipements manquants dans Jeedom mais sur le reseau.

tcharp38 commented 8 months ago

Si inconnu et routeur.. bien d'accord avec toi. Il manque une découverte automatique. Le bouton "réparer" est la pour ça mais pour l'instant il n'est pas comme je veux. Il faut le relancer pour qu'il progresse et lui laisser le temps. Donc toujours dans les trucs à améliorer progressivement

KiwiHC16 commented 7 months ago

Ou puis je trouver le bouton réparer ?

KiwiHC16 commented 7 months ago

Ok je vois une part de réponse dans #2643.

tcharp38 commented 7 months ago

Le refresh network recupere partiellement les routeurs mais j'ai poussé aujourd hui une correction. Il les interroge si inconnus. Du coup mon test avec 3 prises differentes supprimées de Jeedom permet de les voir reapparaitre en qq sec apres un refresh network. C'est dans le master.

KiwiHC16 commented 7 months ago

Tip top, j essaye immédiatement.

KiwiHC16 commented 7 months ago

Sur le master: Snif ca ne fonctionne pas:

Situation de depart:

Capture d’écran 2023-11-08 à 16 31 50

La prise est en adresse: 8C0E

Je supprime la prise depuis la page de la prise:

Capture d’écran 2023-11-08 à 16 32 36

Donc plus dans la liste:

Capture d’écran 2023-11-08 à 16 33 11

Je vais dans réseau:

Capture d’écran 2023-11-08 à 16 34 02

Et je demande un refresh:

Capture d’écran 2023-11-08 à 16 34 37

Ca bosse:

Capture d’écran 2023-11-08 à 16 35 03

Il identifie un inconnu à la bonne adresse.

Par contre l inconnu est devenu Coordinator ! et la prise routeur:

Capture d’écran 2023-11-08 à 16 36 20

Aie aie

Puis rien ;-(

Capture d’écran 2023-11-08 à 16 37 19

Je ne touche à rien, je te laisse la main.

tcharp38 commented 7 months ago

Allez je reteste sur ma branche apres avoir verifié que tous les fichiers etaient en ligne avec le master.

image

Je supprime les 3 prises

image

Pas eu le temps d'ouvrir le reseau et déja une prise est de retour. Elle a du faire un reporting et Abeille rebondi immediatement la dessus pour faire l'identification.

image

Cette fois je lance un refresh du reseau, et les 2 autres reviennent

image

Bref tout est ok pour moi.

Peux tu refaire la manip de ton cote et me filer le package de logs ?

Ha et pour le status de la page santé j'ai compris. Il est créé en meme temps qu'Abeille recupere les infos manquantes. Du coup il est incomplet mais si tu relances un refresh avec des equipements enfin connus, il redevient ok.

KiwiHC16 commented 7 months ago

Ha et pour le status de la page santé j'ai compris. Il est créé en meme temps qu'Abeille recupere les infos manquantes. Du coup il est incomplet mais si tu relances un refresh avec des equipements enfin connus, il redevient ok.

Je suis en ligne.

KiwiHC16 commented 7 months ago

Je suis sur le dernier commit: 35b7611020a41482a5183348569abf70380afaf0 du master mais cela ne fonctionne pas.

Je suis en Zigate V2 USB avec les firmware: 0005-03A0

Inclusion d'une prise OSRAM ou d une prise "BlitzWolf smart plug - 16" fonctionne parfaitement.

Apres supression, aucune creation et apres refresh network indique un inconnu:

Capture d’écran 2023-11-09 à 19 04 40

Si j'appui sur le bouton de la prise, elle fait un report de l etat qui passe dans Parser:

[2023-11-09 19:06:09] Abeille1, Type=8002/Data indication, Status=00, ProfId=0104, ClustId=0006, SrcEP=03, DstEP=01, SrcAddrMode=02, SrcAddr=E271, DstAddrMode=02, DstAddr=0000
[2023-11-09 19:06:09]   FCF=18/General/Serv->Cli, SQN=03, cmd=0A/Report attributes
[2023-11-09 19:06:09]   AttrId=0000/OnOff, AttrType=10, ValueHex=00 => 0
[2023-11-09 19:06:09] Abeille1, Type=8102/Attribute report, SQN=03, Addr=E271, EP=03, ClustId=0006, AttrId=0000, AttrStatus=00, AttrDataType=10, AttrSize=0001
[2023-11-09 19:06:09]   0006-0000 => Handled by decode8002

et Abeille log dit:

[2023-11-09 19:06:28][DEBUG] : msgFromParser(): Attributes report by name from 'Abeille1/E271/03
[2023-11-09 19:06:28][DEBUG] :   Unknown device 'Abeille1/E271'

Mais cela ne provoque pas abeille pour interroger l'équipement.

Est ce qu'il n y aurait pas un flag dans le soft pour auto-creation ? (Je me souviens qu il y avait ce genre de truc).

Je vais entrer dans le soft pour suivre ce qu il se passe et comprendre pourquoi cela ne fonctionne pas....

KiwiHC16 commented 7 months ago

Je viens de debrancher la prise et la rebranchée ce qui provoque un Annoucement et la prise est crée.

Capture d’écran 2023-11-09 à 19 13 02

KiwiHC16 commented 7 months ago
if ($msg['type'] == "eqAnnounce") {
...
Abeille::createDevice("update", $dev);

Semble etre l unique trigger pour la creation.

Pas de creation sur report param, c est ce que j observe.

KiwiHC16 commented 7 months ago

J'ai une bonne piste et j'ai bien peur qu'une partie du soft est à revoir. J'espere avoir tort. J ai vu que tu avais créé des variables globales (Ce que j'ai essayé d'éviter tout le temps). J espere que c est une fausse piste.

function deviceUpdates($net, $addr, $ep, $updates = []) {
            parserLog('debug', 'BEN-----------------');
            if (isset($updates['ieee']))
                $ieee = $updates['ieee'];
            else
                $ieee = null;
            $eq = &getDevice($net, $addr, $ieee, $newDev); // By ref

getDevice ne se refere pas a la db mais aux variables globales d apres ma comprehension d ou le soucis.

Variable globale pas mise a jour sur supression d un eq. Mais remise a jour sur restart Abeille.

Tout cela a confirmer bien sur...

Es tu en ligne avec moi ?

tcharp38 commented 7 months ago

Alors je n'ai pas tout suivi mais je peux donner qq reponses

KiwiHC16 commented 7 months ago

Supression de la prise xiaomi adresse: E271 refresh network

Abeille.tar.zip

KiwiHC16 commented 7 months ago

l'equipement supprimé de Jeedom doit entrainer la suppression dans la parser (message eqRemoved je crois).

Si cela doit être le cas, cela ne se produit pas dans mon cas.

Si eq supprimé dans db, &getDevice($net, $addr, $ieee, $newDev) retourne toujours l'équipement, d ou le soucis.

KiwiHC16 commented 7 months ago

$GLOBALS['eqList'] contient toujours les informations de l'eq supprimé.

Le probleme vient de là.

l'equipement supprimé de Jeedom doit entrainer la suppression dans la parser (message eqRemoved je crois).

Si c est ca la solution, il faut que je trouve pourquoi cela ne fonctionne pas.

KiwiHC16 commented 7 months ago
www-data@jeedomdevhw:~/html/plugins/Abeille$ grep -R "eqRemoved" *
core/php/AbeilleParser.php:                    } else if ($msg['type'] == 'eqRemoved') {
desktop/js/Abeille.js:                            "&msg=type:eqRemoved_net:Abeille" +
resources/archives/desktop/AbeilleEq-Js.php:                            xhr.open("GET", "plugins/Abeille/core/php/AbeilleCliToQueue.php?action=sendMsg&queueId="+js_queueXToParser+"&msg=type:eqRemoved_net:Abeille"+js_zgId+"_eqList:"+js_eqAddr, true);
KiwiHC16 commented 7 months ago

Je n'ai pas de message eqRemoved qui passe dans AbeilleParser ...

KiwiHC16 commented 7 months ago

Je pense avoir trouvé la différence entre tes tests et les miens.

Tu dois utiliser: Capture d’écran 2023-11-09 à 21 37 33

Supprimer de Jeedom et dans ce cas dans les logs console Safari, j'ai bien: Capture d’écran 2023-11-09 à 21 38 19

Qui informe AbeilleParser.

Mais dans mon cas j'ouvre l'equipement:

Capture d’écran 2023-11-09 à 21 39 10

et je fais supprimer, qui ne laisse aucune trace dans le log console Safari, donc AbeilleParser n'est pas mis à jour.

tcharp38 commented 7 months ago

Ha ouiiiii bonne piste Je regarde ça demain. Effectivement il doit y avoir un trou dans la raquette

KiwiHC16 commented 7 months ago

Voir aussi: #2652

KiwiHC16 commented 7 months ago

Je clos ce cas et ouvre un sujet plus précis.