Pb calcul conso totale

Bonjour à tous !

J’ai un soucis avec le plugin Energy ; la conso totale affichée sur le graphe ne correspond au cumul de la conso totale de mes objets.
Ma config Energy est toute bête ; j’ai deux objets « Energie Etage » et « Energie Cuisine » chacun intégrant deux prises électriques Aotec ZW715.

image

Voici la conf de chacun de ces objets :

Mon soucis est que quand je me rends dans la partie visualisation du plugin Energie (Accueil → Energie), le graph Consommation indique un cumul total complétement faux.

Exemple ci dessous, où le cumul totale de consommation indique 36.62kWH pour la journée du 7/11/2020, alors qu’il devrait être de 2.10 + 0.59 soit 2.69kWh.

J’ai déjà essayé de supprimer complétement les objets Energie et de les recréer mais ca me fait la même erreur.

Merci d’avance pour votre aide :slight_smile: et belle journée à tous !

Adrien

Bonjour,
Je suis exactement dans la meme situation que toi. J’étais partie pour ouvrir un sujet mais j’ai vu le tien.
J’ai egalement supprimé tout l’historique de mes différents objets et meme des compteurs de consommation des mes prises electriques. Mais le resultat reste inchangé :

Bonjour

moi aussi !

avez vous trouvé quelque chose ?

cdt

@Aurelien Bonjour, je constate encore le soucis, tu pourrais y jeter un oeil stp ?

Ou @Loic
Comment peux t’on avoir un dev qui regarde ce soucis :slight_smile:

Bonjour,
Malheureusement il n’y a pas tant de dev que ca chez jeedom et on est tous debordé. La demande est bien noté mais on peut pas te dire quand quelqu’un va regarder ca peut etre demain comme dans 6 mois…

Bonjour Loïc

Aucun soucis , le plus important soit que le sujet soit noté chez vous
Je reste à votre disposition pour plus d’information

Cordialement

Bonjour

j’ai commencé à regarder un peu le code du plugin Energy

un truc m’interpelle, je vois ceci

foreach ($consumptions as $name => $consumption) {
					if ($energy->getConfiguration('totalCounter') == 0 && $consumption > 0) {
						$cmd = $energy->getCmd(null, 'consumption' . ucfirst($name));
						if (is_object($cmd)) {
							
							$previous = $cmd->execCmd();
							$cmd->setCollectDate($datetime);
							$cmd->event($consumption + $previous);
							log::add('energy', 'debug', '   > Update de la consommation de la sous-cat : ' . $name . ' : ' . $consumption . ' + ' . $previous . ' = ' . ($consumption + $previous) . ' kWh) ');
						}
					}
					$totalConsumption += $consumption;
					log::add('energy', 'debug', '   > Update de la consommation TOTALE : ' . $totalConsumption . ' Wh (ajout de la conso : ' . $name . ' de ' . $consumption . ' kWh) ');
				}

On parcours les consommations des sous-catégorie (multimedia/electroménagers/etc…) et si « l’équipement » n’est pas un compteur qui donne un total, alors on le met à jour .
mais la façon dont on le met à jour me perturbe, on prend son historique (previous) et on y ajoute la nouvelle consommation.

Sauf que ca ne veut rien dire selon moi !!!
Une consommation c’est pas une puissance, ya une notion d’heure !

on est sur un script CRON15 , donc si lors du premier quart d’heure on estime consommer 2kwH, si lors du second on estime a 2kwH encore, on a pas un appreil a 4kwH , mais bien toujours 2kwH…

bref , qu’en pensez vous ?

Et ce bout de code c’est pareil - je ne le comprend pas,

if ($confEnergy['consumption'] != '') {
						$previous = $energy->getConfiguration('previous' . $key, 0);
						$value = floatval(jeedom::evaluateExpression($confEnergy['consumption']));
						if (($value - $previous) >= 0) {
							$consumptions[$confEnergy['category']] += ($value - $previous);
							$energy->setConfiguration('previous' . $key, $value);
							log::add('energy', 'debug', '      > Update de la consommation de la categorie (via relevé) : ' . $consumptions[$confEnergy['category']] . ' kWh');
						}
					}

on parcours nos équipements dans un « équipements energy », si l’équipement en question est apte a donner sa puissance (perso je le fait pas moi) on peut saisir la commande de l’équipement
Mais ce qu’en fais le plugin est un mystère , autant le bout de code qui gère si on le fait pas est bon (il le calcul via la puissance , il regarde la puissance toute les 15min et extrapole)
Mais si il est déclaré je comprend pas, le plugin regarde la consommation d’il y a 15min (supposons 1kWh) , regarde la conso actuel (supposons 0.5kWh) puis fais un control que je comprend pas, il regarde si on somme plus que il y a 15 min (sinon rien est fait) , alors on update la valeur de conso de notre catégorie, via un nouveau calcul chelou. Bref si quelqu’un comprend …

