Closed KiwiHC16 closed 7 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...
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 ?
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.
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
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.
Test de ce soir:
Deux prises/plug intégrées (Ruche/Plug1/Plug2):
Refresh reseau (Ruche/Plug1/Plug2 sont interrogées):
Suppression Plug1 de Jeedom (Supprimer eq, rien en zigbee):
Affichage reseau toujours idem:
Refresh réseau:
Il a bien trouvé un inconnu... Mais inconnu n est pas interrogé pour être créé dans jeedom:
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.
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
Ou puis je trouver le bouton réparer ?
Ok je vois une part de réponse dans #2643.
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.
Tip top, j essaye immédiatement.
Sur le master: Snif ca ne fonctionne pas:
Situation de depart:
La prise est en adresse: 8C0E
Je supprime la prise depuis la page de la prise:
Donc plus dans la liste:
Je vais dans réseau:
Et je demande un refresh:
Ca bosse:
Il identifie un inconnu à la bonne adresse.
Par contre l inconnu est devenu Coordinator ! et la prise routeur:
Aie aie
Puis rien ;-(
Je ne touche à rien, je te laisse la main.
Allez je reteste sur ma branche apres avoir verifié que tous les fichiers etaient en ligne avec le master.
Je supprime les 3 prises
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.
Cette fois je lance un refresh du reseau, et les 2 autres reviennent
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.
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.
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:
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....
Je viens de debrancher la prise et la rebranchée ce qui provoque un Annoucement et la prise est crée.
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.
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 ?
Alors je n'ai pas tout suivi mais je peux donner qq reponses
Supression de la prise xiaomi adresse: E271 refresh network
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.
$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.
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);
Je n'ai pas de message eqRemoved qui passe dans AbeilleParser ...
Je pense avoir trouvé la différence entre tes tests et les miens.
Tu dois utiliser:
Supprimer de Jeedom et dans ce cas dans les logs console Safari, j'ai bien:
Qui informe AbeilleParser.
Mais dans mon cas j'ouvre l'equipement:
et je fais supprimer, qui ne laisse aucune trace dans le log console Safari, donc AbeilleParser n'est pas mis à jour.
Ha ouiiiii bonne piste Je regarde ça demain. Effectivement il doit y avoir un trou dans la raquette
Voir aussi: #2652
Je clos ce cas et ouvre un sujet plus précis.
Semble remonter la table de zigate mais n interroge pas les routeurs (RIen en zigbee sniff)
Roue orange
Jeedom 4.3.19 et Zigate V1 Frimware 0004-0323