Etat d'une valeur historisée

Core Jeedom en 4.4.19
Debian 11

Bonjour

J’utilise des pinces ampéremétriques pour mesurer des consommations sur différents circuits et ces valeurs remontées sont historisées sur un mois.
S’il y a la moindre consommation, pas de souci les valeurs sont bien historisées.
Par contre si pendant plus d’un mois il n’y a plus de consommation, l’historique est vide et m’affiche :

image

Et lorsque je fais un

statisticsBetween(#[Garage][Pinces Tableau Z2M][Conso CP3]#, min, first day of this month 06:00, today 06:00)

ou tout autre calcul de stat, cela ne me retourne rien.

Et quand je dis rien, c’est vide, pas "" ni même zéro, donc non exploitable en l’état.

image

Existe-t’il un moyen de savoir si une valeur existe dans l’historique de sorte à ce que je puisse faire un ternaire ?
Ou sinon avez-vous une idée pour contourner le problème sans pour autant augmenter la periode d’historisation.

Merci

Salut,

C’est quoi l’objectif en fait ?
Tu veux utiliser cette donnée pour quoi ? Dans un scénario ?

C’est pas très joli (même carrément moche) mais est ce que tu ne peux pas partir sur un check comme celui ci ?

Après sinon il m’est arrivé de créer un scénario qui force l’insertion d’une valeur 0 dans un historique par exemple une fois par jour ou une fois par semaine quand il n’y a pas de data. Mais bon c’est pas très clean non plus, tout dépend ce que tu fais avec ta donnée en fait je dirais.

Merci mais non :wink:
Ce n’est pas dans un scénario, mais dans un virtuel pour afficher la conso du mois.
Ce n’est pas vital, purement cosmétique, c’est pour ça que je me disais qu’il y avait peut-être une commande permettant de savoir si une valeur était historisée ou non

Après, je peux effectivement faire mon ternaire avec la fonction "strlen", mais ce n’est pas des plus "light" :slight_smile:

C’est bien pour ça que je demande pourquoi c’est utilisé :wink:

Par contre normalement dans un virtuel si il est de type numérique, l’absence de valeur est remplacée par 0 non ?

Je viens de faire un test rapide et ça semble bien être le cas …

Edit : bon ça semlble être un peu plus compliqué que ça, parfois la valeur est à 0, je sauvegarde le virtuel et il revient à vide sans que je ne comprenne trop pourquoi.

Dans les arguments de statisticsBetween, à la place de min, on peut mettre count qui va donner le nombre de valeur dans l’historique.

2 « J'aime »

C’est exactement ce que j’étais en train de répondre :wink:

statisticsBetween(#[Maison][Conso Electrique][Conso journée]#, count, first day of this month 06:00, today 06:00) renvoi 0 si pas mesure

J’avais oublié, je m’en étais servi dans un vieux scénario

Du coup oubliez les trucs crades que j’ai écrit plus haut :grin:

1 « J'aime »

C’est bien mon souci,
J’affiche ma conso du mois en faisant :
Releve actuel - relevé au 1er du mois (valeur issue de statisticsbetween)
Disons 150 - 140 = 10kWh
Si le relevé au 1er du mois est à 0
Cela me retourne 150 - 0 = 150kWh !!

En fait je vais rejouter un binaire dans mon virtuel, binaire qui passera à 0 ou 1 selon que Statisticsbetween sera existant ou non.
En tout cas bien vu que ça retourne 0 dans le virtuel, ce qui n’est pas le cas dans le testeur d’expression.

Parfait ! Je peux donc baser mon ternaire sur ce "count"
Merci bien, ça fonctionne !

2 « J'aime »

Salut

Ta commande est réglée comment pour le comportement sur répétition de valeur identique ?
Car même si la consommation est nulle, la pince devrait envoyer 0 comme valeur.

Antoine

Justement je ne veux pas 0, mais la dernière valeur. Ce n’est pas une puissance instantanée, mais une consommation cumulée.

Perso j’ai crée un virtuel qui me permet d’historiser tous les jours le cumul de conso de la journée en faisant la soustraction de l’index le plus élevé - le plus bas sur une journée donnée via la téléinfo du linky.

C’est rapide ensuite si besoin de faire des cumuls par semaine, mois, année …

C’est bien ce que je fais.
Je me trouvais juste confronté au problème où la valeur historisée n’existant pas, donc à 0, ça me donnait un résultat erroné.
Mais le ternaire avec le count de la fonction statisticsbetween proposée me va très bien et fonctionne comme souhaité.

1 « J'aime »

MaxBetween alors?

Le souci est le même.
Ca vient de ce que first day of this month 06:00 est égal à today 06:00 chaque 1er du mois.
image
AMHA il manque 18h du dernier jour du mois dans les cumuls mensuels.

1 « J'aime »

En fait mon cumul mensuel n’est qu’en affichage dans le virtuel est est ainsi calculé

Cumul mois = Index actuel - la plus petite valeur historisée à compter du 1er du mois à 6h00

Effectivement pour le 1er de chaque mois, pour éviter le retour vide, j’aurai du écrire :

statisticsBetween(#[Garage][Pinces Tableau Z2M][Conso CP3]#, min, first day of this month 06:00, now)

Dans la mesure où une valeur est historisée (ex pour la Ph1) on a :

image

A contrario, s’il n’y a pas de valeur historisée, car aucune consommation depuis plus d’un mois on obtient :

image

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