Questions / Problèmes Communication zigbee + Surveillance démon

Salut frixo
Un petit renseignement concernant la signalisation de la perte de communication des équipements dans le plugin zigbee.
A ce jour j’ai des modules legrand zigbee sur pile (des boutons), du coup je reçois régulièrement via ton plugin des notifications comme quoi les devices ont un « délais dépassés de 24h ».
Est ce que la notif est déclenchée sur le non rafraichissement des commandes infos de l’équipement (comme sur la config avancé native d’un équipement jeedom) ou est ce que c’est basé sur la réelle communication du protocole zigbee que tu sembles appelé « message » ?

Je pose cette question car les modules sur pile souvent font un wakeup régulier même si il n’y a pas de changement sur les commandes, ne serait ce que pour se signaler sur le réseau. C’est le cas en zwave. Je ne sais pas si c’est le cas en zigbee pour tous les modules sur pile.
Du coup comment à ton sens on peut vérifier la présence de ces équipements sur le réseau zigbee si on appuye pas sur les boutons pendants plusieurs jours ?
Idem j’ai un problème sur un capteur de fuite ORVIBOO. Dans la santé du plugin je vois des communications régulières. Au moins une fois par jour voir un peu plus alors que la commande info ne change pas. Pourtant ton plugin génère une notification.

A titre d’info voici la capure de la santé de mon plugin zigbee

Autre point, j’utilise le plugin unifi de @nebz. Il se trouve que le démon du plugin est arrêté hors c’est le fonctionnement normal du plugin. Ce qui génère donc un message via ton plugin. Normal jusque là. En revanche est ce que ça serait possible d’ajouter comme dans le fitrage d’équipement, un filtre pour ne pas surveiller certains démons ?

Salut

excuse moi de te répondre si tard !
Alors , le fonctionnement des alertes de com

  • je regarde équipement par équipement la date de la dernière communication.
    Pour le Zwave j’ai accès a l’api a plus d’info, ainsi je peux favoriser la date de réception du dernier message, etc etc (voir parametre), et je peux meme proposer un ping avant de dire que le node est KO (dès fois le ping du coup corrige un éventuel noeuf ‹ dead › en zwave)
    Pour les autres protocol , je me contente de regarder la ‹ lastCommunication › (pour le zigbee j’ignore les équipement considéré comme ‹ groupe ›)

Pour l’histoire du plugin Unifi, j’ai posté une maj Beta qui exclu UNIFI du check, a voir a la suite si je rend cela paramétrable

Cool
Merci
Pour le plugin zigbee.
Ne pourrais tu pas aussi regarder la date du dernier message ?
Il est affiché dans que chaque équipement donc on doit bien pouvoir l’obtenir facilement ?
Si tu veux je peux regarder dans le code pour te dire comment c’est fait.
Ça serait top car je trouve que c’est un gros manque dans jeedom de ne pas alerter sur un problème de communication protocolaire. Problème que tu as su combler au moins pour le zwave
Actuellement jeedom ne gère que le lastcommunication qui est en fait la dernière maj d’une commande info. D’ailleurs le nom est très trompeur.

Salut

Alors ouai je veux bien que tu regardes le code car … Je n’ai aucun zigbee chez moi ! Donc dev à l’aveugle c’est chaud

1 « J'aime »

Ah oui effectivement.
Je regarde des que j’ai un peu de temps

1 « J'aime »

salut @frixo
J’ai regardé comment faire dans ton plugin pour allé vérifier l’info du dernier message zigbee (protocolaire) plutôt que de cherche la dernière communication (qu correspond à la maj d’une commande info).
Pour mémo on a des capteurs type detecteur de fuite qui ne change jamais la commande info de fuite (enfin en mode normal dans un logement :wink: sinon on vivrait dans une piscine :wink: ) et qui envoie des wakeup zigbee régulièrement mettant à jour le LAST MESSAGE
Vérifier cette info permettrait de vraiment tester la présence sur le réseau

Du coup ce n’est pas très compliqué:
Je peux t’envoyer le plugin zigbee en zip si tu veux.
Tout se passe dans le fichier plugins/zigbee/desktop/modal/node.php
En début de fichier tu as les classes qui permettent d’aller récupérer les infos zigbee

