Tag pour *année précédente*?

Bonjour,

Je suis bloqué dans un simple calcul de consommation d’énergie trimestrielle activé peu après la fin du trimestre. L’index du compteur en kWh m’est transmis en continu par un compteur smart (Sagemcom). Il est archivé par ma Jeedom à chaque heure. Pas de soucis pour le calcul des 3 premiers trimestres (dernière valeur de mars de cette année – 1ère valeur de janvier de cette année).

Ceci fonctionne très bien :

maxbetween(#[Mon Compteur][Energie Totale]#,#annee#-03-31 23:00,#annee#-03-31 23:59) -
minbetween(#[Mon Compteur][Energie Totale]#,#annee#-01-01 00:00,#annee#-01-01 01:00)

Par contre, le 4ème trimestre me pose un problème car le calcul ne peut avoir lieu qu’au début de l’année suivante. Pour l’année courante, le tag annee fait l’affaire. Existe-t-il un tag pour « année précédente » ceci pour m’éviter d’aller éditer le scénario du trimestre pour changer l’année ?

J’ai essayé diverses syntaxes mais rien n’y fait. Et j’ai cherché un peu partout… mal probablement !

Salut,

#annee#-1 ne fonctionne pas ?

Au testeur d’expression ça à l’air ok

image

Oui …mais pas si suivi du mois et du jour avec un séparateur « - »

et même avec des ()

Et avec ceci ?

date("Y-1")

image

1 « J'aime »

maxbetween(#[Mon Compteur][Energie Totale]#,date("Y-1")-12-31 12:00, date("Y-1")-12-31 23:59)

Marche pas même si date(« Y-1 ») donne bien 2024

Bonsoir,

et comme ceci :

maxbetween("#[Mon Compteur][Energie Totale]#", date("Y")-1 . "-12-31 12:00", date("Y")-1 . "-12-31 23:59")

marche pas… même en élevant les 2 " qui me semblent inadéquates

tu test ceci dans le testeur d’expression ou direct dans ton scénario ?

dans mon scénario et je suis sûr qu’il y a des données à cette date… vérifié en mettant 2024-12-31 dans la commande

Et avec des expressions textuelles ? Du genre « first day of previous year »

un truc comme ca :

maxbetween(#[Mon Compteur][Energie Totale]#, #annee#-12-31 12:00 -1year, #annee#-12-31 23:59 -1year)

OK avec les expressions textuelles… Merci, reste à trouver la bonne formule… je reviens sitôt trouvée

Ca fonctionne pas comme ceci ? c’est un strtotime qui est dans le core donc normalement le -1year devrait fonctionner.

Et voili ! y a probablement d’autres solutions. Merci à vous tous !

maxbetween(#[Mon Compteur][Energie Totale]#,last day of december last year 22:00,last day of december last year 23:59) -
minbetween(#[Mon Compteur][Energie Totale]#,first day of october last year 00:00,first day of october last year 02:00)

@Phpvarious Cette solution fonctionne aussi ! Merci