Lissage maximum par jour

Bonjour,

Est ce qu’il serait possible d’implémenter un lissage de type maximum par jour.
=> une seule valeur conservée qui serait le maximum du jour à 23h59.
Si je mets un intervalle de 1440mn dans « jour » je ne suis pas sûr de l’effet.

merci

J’ai une commande info qui est un compteur d’énergie, qui se remet à zéro chaque nuit que j’historise grâce à Histolisse, quand je fais le maximum avec un intervalle de 1440mn dans jours, le max du jours (ici 10.17 max du 09 juillet) vient s’écrire à 00h00mn00s le 9 juillet, quand j’affiche dans des graphes maximum par jour j’obtiens un décalage d’une journée (on se retrouve à afficher ça dans la journée du 8)

Est ce que l’on pourrait décaler l’écriture du max du jour à un autre timestamp ? (je peux tester si qqn me dit ou modifier ça dans le code) ? par exemple le mettre à midi, logiquement ça devrait être bien interprété par Jeedom.

Ma config :

Salut,

Franchement, je ne sais pas si histolisse pourra traiter ton besoin car si je ne dis pas de bêtise par défaut l’heure retenue est celle de début et non de fin de période.

Perso pour calculer la consommation élec de la journée, je prends l’index le plus grand, je le soustrait au plus petit et j’historise ça dans un virtuel.
Et je stocke ça à YYYY-MM-DD 23:59:59 et non 00:00:00

Si jamais ci dessous le code que j’utilise :

$cmdIdCompteurIndex = 2224; // Id de la commande du compteur INDEX BASE (Equipement Zlinky) [a personnaliser] Old 2199
$cmdIdCompteurHisto = 3088; // Id de la commande d'historisation de la conso journalière (Equipement Virtuel) [a personnaliser]

$debutJourVeille = date("Y-m-d 00:00:00", strtotime("Yesterday")); // Hier à 00h00
$finJourVeille = date("Y-m-d 23:59:59", strtotime("Yesterday")); // Hier à 23h59
$debutJourJ = date("Y-m-d 00:00:00", strtotime("Today")); // Ajourd'hui à 00h00
$finJourJ = date("Y-m-d 23:59:59", strtotime("Today")); // Aujourd'hui à 23h59

$indexJourVeille = history::getStatistique($cmdIdCompte$indexJourJ = history::getStatistique($cmdIdCompteurIndex, $debutJourJ, $finJourJ)["min"]; // On cherche l'index le plus bas dans l'historique sur J

$scenario->setLog("Index veille     : ".$indexJourVeille); // On ajoute l'index de la veille aux logs du scénario
$scenario->setLog("Index jour       : ".$indexJourJ); // On ajoute l'index du jour aux logs du scénario

$delta = ($indexJourJ-$indexJourVeille)/1000; // Calcul du delta entre l'index de la veille au matin et celui de ce matin qui donnera la conso de la journée d'hier et on divise par 1000 pour passer de Wh à KWh

$scenario->setLog("Delta            : ".$delta); // On ajoute le detla entre les deux index aux logs du scénario
$scenario->setLog("Horaire histo    : ".$finJourVeille); // On ajoute le detla entre les deux index aux logs du scénario
urIndex, $debutJourVeille, $finJourVeille)["min"]; // On cherche l'index le plus bas dans l'historique sur J-1

$histoconsojour = cmd::byId($cmdIdCompteurHisto);
$histoconsojour->event($delta,$finJourVeille); // Historisation du calcul du delta comme conso de la journée d'hier

1 « J'aime »

merci pour le code partagé, je fais la même chose mais sans action de ma part pour le stockage.

Je vais voir ce que ça donne ce soir, car j’avais pas installé de CRON à 00h00 pour actualiser (ou reset à zéro) les compteurs qui doivent l’être. J’ai des compteurs pour du solaire donc pas d’actualisation à cette période donc ça conservait une valeur, et j’ai les compteurs pour ce qui est à partir du réseau et là ça s’actualise au moins une fois par minute.

Mais en tout cas merci pour le code c’est ce qu’il me faudra si ça ne fonctionne tj pas comme je le souhaite.

En vrai je pourrais presque tout faire via des blocs de scénario classique et pas du code.
La seule chose que je ne pourrais pas faire sans passer par du code c’est de pousser l’event avec une date spécifique ça à ma connaissance ça n’est pas possible de le faire sans passer par un bloc code.
Et dans mon cas, je force la maj à 23:59:59 même si en vrai, le calcul est fait quelques minutes plus tard.

C’est un vieux truc que j’ai fait, il faudra que l’optimise un peu :slight_smile:

1 « J'aime »