if (!isConnect('admin')) {
  throw new Exception('401 Unauthorized');
}
$eqLogic = zigbee::byId(init('id'));
if (!is_object($eqLogic)) {
  throw new \Exception(__('Equipement introuvable : ', __FILE__) . init('id'));
}
$disallow_binding_cluster = array(0, 1, 3, 7, 9, 32, 25, 4096, 4, 10, 33);
sendVarToJS('zigbeeNodeDevice', utils::o2a($eqLogic));
sendVarToJS('zigbeeNodeId', $eqLogic->getId());
sendVarToJS('zigbeeNodeIeee', explode('|', $eqLogic->getLogicalId())[0]);
sendVarToJS('zigbeeNodeInstance', $eqLogic->getConfiguration('instance', 1));
$node_data = zigbee::request($eqLogic->getConfiguration('instance', 1), '/device/info', array('ieee' => explode('|', $eqLogic->getLogicalId())[0]));
$device = zigbee::devicesParameters($eqLogic->getConfiguration('device'));
$infos = zigbee::parseDeviceInformation($node_data);

En 2 lignes de code tu peux récupérer les infos zigbee d’un équipement (eqLogic) en les parcourant tous si ils sont enable
Puis dans $infos tu as tout ce que tu veux.
La date de dernièr message est $infos['last_seen']

Voici un exemple de code à faire

[Parcourir tous les EqLogic du plugin zigbee]
    [Si EQLOGIC est ENABLE ET l'equipement n'est pas un groupe zigbbee]
          $node_data = zigbee::request($eqLogic->getConfiguration('instance', 1), '/device/info', array('ieee' => explode('|', $eqLogic->getLogicalId())[0]));
          $infos = zigbee::parseDeviceInformation($node_data);
          TON CODE pour gérer le last message dans $infos['last_seen']

Pour les dépendances aux classes du modfules zigbee, tu peux faire des includes directement en pointant vers le plugin zigbee pour éviter tout problème. C’est peut etre ce que tu as fait pour zwave

Voici un exemple visuel sur un détecteur de fuite orviboo

Si tu veux que je te fasse des tests ou du débug => Avec plaisir

Sinon pour les démons arrêtés qui posent soucis de notif (à tord) . je pense que plutôt exlure systématiquement UNIFI il faudrait pouvoir rajouter une liste de démons à ne pas tester. Soit en les rajoutant dans une liste vide à la base, soitt en affichant un checkbox avec tous les démons et on coche ceux à exclure (ou vice versa)

Tiens moi au courant
a+

Salut

j’ai normalement géré le ‹ last_seen › dans la dernière beta

peux tu me dire ce qu’il est en

Sinon pour les démons arrêtés qui posent soucis de notif (à tord) . je pense que plutôt exlure systématiquement UNIFI il faudrait pouvoir rajouter une liste de démons à ne pas tester. Soit en les rajoutant dans une liste vide à la base, soitt en affichant un checkbox avec tous les démons et on coche ceux à exclure (ou vice versa)

Oui je suis d’accord avec toi, c’est juste que je manque … de temps

A priori il y a une couille.
J’ai ce message quand j’enregistre l’équipement ou même en simple affichage

Type incorrect (classe équipement inexistante) : monitorsensor

je ne vois plus les différents CRON et rien dans les logs en debug

Merde , je regarde aujourd’hui si possible

voila c’est corrigé, nouvelle beta, dsl

C’est bon.
J’attends le prochain cron pour te dire.
Actuellement j’ai ces devices zigbee en erreur. Pour certains c’est normal (les inters zigbee legrand netatmo ne font pas de wakeup).
En revanche le detecteur de fuite orvibo fait bien un wakeup (au sens protocole zigbe) régulièrement.
Du coup tu as fait comment tu tapes dans la librairie zigbee du plugin-zigbee ?

En revanche, je ne sais pas si c’est normal.
Dans le CRON5 je n’ai que le zwave…

[2022-05-09 13:40:03]DEBUG : ----------------cron5----------------
[2022-05-09 13:40:03]DEBUG :  > check_zwave_health
[2022-05-09 13:40:03]DEBUG :    > zwave_order - info - getStatus
[2022-05-09 13:40:03]DEBUG :      > url : http://localhost:8083/network?apikey=Jd4Yv6cV09eHsMJUESXHafOW6K4OhNWV&type=info&info=getStatus
[2022-05-09 13:40:03]DEBUG :  > rm_zwave_status : STATE_READY:Network ready
[2022-05-09 13:40:03]DEBUG :  > check_daemons_health
[2022-05-09 13:40:03]DEBUG :  > nbr daemon : 21
[2022-05-09 13:40:03]DEBUG :  > nbr OK : 21
[2022-05-09 13:40:03]DEBUG :  > nbr KO : 0

