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.
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 et belle journée à tous !
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,
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…
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…
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.
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
je te tiendrais au courant pour une éventuelle Beta si j’arrive a faire un truc cool
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 .
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( ›
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.
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')),