Maxbetween et minbetween sur deux plages

Bonjour
Dans un scénario je souhaite calculer la somme de deux valeurs sur deux plages horaires.

(maxbetween(#[Cellier][ECS][Consommation Totale ECS:]#,today 00:00:00, 05:00:00) - minbetween(#[Cellier][ECS][Consommation Totale ECS:]#,today 00:00:00, 05:00:00))+(maxbetween(#[Cellier][ECS][Consommation Totale ECS:]#,today 21:20:00, 23:59:59) - minbetween(#[Cellier][ECS][Consommation Totale ECS:]#,today 21:20:00, 23:59:59))

Le résultat est nul tant que la deuxième plage horaire n’est pas renseignée. Le log donne:

[2024-01-11 11:03:19][SCENARIO] **-- Start :** Scenario lance manuellement. 
[2024-01-11 11:03:19][SCENARIO] - Exécution du sous-élément de type [action] : action 
[2024-01-11 11:03:20][SCENARIO] Changement de [Cellier][Energie quotidienne ECS][Engie] à (2066375 - 2065297.4)+( - )

Merci de votre aide et meilleurs voeux

Bonjour,

Je ne saisis pas ce que ça veut dire.

Comme tu demandes une information entre aujourd’hui 21:20:00 et aujourd’hui 23:59:59, il ne risque pas de donner de valeur puisque c’est dans le futur.

Tout à fait d’accord, c’est pour cela qu’il faut attendre que la plage soit renseignée. Il y a t-il la possibilité que le non renseignement soit zéro?

Je cherche une formule pour borner mon mini/maxi entre 21h20 (J) et 05h00 (J+1)

Vous pouvez aussi adapter votre formule suivant l’heure actuelle.

C’est pas plutôt entre 21h20 (J-1) et 05h00 (J) ?
Parce que 5h00 J+1, vous le l’aurez jamais.
Il est 19h20 (J) vos 2 bornes sont dans le futur.

Ca donnerait:

maxbetween(#[Cellier][ECS][Consommation Totale ECS:]#,yesterday 21:20:00, today 05:00:00) - minbetween(#[Cellier][ECS][Consommation Totale ECS:]#,yesterday 21:20:00, today 05:00:00)

oui et dans la journée cela fait 2 plages discontinues.
A 19h20, celle de 00h00 à 5h00 est déjà renseignée

Il n’y a pas qu’une seule plage continue dans votre requête juste au dessus:

La demande varie suivant les posts :wink:

Vous pouvez aussi adapter votre formule suivant l’heure actuelle pour qu’il n’y ait pas de date dans le futur.

Si #time# < 2130
  conso = (maxbetween(#[Cellier][ECS][Consommation Totale ECS:]#,today 00:00:00, today 05:00:00) - minbetween(#[Cellier][ECS][Consommation Totale ECS:]#,today 00:00:00, today 05:00:00))+(maxbetween(#[Cellier][ECS][Consommation Totale ECS:]#,today 21:20:00, today 23:59:59) - minbetween(#[Cellier][ECS][Consommation Totale ECS:]#,today 21:20:00, today 23:59:59))
Sinon 
  conso = maxbetween(#[Cellier][ECS][Consommation Totale ECS:]#,today 00:00:00, today 05:00:00) - minbetween(#[Cellier][ECS][Consommation Totale ECS:]#,today 00:00:00, today 05:00:00))

J’ai mis 2130 dans le SI parce qu’il faut etre sûr qu’une donnée historisée existe.

Bon je suis pas sûr de comprendre ce que tu veux mais si tu remplaces ta 2eme expression par

(maxbetween(#[Cellier][ECS][Consommation Totale ECS:]#,today 21:20:00, 23:59:59)?:0 - minbetween(#[Cellier][ECS][Consommation Totale ECS:]#,today 21:20:00, 23:59:59)?=0)

ça devrait j’espère faire ce que tu veux donc mettre des 0 quand il n’y a pas de valeurs

Votre requête me convient parfaitement car je souhaite mesurer une consommation heure creuse d’un ECS. Si je la calcule sur le même jour ce n’est pas exacte car c’est la chauffe sur deux jours de consommation en réalité

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