Bonjour,
Je me suis créer un virtuel avec une commande info qui affiche l’intensité max de la journée (que j’historise) et une autre avec l’intensité max depuis le début .
Je pense que je me suis mal exprimer.
J’avais essayé avec valuedate, mais ça me donne la date de mise jour de la commande, hors ce n’est pas ce que je veut.
Ce que j’aimerais c’est la date ou la commande max (ici 28A) est passer. c’est a dire quand je regarde l’historique de la commande c’est le 24 decembre 2023.
max(commande,période) & maxBetween(commande,start,end) : Donnent le maximum de la commande sur la période (period=[month,day,hour,min] ou expression PHP) ou entre les 2 bornes demandées (sous la forme Y-m-d H:i:s ou expression PHP).
Il y a pratiquement toujours une solution. Mais parfois c’est pas simple. Visiblement ici il va falloir passer par une fonction custom puisque les fonctions disponibles n’ont pas l’air de donner le résultat souhaité.
Je me note de regarder pour proposer quelque chose, sûrement demain si personne n’a envoyé ça avant.
Dans le testeur d’expression, chargez votre commande issue du virtuelle. C’est à dire la commande info qui donne 28A en retour.
Ensuite, vous mettez simplement valuedate(#i max depuis le debut#) et tester. Cela doit donner la date de cette commande (mais il faut qu’elle soit historisée)
En image, j’ai un virtuel qui le donne le max de la température du jour, et si je place ce virtuel dans valuedate() alors le retour est bien la date ou cette valeur est arrivée.
Je dois être débile
La valeur MAX de cette commande maxBetween(#[Boiler][Consommation Boiler][Jour]#,2023-12-31 00:00:00,now) est de 6,1 kWh le 04 Janvier 2024
Je crée la commande valuedate(#[Test][ESSAI_MAX][Max]#) et je sauve le virtuel . La date affichée est celle de la sauvegarde du virtuel .
Il suffit de regarder la date de valeur de la commande Max dans la configuration de celle-ci. A tous les coups elle a pris sa valeur au moment où elle a été créée. C’est une nouvelle commande, elle n’est pas la commande sur laquelle on extrait la valeur max mais bien une nouvelle commande dont on cherche à connaitre la date de valeur.
Donc effectivement si les commandes viennent d’être créées ça ne fonctionnera pas immédiatement par contre dès le prochain changement de valeur automatique de la commande Max la commande date aura bien la bonne date et non pas celle d’initialisation.
Peut-être pas …
Si ma valeur MAX reste celle en date du 04 Janvier 2024 et bien ma date ne changera pas et restera celle affichée lors de la création.
Une autre proposition?
L’idée d’une commande Jeedom est quand même qu’elle change de valeur de temps en temps sinon ça n’a que peu d’intérêt mais soit, dans ce cas tu fais un event via un scénario pour l’initier à la bonne valeur et voilà le problème est réglé