Et pour le ZWAVE, je viens de voir que j’ai 30 modules actifs. Ton plugin n’en détecte que 21…

Sur le cron15, il ne semble pas s’être passé grand chose sur le zigbee.
Les devices qui ont bien un lastscreen très récent sont toujours en erreur

[2022-05-09 13:40:03]DEBUG : ----------------cron5----------------
[2022-05-09 13:40:03]DEBUG :  > check_zwave_health
[2022-05-09 13:40:03]DEBUG :    > zwave_order - info - getStatus
[2022-05-09 13:40:03]DEBUG :      > url : http://localhost:8083/network?apikey=Jd4Yv6cV09eHsMJUESXHafOW6K4OhNWV&type=info&info=getStatus
[2022-05-09 13:40:03]DEBUG :  > rm_zwave_status : STATE_READY:Network ready
[2022-05-09 13:40:03]DEBUG :  > check_daemons_health
[2022-05-09 13:40:03]DEBUG :  > nbr daemon : 21
[2022-05-09 13:40:03]DEBUG :  > nbr OK : 21
[2022-05-09 13:40:03]DEBUG :  > nbr KO : 0
[2022-05-09 13:43:36]DEBUG :  > check_daemons_health
[2022-05-09 13:43:36]DEBUG :  > check_zwave_health
[2022-05-09 13:43:36]DEBUG :    > zwave_order - info - getStatus
[2022-05-09 13:43:36]DEBUG :      > url : http://localhost:8083/network?apikey=Jd4Yv6cV09eHsMJUESXHafOW6K4OhNWV&type=info&info=getStatus
[2022-05-09 13:43:36]DEBUG :  > check_zwave_health
[2022-05-09 13:43:36]DEBUG :    > zwave_order - info - getStatus
[2022-05-09 13:43:36]DEBUG :      > url : http://localhost:8083/network?apikey=Jd4Yv6cV09eHsMJUESXHafOW6K4OhNWV&type=info&info=getStatus
[2022-05-09 13:43:36]DEBUG :  > check_daemons_health
[2022-05-09 13:43:36]DEBUG :  > nbr daemon : 21
[2022-05-09 13:43:36]DEBUG :  > nbr OK : 21
[2022-05-09 13:43:36]DEBUG :  > nbr KO : 0
[2022-05-09 13:43:36]DEBUG :  > nbr daemon : 21
[2022-05-09 13:43:36]DEBUG :  > nbr OK : 21
[2022-05-09 13:43:36]DEBUG :  > nbr KO : 0
[2022-05-09 13:45:04]DEBUG : ----------------cron5----------------
[2022-05-09 13:45:04]DEBUG :  > check_zwave_health
[2022-05-09 13:45:04]DEBUG :    > zwave_order - info - getStatus
[2022-05-09 13:45:04]DEBUG :      > url : http://localhost:8083/network?apikey=Jd4Yv6cV09eHsMJUESXHafOW6K4OhNWV&type=info&info=getStatus
[2022-05-09 13:45:04]DEBUG :  > rm_zwave_status : STATE_READY:Network ready
[2022-05-09 13:45:04]DEBUG :  > check_daemons_health
[2022-05-09 13:45:04]DEBUG :  > nbr daemon : 21
[2022-05-09 13:45:04]DEBUG :  > nbr OK : 21
[2022-05-09 13:45:04]DEBUG :  > nbr KO : 0
[2022-05-09 13:45:05]DEBUG : ----------------cron15----------------
[2022-05-09 13:50:03]DEBUG : ----------------cron5----------------
[2022-05-09 13:50:03]DEBUG :  > check_zwave_health
[2022-05-09 13:50:03]DEBUG :    > zwave_order - info - getStatus
[2022-05-09 13:50:03]DEBUG :      > url : http://localhost:8083/network?apikey=Jd4Yv6cV09eHsMJUESXHafOW6K4OhNWV&type=info&info=getStatus
[2022-05-09 13:50:03]DEBUG :  > rm_zwave_status : STATE_READY:Network ready
[2022-05-09 13:50:03]DEBUG :  > check_daemons_health
[2022-05-09 13:50:03]DEBUG :  > nbr daemon : 21
[2022-05-09 13:50:03]DEBUG :  > nbr OK : 21
[2022-05-09 13:50:03]DEBUG :  > nbr KO : 0
[2022-05-09 13:50:46]DEBUG :  > check_daemons_health
[2022-05-09 13:50:46]DEBUG :  > check_zwave_health
[2022-05-09 13:50:46]DEBUG :    > zwave_order - info - getStatus
[2022-05-09 13:50:46]DEBUG :      > url : http://localhost:8083/network?apikey=Jd4Yv6cV09eHsMJUESXHafOW6K4OhNWV&type=info&info=getStatus
[2022-05-09 13:50:46]DEBUG :  > nbr daemon : 21
[2022-05-09 13:50:46]DEBUG :  > nbr OK : 21
[2022-05-09 13:50:46]DEBUG :  > nbr KO : 0
[2022-05-09 13:50:48]DEBUG :  > check_zwave_health
[2022-05-09 13:50:48]DEBUG :    > zwave_order - info - getStatus
[2022-05-09 13:50:48]DEBUG :      > url : http://localhost:8083/network?apikey=Jd4Yv6cV09eHsMJUESXHafOW6K4OhNWV&type=info&info=getStatus
[2022-05-09 13:50:48]DEBUG :  > check_daemons_health
[2022-05-09 13:50:48]DEBUG :  > nbr daemon : 21
[2022-05-09 13:50:48]DEBUG :  > nbr OK : 21
[2022-05-09 13:50:48]DEBUG :  > nbr KO : 0

