KiwiHC16 / Abeille

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

Infos Time-Time, Time-TimeStamp ou lastCommunication #2712

Open tcharp38 opened 1 week ago

tcharp38 commented 1 week ago

J'ouvre ce sujet dans le but de réduire les commandes de chaque equipement.

En effet il existe 3 informations identiques qui donnent la date de derniere communication d'un équipement

Tout cela est redondant et mérite une reflexion dans la mesure ou chaque mise-à-jour a un cout non négligeable.

Sauf erreur lastCommunication et Time-Time donnent la meme chose, d'ou le dernier choix de ne laisser que "Time-TimeStamp" dans chaque équipement.

Des suggestions ? Des remarques ? Requetes ? A vos claviers !!

tcharp38 commented 1 week ago

@MichelCHAVOT, @balabap Ce sujet est pour vous en premier.

@MichelCHAVOT Toi tu veux afficher la date de derniere comm directement sur un widget. C'est bien ça ? Dans quel but ?

@balabap De ton côté tu utilisais "Time-TimeStamp" pour vérifier via un scenario que le device était toujours en vie. Le "lastCommunication" semble parfait pour toi non ?

tcharp38 commented 1 week ago

Recherche sur "lastCommunication" de Jeedom

Utilisable dans un scenario avec lastCommunication(#XXXXXXXX#) ou en précisant un format lastCommunication(#XXXXXXXXX#, "Y-m-d H:i:s")

voir https://doc.jeedom.com/fr_FR/core/4.0/scenario

lastCommunication(equipment,[format]) : Renvoie la date de la dernière communication pour l’équipement donnée en paramètre, le 2ème paramètre optionnel permet de spécifier le format de retour (détails [ici](https://www.php.net/manual/fr/function.date.php)). Un retour de -1 signifie que l’équipement est introuvable.

Voir aussi https://youdom.net/fonctions-php-scenario-jeedom/

balabap commented 1 week ago

Salut @tcharp38 , oui moi j'utilise un scnéario pour me remonter tout équipement qui n'a pas donné signe de vie depuis 24h. A l'origine je testais si #timestamp# - "time-timestamp" > 86400 et si Vrai j'ajoutais le nom de l'équipement qui communique plus à une variable pour à la fin m'envoyer un télégram avec tous les équipements supposés HS, ou sortis du réseau. Ces prochains jours ca va être chaud de regarder, mais j'essaye de me pencher sur le sujet début de semaine prochaine. JE te tiens au courant.

Ces derniers jours je n'ai pas eu le temps de regarder comment adapter a ta proposition avec lastCommuncation

MichelCHAVOT commented 1 week ago

Salut @tcharp38 Oui, moi j'utilisais le time-Time affiché directement sur les widgets (uniquement sur les sondes de température) J'ai vu que tu avais mis le time-Timestamp en affiché par défaut, mais je les ai vite mis en caché car çà me modifiait tous les dashboard et design. Concernant le time-time, je peux m'en passer. J'ai opté pour un réglage du timeout adapté (60') et du coup, j'ai l'icone rouge dans le bandeau du widget qui s'affiche en cas de timeout. Pour info, 6 de mes capteurs pilotent des splits pour régulation du chauffage. Si je perds la communication avec un capteur, je perds le chauffage dans la pièce correspondante, c'est pour çà que je suis un peu regardant.

tcharp38 commented 6 days ago

A l' heure actuelle et apres lecture des vos remarques, dans le but de n'en garder qu'un.. je pense remettre "Time-Time" histoire d'avoir qqch d'affichable dans le widget si besoin, mais dans ce cas ca doit etre "human readable" donc Time-Time et non pas Time-TimeStamp (nbre de sec depuis 1jan70)

Apres reste à proposer une solution pour ceux qui veulent faire du test à partir du nmbre de secondes et pas d'une date

balabap commented 5 days ago

Hello, encore une fois, pour ma part, peu m'importe a aprtir du moment ou je peux faire le calcul comme indiqué plus haut. je vais essayer de trouver une soluce ce soir.

balabap commented 5 days ago

Après quelques test,s et recherches sur internet, je vais utiliser ceci dans mon scénario :

timestamp# - lastCommunication(#[Jardin][Temp Ext]#, U)

ainsi cela ne changera rien dasn mon cas.

tcharp38 commented 5 days ago

Au final je remets "Time-Time" ce qui permet d'afficher si besoin directement la derniere communication sur le widget (je ne connais pas d'autre solution pour ça). Et je vire "Time-TimeStamp".. l'info "lastCommunication()" du scenario donnant la meme chose.

Rappel: "Time-Time" = date("Y-m-d H:i:s", "Time-TimeStamp")