Problème avec statistics et statistics between

Bonjour
Je suis nouveau sur Jeedom, mais pas newbie avec les solutions domotiques.
Jeedom insatllé sous Docker, core stable.
J’ai installé pour commencer les plugins scripts et virtuels, pour essayer de suivre la consommation d’une chaudière granulé (okofen).
J’arrive parfaitement à récupérer les infos en json su la chaudière, dont la quantité de granulés consommés à un instant donné. Je récupère également quotidiennement, à heure fixe, la consommation de la journée (juste avant que la chaudière ne « refasse le plein » de la trémie intermediaire)
J’ai créé un virtuel pour suivre la conso hebdomadaire, mensuelle et annuelle sur la base de cette valeur quotidienne.
J’utilise pour cela un virtuel avec 3 commandes qui font la somme des quantités journalières en utilisant la fonction statisticsBetween
par exemple pour la conso hebdomadaire:
statisticsBetween(#[Maison][Chauffage Pellets Journalier][quantite_pellet]#, sum, first day of this week, last day of this week)


Je m’attendais à ce que chaque début de semaine le « compteur » hebdomadaire retombe à 0 et augmente au fur et à mesure que la semaine s’écoule jusqu’au dernier jour de la semaine.
Cela fait ~trois semaines que le système est en place, et il n’y a eu aucun retour à 0, le compteur n’a fait que croitre

et je ne comprends pas car le calcul est censé se faire entre début et fin de semaine…
J’ai cherché sur le forum autour de ces fonctions (j’ai notamment pas mal regardé les sujets sur l’historisation de cumul de pluie tombée avec suivi quotidien, hebdo, etc, c’est un peu similaire) et je n’ai pas trouvé ou je me trompais!
Est ce que vous pouvez m’indiquer ce qui ne vas pas dans mon virtuel ?

Merci d’avance, et désolé si je n’ai pas posté dans la bonne catégorie

Cordialement
Joël

Bonsoir,

Peut-ton voir l’historique de la commande #[Maison][Chauffage Pellets Journalier][quantite_pellet]# ?

Bonjour,

Il faudrait aussi vérifier le mode de lissage pour cette commande.

Bonjour,

Bienvenue parmi les possesseurs de chaudières Okofen qui veulent maitriser la bête avec Jeedom :slightly_smiling_face:

Bonsoir

Merci de vous interesser à ce sujet:

voici l’historique


et le lissage est sur aucun:

J’avais un peu regardé ces points en pensant qu’il fallait baser le calcul sur les données « brutes ». La quantité additionnée à chaque fois est la bonne. c’est juste la « remise à zero » (si on peut appeler ca comme ca) à chaque début de semaine qui me pose souci.

Joël

Bonsoir

oui merci. je balbutie. j’arrive à récupérer les données pour le moment.j’ai essayé d’envoyer aussi, ca à l’air de fonctionner. je ne suis pas encore mur pour faire des scenarios !!

Joël

Bonsoir,

Il y a 2 problèmes :

  • D’une part la remise à zéro n’a pas du tout l’air d’être régulière à chaque début de semaine (10, 18, 24 mai donc vendredi, samedi, vendredi)
  • La commande ne donne pas la consommation par jour mais un index (donc un chiffre qui crois) avant qu’il ne soit remis à zéro

En conséquence ce n’est pas la « sum » qu’il faut récupérer dans statisticsBetween mais le « max » sur la période.
Et ensuite il faut revoir le système de remise à zéro qui ne me semble pas bon.

Bonsoir

C’est là que je ne comprends pas bien. La commande pour récuperer la quantité de pellet est lancée chaque jour à heure fixe. et c’est forcément le max (puisqu’elle est récupérée juste avant que la chaudière ne lance le cycle de remplissage de la trémie). et parfois avec plusieurs jours sans conso (en cette saison la chaudière tourne très peu). Est ce que le pb pourrait venir du fait que « repeter les valeurs identiques » est sur non?

Joêl

Je n’ai pas codé de remise à zéro. Je pensais que statistics between faisait le calcul sur la période précisée. et donc qu’à chaque démarrage d’une nouvelle période il « repartait de zero ». C’est pas comme cela que ca fonctionne?

La fonction fait le calcul de ce qu’on lui demande, il ne fera pas de remise à zéro.

Si dans la base de données il y a les valeurs 1, 3, 6, 2 entre le 20 et le 26 mai, statisticsBetween(#[Maison][Chauffage Pellets Journalier][quantite_pellet]#, sum, first day of this week, last day of this week) fera la somme donc 1+3+6+2=12

Qu’est ce qu’il se passe exactement entre le 18 mai et le 24 mai par exemple ?

Le 18 tu n’as rien consommé donc ça enregistre 0
Le 19 tu as consommé 2kg donc ça enregistre 2
Le 24, c’est une conso de 5 ou 0 ?

Qu’est-ce qu’il se passe entre le 19 et le 24 ? Je ne suis pas sûr de comprendre ce qu’il se passe c’est à dire le passage de de 2 à 5.
Conso de de 2 le 19 puis de 2 le 20, puis de 2 le 21, puis de 2 le 22 puis de 2 le 23 et enfin de 5 le 24 ?
→ Alors dans ce cas oui il va falloir mettre la répétition des valeurs identiques sur « Oui »

J’avoue que j’ai aussi du mal a comprendre le graph, ja’i les même interrogations que @Bison

Je ne suis pas sur de comprendre, désolé.
donc entre le 20 et le 26, j’ai consommé 4 kg le 23, et 5kg le 24. Donc 9kg pour la semaine. Entre le 19 et le 24 à priori la chaudière n’a pas tourné (donc conso 0kg, qui n’apparaissent pas ???). Le « truc » que je ne comprends pas c’est comment fonctionne statisticsbetween.
par exemple semaine1 j’ai : lundi 0, mardi 4, mercredi 0, jeudi0, vendredi 4, samedi 4, dimanche0 et semaine2 j’ai lundi 0, mardi 0, mercredi 4, jeudi 0, vendredi0,samedi 4, dimanche 0:
on est bien d’accord que statisticbetween devrait m’indiquer, par exemple,
le lundi de semaine1 0, et par exemple le mercredi il devrait indiquer 4, etc, jusqu’au dimanche , 12kg
et le lundi ou le mardi de semaine 2 je devrais avoir 0 et le dimanche au soir 8kg? ou j’ai tout faux?
j’avais l’impression que ca avait fonctionné la toute première semaine, avec une conso correcte en fin de semaine, mais le lundi, au lieu d’un retour à la conso du lundi, il avait juste continué d’additionner les conso journalières…(j’avais 9kg le dimanche soir. le lundi j’avais consommé 3kg, je m’attendais donc à voir affiché 3kg le lundi soir…au lieu de cela, j’avais 12kg…)
bref je suis un peu perdu…
je vais refaire mes virtuels…en mettant les repetition etc…

Merci de l’aide !

Oui en utilisant « sum »

Tu peux :

  • regarder l’ID de ta commande
  • aller dans les outils d’administration de la base de données (Réglage > Système > Configuration > Onglet OS/DB puis « Administration Base de données » et saisir la requête SELECT * FROM historyArch WHERE cmd_id = 1000 order by datetime desc en remplaçant 1000 par l’ID de ta commande puis nous poster le résultat.

On verra alors exactement les enregistrements dans la table d’historique (il n’y aura pas celle du jour mais c’est pour bien comprendre ce qui est actuellement enregistré).

Bonjour

OK, merci pour la confirmation.
voici la commande de collecte des infos


Je ne sais pourquoi il y a des trous (du 10 au 14 par exemple), mais les valeurs relevées sont les bonnes. Les doublons c’est surement quand j’ai fai des tests pour comprendre les subtilités.

Est ce que les « trous » peuvent expliquer le fait que statisticsbetween ne « remette pas le compteur à zéro » à chaque début de semaine?

Joël

Les stats vont être compliquées à obtenir, la chaudière ne tourne plus…trop chaud (enfin bon c’est pas le sahara non plus ) :rofl:
Je vais faire un test sur le même modèle avec une mesure de temperature journalière (1 relevé à heure fixe par jour) et je verrai ce que ca donnera.
Retour du test dans 1 semaine
Merci pour votre aide :smiley: :+1:
Joël

Bon alors … prenant par exemple la semaine du lundi 13 au dimanche 19 mai
En tout logique ça devrait correspondre à cette partie :

Lors de la mise à jour du 18/05 à 19h43, sauf erreur de ma part la fonction aurait du faire la somme de 2+3+0+2=7

Mais à première vu le graph indique plutôt un passage à 14 … c’est curieux là, pour le moment je vois pas la logique que ça devrait avoir.
image

Tu pourrais refaire la même requête SQL avec l’ID de la commande qui contient le statisticBetween ?

EDIT : Et active bien la répétition des valeurs sur la commande de base correspondant à ta consommation #[Maison][Chauffage Pellets Journalier][quantite_pellet]# (il faudra le faire pour que la suite puisse être juste)

Oui c’est ca que je ne comprends pas non plus. plus le fait que le 20 on ne redemarre pas à 0 :thinking:

Aie…J’ai vidé l’historique du statisticsBetween pour repartir propre :woozy_face:

Question : le virtuel qui contient la commande statitiscBetween est auto-actualisée en cron à 20h00 tout les jours. Est ce que ca pourrait expliquer l’origine du pb ?

J

:joy:

Bon ben comme ça on est cuit pour l’analyse :face_with_hand_over_mouth:

Je ne vois pas bien comment. La commande aura été mise à jour à 19:43:xx et sera à nouveau recalculée à 20h mais ça ne doit pas poser soucis

On voit bien qu’il n’y a pas toujours de relevé a 0, exemple le 15/05 tu devrait avoir un point 0 en bdd sauf si tu as consommé 2kg comme la veille qui échappe a la BDD a cause de la non répétition.

Oui je pense que c’est juste ça … le 2 a été répété le 15 et non enregistré. C’est l’explication la plus logique et c’est pas un soucis.

Mais pour le coup, tu vois un truc compréhensible avec le graphique de la fonction de stat ?