Bon au final pour ton cas, si tu veux connaitre le niveau qu’il y avait à 8h la difficulté va être de savoir la dernière valeur qu’il y ait pu avoir.
Par exemple si il pleut de 7h30 à 7h45, la dernière valeur sera à 7h45. A 8h si il n’a pas plu ça sera donc toujours la valeur de 7h45 qui existera dans l’historique mais à 7h45 et non 8h.
Au final dans ton cas d’une commande croissante historisée et si j’en crois le graphique remise à zéro tous les jours à minuit (j’imagine), tu peux partir sur le principe de demander à jeedom le max avec par exemple :
Et tu appelles la fonction dans ton virtuel sous cette forme MyGetDateTimeValue(#[.....]#, 2026-01-09 11:08:00)
Note 1 : Pas de simple quote (') autour de la date
Note 2 : La fonction va rechercher la valeur la plus proche autour de ta demande, il se peut que la date et l’heure de la valeur ne soit pas EXACTEMENT celle que tu voulais car elle n’existe pas dans l’historique
Bonjour, merci pour la réponse. euh lastvalue c’etait un essais non concluant…
Non la commande ne se remet pas a 0 à minuit, c’est que la commande est toute nouvelle.
Si il pleur de 7h30 à 7h45 la derniere valeur sera à 7h45 mais pas 8h00 mais si j’ai un cron tte les minutes avec répéter les valeurs identiques: oui, ca ne fonctionnera pas?
Hum alors dans l’absolu pourquoi pas mais tu va charger inutilement la base de ton jeedom alors que la valeur est strictement la même qu’avant … pas très utile.
Ben je comprends pas vraiment comment est alimentée ta valeur du coup, tu peux expliquer ça ?
ma valeur #[Météo][Info_Climat_Pluie][Rain_Year] s’incremente a chaque pluie. cest le cumul de pluie de l’année, cette valeur est historisée. J’aimerai connaitre la cumul par jour,semaine…
Alors ton besoin je l’ai compris.
Ma question était plutôt, d’où vient cette valeur ?
D’un plugin ? D’un capteur ? De la récupération d’une donnée via internet ?
Et elle n’est jamais remise à zéro ?
Tu veux quoi exactement ?
Dans ton premier message tu disais que tu voulais le cumul de la pluie à 8h.
Mais du coup la pluie qu’il est tombé entre le 1er janvier et le jour J à 8h ?
Ou uniquement pour le jour J entre 0h et 8h ?
Je peux essayer de te proposer des solutions mais à condition au moins de comprendre le problème parce que la les éléments arrivent au compte goutte
oui pardon, je pensais y arriver seul. j’aimerai connaitre la valeur d’ajourd’hui a minuit et celle de maintenant pour faire une soustraction comme ca j’ai la valeur de la pluie tombée aujourd’hui
alors j’ai fait ça:
#[Météo][Info_Climat_Pluie][Rain_Year]# - lastBetween(#[Météo][Info_Climat_Pluie][Rain_Year]#, yesterday 00:00:00, today 00:00:00)
cest le plus simple et correct?
Mais on est d’accord que tu as pas forcément d’historisation à minuit pile ? par exemple si il à plu à 23h30 la veille et qu’il n’est plus rien tombé ensuite, dans ton historique tu n’aura qu’une valeur à 23h30 et pas une demi heure plus tard ?
Ben je sais pas, quand tu la passe au testeur d’expression ça donne quoi ?
Rappel de la doc pour le lastBetween :
lastBetween(commande,start,end) : Donne la dernière valeur enregistrée pour l’équipement entre les 2 bornes demandées (sous la forme Y-m-d H:i:s ou [expression PHP]
Hum à tester. Je n’aurais pas utilisé cette approche la personnellement mais pourquoi pas.
Je serais plutôt parti sur des fonctions min ou max.
Mais commence par tester chaque chose de façon unitaire avant de te lancer dans des calculs : vérifie déja que tu arrives bien à avoir toujours le résultat du cumul de pluie à minuit avant de le soustraire à la valeur actuelle.
Ben c’est toute la problématique en fait. Après rien ne t’empêche de chercher sur une plus grande plage, par exemple le max entre le 01/01/2026 00:00:00 et 09/01/2026 23:59:59 au moins tu es sur que tu aura toujours quelque chose pour savoir combien il y avait de cumul de pluie la veille à minuit. Voir juste si ça va pas être trop long à calculer …
Après sinon il reste toujours une option, te créer toi même l’historique à minuit.
Perso je le fais pour un contexte autre (ma conso électrique) mais via un scénario je force une historisation à 0h00 pour pouvoir avoir cette valeur propre et isolée et ne pas avoir besoin de faire de calculs dessus ensuite. Ca pourrait toujours être une option …
a voir le jour ou il ne pleut pas (en ce moment c’est pas gagné)
Perso je le fais pour un contexte autre (ma conso électrique) mais via un scénario je force une historisation à 0h00 pour pouvoir avoir cette valeur propre et isolée et ne pas avoir besoin de faire de calculs dessus ensuite. Ca pourrait toujours être une option …
Force une historisation? un refresh?
Rien ! C’est justement pour ça que j’ai écrit avec 2 virgules consécutives, soit pas de valeur définie pour le début.
Donc la formule fera la différence entre la valeur courante et le maximum relevé à minuit. Peu importe que ce relevé soit de 23h30 ou 15h45
Tu fais la recopie de l’historique dans un nouveau virtuel et tu supprime des données dans l’histo : tu va vite voir si tes formules génèrent des erreurs.
En fait je me rends compte que ce que j’ai pour la conso élec est assez similaire à ce que tu as pour les cumuls de pluie.
J’ai mon index du compteur linky qui est historisé.
Sauf que savoir qu’il était à 140006 le matin et 140901 le soir ça m’interesse pas plus que ça donc je calcule tous les jours combien fait la différence des deux dans la journée. Et j’historise la résultat de ce calcul.
Sinon pour te répondre simplement pour ce qui est de l’historisation, avec un scénario en code, tu peux utiliser la fonction addHistoryValue qui te permet de forcer l’intégration d’une valeur spécifique dans l’historique : j’en crée donc une à 23:59:59 donc je suis sur que j’aurais une valeur à cette heure la précise.
J’ai du mal à voir l’intérêt de forcer une historisation à une heure précise ou de l’enregistrer quelque part.
Si le cron met à jour la valeur c’est qu’elle a changé et elle sera donc historisée. Au cas contraire, reste historisée la dernière valeur connue.
Donc même s’il ne pleut pas pendant un mois, en faisant la différence entre la valeur courante et le max relevé à minuit (sans date de début), on aura bien la pluie tombée du jour. En remplaçant minuit par la date que l’on veut, on peut calculer n’importe quel cumul sur la période historisée.
Au pire tu perds 5mn si le dernier relevé a été fait à 23h55 avec un cron de 5mn, mais pas plus.
Je fais tous mes relevés de consommation électrique comme ça et je n’ai pas de dérive.
En l’occurence c’est pas une question de dérive : avec mon linky, je récupère les infos toutes les minutes. Pour l’index ça peut représenter plus de 100 valeurs par jour.
Du coup pour éviter de garder indéfiniment de grosses volumétries de données « pour rien », je purge automatiquement mes index au bout de 7 jours et par contre tous les jours j’historise le total de conso sur la journée : c’est beaucoup plus parlant parce que c’est l’info qui m’interesse et je divise par plus de 100 le nombre de mesures à conserver : 1 seule par jour avec le total de combien j’ai consommé de kWh sur la journée.