Widget - time_diff

Bonjour,

Je souhaite faire varier la couleur d’un texte en fonction du résultat d’un time_diff entre la valeur du paramètre et l’heure actuelle.

Il y a quelque chose qui m’échappe car, quand j’utilise time_diff dans mes tests, le widget ne fonctionne plus.


image

Est-ce possible de faire ce genre de test ou pas?

Merci d’avance pour les réponses,
Stephan

Bonjour,
Personne pour m’apporter un peu d’aide sur ce problème?
Stephan

Bonjour,

J’ai jamais essayé ce test ici mais bon …
Que contient la commande sur laquelle tu appliques ton widget ?

Tu veux faire un truc comme ça ?

Re,

J’ai un écran sur lequel j’affiche tous mes équipements ZIGBEE avec la qualité de communication et la date/heure de dernière connexion
image

J’aimerais que l’affichage de la date/heure change de couleur en fonction du delta entre l’heure courante et l’heure de dernière communication

J’ai un virtuel qui contient toutes ces valeurs

Et j’ai un widget multistate qui teste le delta avec time_diff
image
image

Si j’applique le widget à une des commandes, rien ne s’affiche pour cette commande. Dans le cas ci-dessous, j’ai appliqué le widget à la commande du module salon
image

J’ai vérifié mon expression avec le testeur d’expression (pour être certain que je n’avais pas fait une erreur de frappe) et cela fonctionne:
image

Pour info, normalement j’avais time_diff(#value#,now,m) > 50 comme expression de test.

Je bloque depuis plusieurs jours là-dessus, merci pour un éventuel coup de main

Stephan

La commande contient ceci: 2024-07-04 09:29:05

Bon, du coup c’est qu’il ne sera pas possible d’utiliser ce type de test dans le paramétrage du widget.
Il va falloir procéder avec la méthode remontée par Noyax37 et donc utiliser le time_diff dans une commande virtuelle.

C’est sur cette commande que tu pourras appliquer ton widget dont le test sera bien plus simple (#value# > xxx)

Serait-ce un oubli dans la fonction WIDGET ? Est-ce que cela risque d’être corrigé un jour ?

Vu de la doc ce n’est pas un oubli non :

https://doc.jeedom.com/fr_FR/core/4.4/widgets

Un test comme round(#value#) > 2 ne fonctionne donc pas. Pas plus que l’utilisation d’un time_diff()

Ce n’est donc pas vraiment un bug mais une non prise en compte de fonctions à l’intérieur de ces tests.

Il te faut donc mettre ton time_diff dans la commande virtuelle et faire un test plus simpe comme décrit dans la doc :slight_smile:

Merci Bison pour cette explication. C’est dommage que l’on ne puisse pas mettre de fonction dans ces tests mais peut-être que c’est plus compliqué à faire qu’à le souhaiter.

Ça c’est le cas de partout :nerd_face:

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.