Visiblement ce soir j’avais toujours les alertes sur mes devices zigbee qui communiquement bien au niveau protocole.
J’ai cliqué sur « Forcer le refresh » dans ton onglet monitoring de l’équipement et les alarmes ont disparues.
Ca me laisse penser que ta fonction de traitement fonctionne bien.
En revanche j’ai un gros doute qu’elle soit appelée sur le CRON.
Voici les logs suite au click sur le bouton
Si tu regardes l’équiement « [Cuisine][Detecteur Fuite Evier] », on voit bien le last_seen et le last_communication parfaitement fonctionnel.

[2022-05-09 22:04:51]DEBUG : Analyse des capteurs de type  : zigbee
[2022-05-09 22:04:51]DEBUG : -----------------------------------------
[2022-05-09 22:04:51]DEBUG : --- Tentative n°1
[2022-05-09 22:04:51]DEBUG :    > équipement Zigbee ignoré car c'est un équipepent de type Groupe
[2022-05-09 22:04:51]DEBUG :    > équipement Zigbee ignoré car c'est un équipepent de type Groupe
[2022-05-09 22:04:51]DEBUG : >[Cuisine][Commande Volet Cuisine] - 405
[2022-05-09 22:04:51]DEBUG :    > lastCommunication 2022-05-03 22:31:10
[2022-05-09 22:04:51]DEBUG :    > last_seen ZigBee : N/A
[2022-05-09 22:04:51]DEBUG :    > add_alerte_equipement : delais - Délais dépassé : 144 h 33 min 41 s [ supérieur au seuil paramétré de 48 h 0 min 0 s]
[2022-05-09 22:04:51]DEBUG : >>> add_notification 1 - zigbee - 1
[2022-05-09 22:04:51]DEBUG : >[Cuisine][Controleur LED Plan de Travail] - 429
[2022-05-09 22:04:51]DEBUG :    > lastCommunication 2022-05-09 22:00:14
[2022-05-09 22:04:51]DEBUG :    > last_seen ZigBee : 2022-05-09 22:00:40
[2022-05-09 22:04:51]DEBUG : >[Cuisine][Detecteur Fuite Evier] - 457
[2022-05-09 22:04:51]DEBUG :    > lastCommunication 2022-04-01 17:04:53
[2022-05-09 22:04:51]DEBUG :    > last_seen ZigBee : 2022-05-09 21:14:23
[2022-05-09 22:04:51]DEBUG : >[Cuisine][Double Inter Lumiere] - 404
[2022-05-09 22:04:51]DEBUG :    > lastCommunication 2022-05-06 17:27:11
[2022-05-09 22:04:51]DEBUG :    > last_seen ZigBee : 2022-05-06 17:27:11
[2022-05-09 22:04:51]DEBUG :    > add_alerte_equipement : delais - Délais dépassé : 77 h 37 min 40 s [ supérieur au seuil paramétré de 48 h 0 min 0 s]
[2022-05-09 22:04:51]DEBUG : >>> add_notification 2 - zigbee - 1
[2022-05-09 22:04:51]DEBUG : >[Cuisine][Sonde congel] - 410
[2022-05-09 22:04:51]DEBUG :    > lastCommunication 2022-05-09 22:03:38
[2022-05-09 22:04:51]DEBUG :    > last_seen ZigBee : 2022-05-09 22:03:38
[2022-05-09 22:04:51]DEBUG : >[Cuisine][Sonde Frigo] - 401
[2022-05-09 22:04:51]DEBUG :    > lastCommunication 2022-05-09 21:55:17
[2022-05-09 22:04:51]DEBUG :    > last_seen ZigBee : 2022-05-09 21:55:17
[2022-05-09 22:04:51]DEBUG : >[Salle à manger][Air Monitor] - 733
[2022-05-09 22:04:51]DEBUG :    > lastCommunication 2022-05-09 21:56:48
[2022-05-09 22:04:51]DEBUG :    > last_seen ZigBee : 2022-05-09 21:56:48
[2022-05-09 22:04:51]DEBUG : >[Salle à manger][Test Sonde Aqara] - 731
[2022-05-09 22:04:51]DEBUG :    > lastCommunication 2022-05-09 21:56:16
[2022-05-09 22:04:51]DEBUG :    > last_seen ZigBee : 2022-05-09 21:56:15
[2022-05-09 22:04:51]DEBUG : >[Salon][Hue Go] - 740
[2022-05-09 22:04:51]DEBUG :    > lastCommunication 2022-05-09 21:59:42
[2022-05-09 22:04:51]DEBUG :    > last_seen ZigBee : 2022-05-09 22:04:48
[2022-05-09 22:04:51]DEBUG : >[Terrasse][Eclairage Terrasse] - 591
[2022-05-09 22:04:51]DEBUG :    > lastCommunication 2022-05-09 21:59:02
[2022-05-09 22:04:51]DEBUG :    > last_seen ZigBee : 2022-05-09 22:01:28
[2022-05-09 22:04:51]DEBUG : _
[2022-05-09 22:04:51]DEBUG : Analyse des capteurs de type  : rfxcom

