Difficultés avec les fonctions de calcul

Bonjour,

Cela fait près de 2 ans que je possède un Jeedom qui fonctionne globalement bien. Je dois avouer que j’ai eu quelques difficultés au début pour comprendre la logique, le format du logiciel, et son ergonomie en général. Cependant, avec le temps, je m’y suis habitué.

En revanche, il y a quelque chose qui me pose toujours problème : les commandes de calcul de temps, de consommation, etc. Malgré mes essais et mes tentatives de compréhension, je n’arrive pas à m’en sortir. Je me demande si Jeedom ne pourrait pas améliorer ces fonctions, car je suppose qu’elles sont utiles pour tous, mais qu’elles restent inaccessibles pour la plupart des utilisateurs non initiés au code, comme moi.

Voici un exemple concret où je bloque (et ce n’est qu’un exemple) : je souhaite obtenir ma consommation EDF d’hier entre 6h et 22h. Voici ce que j’ai trouvé dans la documentation :

statistics(commande, calcul, période) & statisticsBetween(commande, calcul, start, end) : Donnent le résultat de différents calculs statistiques (sum, count, std, variance, avg, min, max) sur la période (period=[month,day,hour,min] ou expression PHP) ou entre les 2 bornes demandées (sous la forme Y-m-d H:i:s ou expression PHP).

Voici ce que j’ai tenté pour ma commande :

statisticsBetween('#[EDF][Compteur Linky][Consommation Horaire]#', 'sum', '2024-01-07 22:00:00', '2024-01-08 06:00:00')

Cependant, je n’obtiens aucun résultat. Ça ne fonctionne pas.

Je suppose que vous pourrez peut-être identifier l’erreur rapidement, car vous avez peut-être la logique et l’habitude.

Mais la question central n’est pas la.
→ Ne serait-il pas intéressant de travailler sur une fonction d’aide à la création de commandes de calcul ?

Merci à vous !

Salut

Une recherche sur la communauté t’aurait donnée des infos:

Antoine

La période n’est pas bonne
Ca serait plus un truc comme ça :
Yesterday 22:00, Today 06:00

Jeedom utilise les formats relatifs. Il faut donc apprendre un minimum de php pour pouvoir profiter de ces puissantes fonctions

Dans le testeur d’expression et dans un scénario, il ne faut pas de '
Dans un bloc code de scénario, il faut les ' et un ; à la fin de la ligne.

statisticsBetween(#[Energie][EcoCompteur][Conso Heure]#, sum, 2024-01-07 22:00:00, 2024-01-08 06:00:00) 

image

C’est peut-être aussi lié au paramètre de configuration de Jeedom en bas de l’onglet Equipements
image

1 « J'aime »

J’ai testé cela, mais ça ne fonctionne pas :

statisticsBetween('#[EDF][Compteur Linky][Consommation Horaire]#', 'sum', 'Yesterday 22:00, Today 06:00')

Je n’obtiens aucun résultat :

Je vais évaluer : ""
Résultat : 

En fait, ce qui est frustrant, c’est que la demande paraît simple (compter le nombre de kWh entre 6h et 22h de la journée d’hier). Mais c’est d’une complexité incroyable pour trouver la base de calcul. Je lis des tas de posts sur la communauté, je m’aide de Chat-gpt, bard, etc. … Rien n’y fait ! Je passe des heures à chercher une réponse (si je n’abandonne pas avant).

N’y aurait-il pas un besoin de simplification de la base de calcul statistique ?

Arrete dy mettre des guillemets !

:sweat_smile: :sweat_smile:

Ca a l’air de fonctionner effectivement

statisticsBetween(#[EDF][Compteur Linky][Consommation Horaire]#, sum, Yesterday 22:00, Today 06:00)
Attention : il doit y avoir un souci, car le résultat est le même que l'expression
Je vais évaluer : 17.45
Résultat : 17.45

La question est ? Pourquoi j’ai foutu des guillemets a l’origine ? :face_with_raised_eyebrow:

La question est de savoir pq jpty a repondu y a 10h00 sur ce probleme et que tu poses encore la question…
:joy::joy:

Je vous ai proposé une solution 41 minutes après votre question.
Pourquoi y passer des heures ? :rofl:

C’est de la programmation. La syntaxe est rigide et doit être respectée.
Pas de guillemets, ni d’apostrophe dans cette commande comme dans la doc.

1 « J'aime »

Par contre le resultat est faux. En realité j’ai 9.4kw, ca me donne 17.45

Donc le calcul n’est pas bon!

Ca depend de comment est fait le lissage sur lhistorisation de la commande

Pour moi, le calcul est correct.
Si je reprend les valeurs entre 2024-01-08 06:00:00 et 2024-01-08 08:00:00 de ma commande de conso horaire, j’obtiens ces valeurs dans la table history de la bdd:
image
Soit un total de 1.061

Jeedom avec toutes les valeurs arrondies à 2 chiffres (.27 + .47 + .33 = 1.07) donne:

Les bornes start et end sont inclues dans le calcul. Ca peut fausser le résultat attendu.

Entre 6h et 7h, il y a 0.22kw, et entre 22h et 23h, il y a 2.16kw.

Donc loin pour arriver a 17.45kw pour 9.4kw

:rage:

Tu peux montrer l’historique de la commande en barre histoire que les autres puissent voir aussi ce que tu vois ?

statisticsBetween fait la somme des valeurs contenues dans la bdd.
Si les valeurs dans la bdd sont fausses, le résultat ne peut qu’être faux.

Quel est la commande qui alimente la bdd?
A quelle fréquence est-elle mise en bdd?
Quel est le lissage pour cette commande ?

Vous écrivez que 9.4kW est la réalité. Comment est-il mesuré?

Ce serait bien de repondre a minima aux questions plutot que de tjrs revenir en disant ca marche pas…

Il s’agit du plugin-enedis avec la commande #[EDF][Compteur Linky][Consommation Horaire]#

Le plugin a été installé il y a pres de 2 ans, et les resultats sont similaire a ce que je retrouve sur le site ENEDIS et EDF

Comment ai je trouvé le resultat de 9.4kw? J’ai regarder sur le site EDF, et j’ai valider en aujoutant toutes les mesures de 6h à 22h, ce qui m’a donné le meme resultat: 9.40kw.

Je ne sais donc pas ou es que je peche …

mode de lisage est paramétré en « aucun »

Ca reponds tjrs pas aux questions

...sum, Yesterday 22:00, Today 06:00)

Tu as demandé entre 22h et 06h, pas entre 06h et 22h.