L'application permet de définir des formules, dans les compteurs virtuels, les widgets ou les alertes. Elles permettent de spécifier des calculs qui seront faits dynamiquement à partir des données stockées issues des compteurs physiques.
Parmi les fonctions disponibles, certaines permettent d'utiliser ou manipuler la dimension temporelle des données de compteurs.
Décalage temporel
TIMESHIFT(expression, décalage, aligner_les_jours_de_la_semaine)
Retourne les valeurs d'une expression, sur une plage de temps décalée par rapport à la plage de temps sélectionnée.
Le décalage peut être exprimé en :
-
secondes :
seconds -
minutes :
minutes -
heures :
hours -
jours :
days -
mois :
months -
années :
years
Le paramètre optionnel aligner_les_jours _de_la_semaine, true (vrai) ou false (faux, par défaut), permet d'ajouter un décalage supplémentaire de façon à aligner les jours de la semaine. Il peut être utilisé en cas de décalage en mois ou en années, pour avoir une comparaison plus pertinente, par exemple quand la consommation dépend des jours ouvrés.
Exemples
TIMESHIFT(compteur, -1 month)
Retourne les valeurs du compteur sur le mois précédent, pour ainsi les comparer avec celles du mois sélectionné :
TIMESHIFT(3*compteur, -2 years, true)
Retourne trois fois la valeur du compteur 2 ans avant en alignant les jours de la semaine.
compteur - TIMESHIFT(compteur, -1 day)
Permet de calculer la différence entre la valeur du compteur et celle sur le jour précédent.
Il n’est actuellement pas possible d'utiliser plusieurs TIMESHIFT encapsulés. Le résultat en sera incorrect.
❌TIMESHIFT(TIMESHIFT(compteur, -1 year), -1 day)
✅TIMESHIFT(compteur, -366 day)
HOUR_BEFORE(expression)
Retourne les valeurs de l'heure précédant la plage de temps sélectionnée.
DAY_BEFORE(expression)
Retourne les valeurs du jour précédant la plage de temps sélectionnée.
WEEK_BEFORE(expression)
Retourne les valeurs de la semaine précédant la plage de temps sélectionnée.
MONTH_BEFORE(expression, aligner_les_jours_de_la_semaine)
Retourne les valeurs du mois précédant la plage de temps sélectionnée.
Le paramètre optionnel aligner_les_jours _de_la_semaine, true (vrai) ou false (faux, par défaut), permet d'ajouter un décalage supplémentaire de façon à aligner les jours de la semaine. Il peut être pour avoir une comparaison plus pertinente, par exemple quand la consommation dépend des jours ouvrés.
YEAR_BEFORE(expression, aligner_les_jours_de_la_semaine)
Retourne les valeurs de l'année précédant la plage de temps sélectionnée.
Le paramètre optionnel aligner_les_jours _de_la_semaine, true (vrai) ou false (faux, par défaut), permet d'ajouter un décalage supplémentaire de façon à aligner les jours de la semaine. Il peut être utilisé pour avoir une comparaison plus pertinente, par exemple quand la consommation dépend des jours ouvrés.
LAG(expression, n)
Retourne les données de l'expression, avec un décalage de n points (dans le passé). Contrairement à la fonction TIMESHIFT, elle ne permet pas d'obtenir des valeurs en-dehors de la page de temps sélectionnée. Par conséquent, les n premiers points retournés seront manquants (null).
Exemple
IF(compteur != LAG(compteur, 1), 1, 0)
Retourne 1 si le compteur a changé de valeur par rapport au point précédent, sinon retourne 0.
Autres fonctions
DATE()
Retourne la date des points. Le résultat de cette fonction peut être utilisé pour comparer la date du point à la date courante, ou à une valeur fixe.
Exemples
IF(DATE() < '2017-06-01', compteur / 2, compteur)
Les données du compteur antérieures au 1er juin 2017 seront divisées par 2.
IF(DATE() > NOW(), prévision de consommation, 0)
Ignore les données du compteur prévision de consommation antérieures à la date courante.
IF(DATE() < TODAY(), 1, 0)
Retourne 1 si la date du point est antérieure à la date du jour, sinon retourne 0.
NOW()
Retourne la date et heure actuelle.
TODAY()
Retourne la date du jour actuel.
DATE_PART(partie_de_la_date_à_extraire)
Retourne la partie de la date demandée.
Les éléments de date disponibles sont les suivants :
'day'(jour du mois, entre 1 et 31)'doy'(jour de l'année, entre 0 et 366)'hour''minute''second''isodow'(jour de la semaine : 1 pour lundi, 7 pour dimanche)'year''isoyear'(numéro de l'année selon la norme ISO 8601)'month'(mois entre 1 et 12)'quarter'(trimestre entre 1 et 4)'week'(numéro de la semaine selon la norme ISO 8601)
Exemples
IF( DATE_PART('hour') >= 21 OR DATE_PART('hour') < 6 , compteur, 0)
Retourne la valeur du compteur si le point est situé entre 21 h et 6 h du matin, sinon retourne 0.
IF (DATE_PART('isodow') < 6, compteur, null)
Retourne les valeurs du compteur en ignorant les week-ends (samedi et dimanche).
Commentaires
0 commentaire
Cet article n'accepte pas de commentaires.