Bonjour,
C’est moi qui est fait le code mais je n’ai jamais vraiment compris ce que j’ai fait c’est beaucoup trop compliqué pour moi ce genre de chose et je suis complètement dépasser.

A mon avis tous ce plugin est complètement foireux mais malheureusement on a personne pour ce pencher dessus et le refaire. Perso c’est deja la 3eme version d’un plugin énergie refait de 0 a chaque fois, et a chaque fois c’était nul ce que j’ai fait donc j’abandonne.

Bonjour Loic

Le plugin est pas à mettre à la poubelle, il y a juste des bouts de code a rectifier.
Je vais voir si je peux m’y pencher un peu, j’aimerais bien avoir un truc qui donne les bons chiffres :slight_smile:

je te tiendrais au courant pour une éventuelle Beta si j’arrive a faire un truc cool

cdt

2 « J'aime »

bon, je me suis replongé dans la notion de consommation, je crois que je me plante aussi, pff galère a comprendre !

Toutes mes excuses @Loic , j’ai appelé un pot électricien , je comprenais mal la notion de consommation.
J’ai accusé à tort des bouts de ton code qui en fait semble OK

Je pense avoir saisie désormais, faut donc que je trouve l’origine du bug, car il y a en forcement un vu le graphique qui déraille .

1 « J'aime »

Je poursuis

En fait la consommation , qui s’exprime en Joule (W/s) ou en kWh, ne peux que augmenter (j’avais absolument pas saisi ce point la)

Donc si j’ai un équipement : Radiateur 1
a 10H00 il consomme 1000W (1kw)
a 10H15 il consomme 2000W
a 10H30 il consomme 0W

je vais a 10h15 mettre une conso à : 1000W x 15min / 60 (pour passer en H) / 1000 (pour passer en kWh : donc conso de 0.25kWh
puis a 10H30 , je rajoute a 0.25 la conso des 15derniere minute soit 2000x15/60/1000 (=0.5) , donc la nouvelle conso devient 0.75kWh

etc etc
Et cela , @Loic tu l’as parfaitement bien géré dans le code !

par contre je ne comprend pas le bout de code suivant
fichier : ‹ energy.class.php › dans ‹ public static function getGraph( ›

pourquoi on a

$cmd = $energy->getCmd(null, 'consumptionTotal');
				if (is_object($cmd)) {
					foreach ($cmd->getHistory($_startTime, date('Y-m-d 23:59:59', strtotime($_endTime))) as $value) {
						$datetime = floatval(strtotime($value->getDatetime() . " UTC")) * 1000;
						if (isset($return['totalConsumption'][$datetime])) {
							$return['totalConsumption'][$datetime][1] += floatval($value->getValue());
						} else {
							$return['totalConsumption'][$datetime] = array($datetime, floatval($value->getValue()));
						}
					}
				}

on va pas réadditionner ce qui l’a deja été en vu de l’afficher dans le graphique ! on doit juste prendre le dernier de la date voulu .

tu en pense quoi @Loic ? je crois que le bug du pic vient de la

Ok si un électricien a confirmer c’est cool.

Après pour le bout de code je crois c’est pour la consommation total de tout, faudrait le code avant pour etre sur mais a mon avis c’est ca car de toute facon tu as pas pour une meme commande 2 fois une valeur pour une meme date.

1 « J'aime »

Bonjour @Loic

Bon, j’ai tout corrigé

Alors j’ai du modifier 2 fichiers
pannel.js et energy.class.php

je t’envoi ca en MP

cdt

en fait @Loic tu accepte pas les MP

alors voila les fichiers ici

pannel.js (dans desktop)
panel.txt (10,3 Ko)

et

dans core class
energy.class.txt (27,4 Ko)

Super merci pour le retour ca sera dans la beta de demain.
J’ai pas pu tester (j’ai pas le plugin en question) mais j’ai juste corrigé un soucis de virgule la : 'startHp2' => intval(ltrim(str_replace(':', '', config::byKey('startHc2', 'energy',-1)), '0')),

A voir si ya pas d’autre probleme

Merci,

quant au probleme de virgule, je pense que c’est un accident de clavier si ca vient de moi, dsl !

cdt

Alors , vous en pensez quoi de la Beta ?

Salut,
Je suis pas sur que tu es beaucoup de retour malheureusement…