J’utilise watchdog pour tous mes appareils à pile mais il y a un truc que je ne pige pas bien dans la gestion des dates de dernière communication.
Sur certains appareils, une commande de ce type :
(#timestamp# - strtotime(#[Bureau][Capteur température][Dernière communication]#)) > #tempo1#
Aucun pb, le strtotime marche très bien.
Sur d’autres (aussi en zigbee pour info), j’ai une valeur vide si je ne mets pas un collectdate(#[Bureau][Capteur température][Dernière communication]#) avant le strtotime.
Sauf que collectdate n’est pas vraiment fiable puisque j’ai remarqué sur un appareil dont j’ai enlevé la pile que le collectdate continuait de s’actualiser alors que la date de dernière communication était bien antérieure et il aurait du être en alerte dans watchdog.
Est-ce que c’est moi qui loupe un truc ou est-ce que j’ai un autre moyen de savoir quand mon appareil (en l’occurence un détécteur de fumée) à cesser d’apparaître sur le réseau ?
merci @bernard.dandrea et @Pax24 pour vos réponses.
Voilà quelques captures, j’espère que c’est pertinent n’hésitez pas à me dire ce qui peut vous éclairer.
Deux exemples avec deux équipements sur JeeZigbee (1 capteur de température Aqara et un détécteur de fumée de marque Heiman). J’ai beau chercher je ne vois pas de différence dans la commande Date de dernière communication sur ces équipements.
1/ La page Commandes des capteurs de température (exemple ici avec un qui a justement la pile qui a rendu l’âme, correspond à Chambre 1 ci-dessous dans watchdog)
3/ Capteur chambre 1 dans watchdog, avec un strtotime direct sur la commande Date de dernière communication, tout va bien et Watchdog me le remonte bien en erreur.
Chose très étrange, un autre capteur Aqara, même modèle (acheté en même temps), cette fois le strtotime direct sur la commande date de dernière communication ne marche pas :
Pour info défaut Watchdog quand on lui demande de surveiller un équipement génère la formule avec collectdate()
Comme j’ai remarqué que des équiments HS continuaient à avoir une collectdate() qui s’actualise (en tout cas sur la commande dernière communication, j’imagine donc que celle-ci correspond à la dernière tentative du contrôleur de chercher l’équipement mais je me trompe peut-être), j’ai testé valueDate, lastCommunication, et age mais sans réussite et des résultats incohérents qui ne correspondent pas à la date de dernière communication.
Je n’ai d’ailleurs pas trouvé de sujet qui explique clairement la différence entre ces fonctions et la doc n’est pas très loquace sur ce sujet, mais j’ai peut-être mal cherché et je suis preneur si vous avez un lien.
Bon en fait je m’y étais mal pris avec Watchdog par rapport à mon objectif de départ, lastCommunication sur l’équipement fonctionne bien mieux que d’aller chercher des commandes… Merci @Pax24
concernant les 2 capteurs, le 1er fonctionne correctement et le 2eme ne met pas à jour la date de derniere communication. Si ce sont les mêmes modèles, ont-ils le même firmware ? Quel plugin utilises-tu pour les gérer ?
si la date de dernière communication est à blanc, il va être difficile de l’utiliser pour savoir si l’équipement fonctionne.
pour moi, collectdate renvoie la date de dernière mise à jour de la valeur commande info, même si celle-ci n’a pas changé, contrairement à valuedate qui renvoie la date où la valeur a changé
j’imagine que la température est correctement envoyée. Dans ce cas, pourquoi ne pas utiliser collectdate sur cette commande. Ca devrait régler le problème tant que l’on arrive pas à récupérer la date de dernière communication.