Bonjour,
Je suis équipé d’un Eco Compteur LEGRAND (ref. 412000) pour remonter ma consommation électrique.
J’ai installé le plugin ecocompteur afin de remonter ma consommation dans Jeedom.
En raison d’un bug sur l’écocompteur, il est parfois nécessaire de le réinitialiser, ce qui a pour conséquence de remettre à 0 tous les compteurs.
J’ai créé un scénario dans Jeedom qui va me permettre de réinitialiser l’ecocompteur mensuellement. Mais pour ne pas « perdre » les valeurs des commandes, je vais devoir modifier manuellement les commandes via la « Formule de calcul » pour y ajouter la valeur avant réinitialisation :
Est il possible d’automatiser cela et de le faire dans le scénario Jeedom plutôt que de devoir le faire à la main ?
Dans le scénario, il faudrait la formule suivante : #value#+XXX+YYY
XXX étant la valeur de l’index avant la réinitialisation précédente. A la 1ère réinitialisation XXX est donc à 0.
YYY étant la valeur de l’index avant cette réinitialisation.
Merci pour la commande elle fonctionne.
Pour modifier l’index du circuit 5, j’ai testé : cmd::byString('#[Maison][Eco-Compteur][csv - energie_circuit5]#')->setConfiguration('calculValueOffset', "#value#+10")->save();
Par contre, à la place de mettre une valeur fixe comme « #value#+10 », je voudrais que le « 10 » corresponde à la valeur de #[Maison][Eco-Compteur][csv - energie_circuit5]# avant la réinitialisation du compteur.
Comment puis-je faire cela?
Même si je ne compte pas le faire mensuellement comme toi, je n’ai également pas le choix à cause du bug que de reseter mon écocompteur à intervalle régulier.
Ton scénario me facilitera la vie pour la mise à jour des index
Est ce que tu le réinitialise manuellement ou via un scénario ?
Si jamais tu le fais à la main et que tu souhaites le faire via un scénario voici le code complet. Il faudra juste modifier l’adresse ip de ton eco compteur et le nom de tes commandes de l’éco compteur.
// Mise à jour de la formule de calcul de la commande [csv - energie_circuit1]
$index1 = cmd::byString('#[Maison][Eco-Compteur][csv - energie_circuit1]#')->execCmd();
$scenario->setLog('Valeur [csv - energie_circuit1] avant reset : '.$index1);
cmd::byString('#[Maison][Eco-Compteur][csv - energie_circuit1]#')->setConfiguration('calculValueOffset', "#value#+$index1")->save();
// Mise à jour de la formule de calcul de la commande [csv - energie_circuit2
$index2 = cmd::byString('#[Maison][Eco-Compteur][csv - energie_circuit2]#')->execCmd();
$scenario->setLog('Valeur [csv - energie_circuit2] avant reset : '.$index2);
cmd::byString('#[Maison][Eco-Compteur][csv - energie_circuit2]#')->setConfiguration('calculValueOffset', "#value#+$index2")->save();
// Mise à jour de la formule de calcul de la commande [csv - energie_circuit3]
$index3 = cmd::byString('#[Maison][Eco-Compteur][csv - energie_circuit3]#')->execCmd();
$scenario->setLog('Valeur [csv - energie_circuit3] avant reset : '.$index3);
cmd::byString('#[Maison][Eco-Compteur][csv - energie_circuit3]#')->setConfiguration('calculValueOffset', "#value#+$index3")->save();
// Mise à jour de la formule de calcul de la commande [csv - energie_circuit4]
$index4 = cmd::byString('#[Maison][Eco-Compteur][csv - energie_circuit4]#')->execCmd();
$scenario->setLog('Valeur [csv - energie_circuit4] avant reset : '.$index4);
cmd::byString('#[Maison][Eco-Compteur][csv - energie_circuit4]#')->setConfiguration('calculValueOffset', "#value#+$index4")->save();
// Mise à jour de la formule de calcul de la commande [csv - energie_circuit5]
$index5 = cmd::byString('#[Maison][Eco-Compteur][csv - energie_circuit5]#')->execCmd();
$scenario->setLog('Valeur [csv - energie_circuit5] avant reset : '.$index5);
cmd::byString('#[Maison][Eco-Compteur][csv - energie_circuit5]#')->setConfiguration('calculValueOffset', "#value#+$index5")->save();
// Requêtes pour réinitialiser les compteurs "csv - energie_circuit" 1 à 5 de l'ecocompteur
$req1 = 'curl "http://192.168.1.9/wp.cgi?wp=536+2+12724+-1+-1+4+0.0"';
$req2 = 'curl "http://192.168.1.9/wp.cgi?wp=536+4+12724+-1+-1+4+0.0"';
$req3 = 'curl "http://192.168.1.9/wp.cgi?wp=536+6+12724+-1+-1+4+0.0"';
$req4 = 'curl "http://192.168.1.9/wp.cgi?wp=536+8+12724+-1+-1+4+0.0"';
$req5 = 'curl "http://192.168.1.9/wp.cgi?wp=536+10+12724+-1+-1+4+0.0"';
/$scenario->setLog('DEBUG REQUETE : '.$req1);
$output1 = shell_exec($req1);
$scenario->setLog('DEBUG RETOUR : '.$output1);
$scenario->setLog('DEBUG REQUETE : '.$req2);
$output2 = shell_exec($req2);
$scenario->setLog('DEBUG RETOUR : '.$output2);
$scenario->setLog('DEBUG REQUETE : '.$req3);
$output3 = shell_exec($req3);
$scenario->setLog('DEBUG RETOUR : '.$output3);
$scenario->setLog('DEBUG REQUETE : '.$req4);
$output4 = shell_exec($req4);
$scenario->setLog('DEBUG RETOUR : '.$output4);
$scenario->setLog('DEBUG REQUETE : '.$req5);
$output5 = shell_exec($req5);
$scenario->setLog('DEBUG RETOUR : '.$output5);
Je précise que je ne m’y connais pas en php donc il y a peut être plus simple ou plus propre mais en tout cas cela fonctionne
Ahhhhhh tu peux reinitialiser via api ??
Je faisais en manuel par le petit trou de reset de mon côté ce qui oblige à enlever le plastron du tableau électrique.
Ça corrige le bug « il manque des donnés dans le csv par dépassement mémoire » (je ne sais pas comment mieux décrire le bug) ton appel api ?
Oui. C’est plus simple que de le faire en manuel.
Il y a une requête par circuit.
Par contre je ne réinitialise pas les 2 compteurs à impulsions car ils ne sont pas impactés par le bug.
Cela corrige le bug d’écart qu’il y a entre la consommation réelle et la consommation mesurée par l’éco compteur.