Dans une variable, ce sera le plus simple je pense : Les variables dans Jeedom. Après, toutes les 10s c’est peut-être un peu lourd pour Jeedom.
Je l’avais fait directement dans ESP Easy avec les rules. J’ai utilisé des « dummy device » pour stocker l’index, et l’information était remontée en MQTT.
Voici ce que j’avais utilisé si ça peut servir :
Rules 1
// GESTION DE LA MISE A JOUR DES INDEX
On AC#IINST do
// Attention : les 10s doivent correspondre au rafraichissement de AC#IINST
// 235V correspond a la tension moy. retenue
if [INDEX#BASE] < 10000
Taskvalueset,5,1,[INDEX_MQTT#BASE] // Recuperation derniere bonne valeur
endif
if [INDEX#JOUR] < 50 and %systime% > 01:00:00
Taskvalueset,5,2,[INDEX_MQTT#JOUR] // Recuperation derniere bonne valeur
endif
if [INDEX#HCHP] < 10000
Taskvalueset,5,3,[INDEX_MQTT#HCHP] // Recuperation derniere bonne valeur
endif
if [INDEX#HCHC] < 10000
Taskvalueset,5,4,[INDEX_MQTT#HCHC] // Recuperation derniere bonne valeur
endif
Taskvalueset,5,1,([INDEX#BASE]+([AC#IINST]*235*10/3600)) // Maj index BASE
Taskvalueset,5,2,([INDEX#JOUR]+([AC#IINST]*235*10/3600)) // Maj index JOUR
if %systime% > 06:00:00 and %systime% < 22:00:00
Taskvalueset,5,3,([INDEX#HCHP]+([AC#IINST]*235*10/3600)) // Maj index HCHP
else
Taskvalueset,5,4,([INDEX#HCHC]+([AC#IINST]*235*10/3600)) // Maj index HCHC
endif
Taskvalueset,4,1,([AC#IINST]*235) // Maj PAPP
Taskvalueset,4,2,([INDEX#JOUR]/1000) // Maj CONSO JOUR
endon
On PZEM#BASE do
Taskvalueset,4,3,([PZEM#BASE]+55637) // PZEM Base avec index corrigé (ne pas le faire directement dans le plugin, bug lorsqu'on coupe l'AC du PZEM)
endon
On Clock#Time=All,00:00 do
Taskvalueset,4,4,([INDEX#JOUR]/1000) // Mémorise conso pour affichier HIER
Taskvalueset,5,2,0 // Remise a zero index jour a minuit
endon
On Clock#Time=All,23:49 do
//Taskvalueset,5,2,13200
endon
Rules 2
// GESTION DE L'ENVOI DES VALEURS
on Clock#Time do
// PINCE AC
if [INDEX#BASE] > 10000
Publish,%sysname%/BASE,[INDEX#BASE] // Publie BASE
endif
if %systime% < 01:00:00
Publish,%sysname%/JOUR,[INDEX#JOUR] // Publie JOUR
endif
if [INDEX#JOUR] > 50 and %systime% > 01:00:00
Publish,%sysname%/JOUR,[INDEX#JOUR] // Publie JOUR
endif
Publish,%sysname%/IINST,[AC#IINST] // Publie IINST
Publish,%sysname%/PAPP,[CONSO#PAPP] // Publie PAPP
if [INDEX#HCHP] > 10000
Publish,%sysname%/HCHP,[INDEX#HCHP] // Publie HCHP
endif
if [INDEX#HCHC] > 10000
Publish,%sysname%/HCHC,[INDEX#HCHC] // Publie HCHC
endif
//if [INDEX#BASE] > 10000 and [INDEX#HCHP] > 10000 and [INDEX#HCHC] > 10000 // Publie AC sur plugin Teleinfo 20190102
// SendToHTTP 192.168.1.XXX,80,plugins/teleinfo/core/php/jeeTeleinfo.php?api=APIKEY&ADCO=20190102&BASE=[INDEX#BASE]&PAPP=[CONSO#PAPP]&HCHP=[INDEX#HCHP]&HCHC=[INDEX#HCHC]&IINST=[AC#IINST]
//endif
// PZEM
if [CONSO#PZEM_BASE_CORR] > 100000
Publish,%sysname%/PZEM_BASE,[CONSO#PZEM_BASE_CORR] // Publie BASE
endif
Publish,%sysname%/PZEM_IINST,[PZEM#IINST] // Publie IINST
Publish,%sysname%/PZEM_PAPP,[PZEM#PAPP] // Publie PAPP
Publish,%sysname%/PZEM_VOLT,[PZEM#VOLT] // Publie VOLT
//if [CONSO#PZEM_BASE_CORR] > 10000 // Publie PZEM sur plugin Teleinfo 004
// SendToHTTP 192.168.1.XXX,80,plugins/teleinfo/core/php/jeeTeleinfo.php?api=APIKEY&ADCO=004&BASE=[CONSO#PZEM_BASE_CORR]&PAPP=[PZEM#PAPP]&IINST=[PZEM#IINST]
//endif
endon
On System#Boot do
Taskrun,6
endon
Par contre il faut faire le tri :
-
En plus de la pince AC, il y avait un PZEM à enlever
-
Lorsque l’esp perd l’alimentation, il perd la valeur des « dummy device ». Du coup, si les valeurs sont trop basses il va rechercher les index sur le serveur MQTT (je pense que j’avais activé l’option « MQTT Retain Msg » de manière à ce que l’esp puisse récupérer les valeurs au redémarrage)
Après, sans aller aussi loin, il serait possible par exemple d’intégrer la conso sur l’esp et d’envoyer une valeur à Jeedom que tous les 1 kWh par exemple. Cela éviterait d’avoir une info qui remonte et doit être traitée toutes les 10s même si dans ce cas il faudra quand même intégrer coté Jeedom.