Salut @frixo
Bon à priori on est tout bon sur le dernier message sur le plugin zigbee. Merci !
A tout hasard as tu prévu d’intégrer le BLEA officiel aussi ?
Si besoin je peux tester

si tu veux

Du coup pour celui-là c’est plus simple, il n’y a pas de notion de « message ».
C’est le last communication de jeedom !

Salut

On peut désormais exclure des plugins

1 « J'aime »

Salut

bon j’avais pas vu tout tes messages , je suis dsl, il faut absolument me tagguer

bon, peux tu faire la dernière Beta et me dire ce qu’il est en est
le refresh des status des devices se fait tous les 15min si tu as activé l’option

peux tu me relister les soucis que tu rencontres , je vais corriger cela :slight_smile:

salut @frixo
j’ai testé ta dernière beta.
Un seul souci rencontré. Quand on clique sur le btn « forcer le refresh » dans monitoring, ça mouline, on reçoit bien les notifs des devices HS.
Par contre ça finit dans jeedom avec une ERREUR 405 NOT ALLOWED

Rien dans les logs, tout du moin pas de traces d’erreur
Ci dessous les dernières traces

[2022-06-02 22:45:03]DEBUG : > Analyse de : xiaomihome
[2022-06-02 22:45:03]DEBUG :     > OK !
[2022-06-02 22:45:03]DEBUG : > Analyse de : openzwave
[2022-06-02 22:45:03]DEBUG :     > OK !
[2022-06-02 22:45:03]DEBUG : > Analyse de : zigbee
[2022-06-02 22:45:03]DEBUG :     > OK !
[2022-06-02 22:45:03]DEBUG :  > nbr daemon : 20
[2022-06-02 22:45:03]DEBUG :  > nbr OK : 20
[2022-06-02 22:45:03]DEBUG :  > nbr KO : 0