Demande : calculer une puissance cumulée

Tags: #<Tag:0x00007f3851fd5850> #<Tag:0x00007f3851fd5580> #<Tag:0x00007f3851fd5440>

Bonjour
Je me suis equipé de petit module emontx shield à monter sur des arduino ( voir site openenergymonitor) qui me renvoi des puissance electrique intstantanées ( pince ampermetrique et mesur de tension)
Je recupere les valeurs via le plugin ESPeasy
j’ai parametré une remonté toutes les 10 s
dans un premier temps je voudrai intégrer cela dans le temps pour me faire des kW.h
ensuite j’y appliquerai le tarif elec en fonction de l’heure pour une estimation budgétaire

Mais voila…maintenant je n’y arrive pas
j’avais imaginé un scenario qui toutes les heures additionerai les valeurs mais apres ça stocke les valeurs où ?

faut-il que je m’ y prenne autrement ?
merci pour vos suggestion

avec le plugin suivi conso ?

bonsoir
j’essai sans plugin payant
payer sans savoir si cela convient reellement au besoin…

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 :

image

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.

super, je regarde ça ce soir pour adapter ça à mon système
Merci @seb821

bonjour
super j’arrive à faire les bases et je l’ai adapté à mon système ( mesure de tension et rendu direct en puissance) pour avoir les cumuls HC HP

Je n’ai pas intégré la partie MQTT, car je ne comprenais pas trop le fonctionnement, ni la rules 2 qui gère les envoies…là j’ai pas compris non plus…sans doute en lien avec le MQTT.

à quoi sert de limiter les envoi vers jeedom ? le MQTT ? pourquoi ne pas laisser jeedom se charger de l’historisation ?
Tu as utilisé quoi comme serveur NTP ? , je n’en trouve pas qui adapte à l’heure hiver/été française , je suis en décalage de 2 heures sur un serveur français

Pour l’utilisation du MQTT, c’est juste que tous mes esp fonctionnent comme ça, en passant par le serveur MQTT. Et Jeedom récupère les infos sur le serveur. J’y trouve plusieurs avantages :

  • Plus simple à configurer : pas besoin de créer des virtuels et de récupérer les ID puis de les mettre dans l’esp. Dès qu’un esp publie quelque chose sur le serveur MQTT, crée l’objet et/ou la commande dans Jeedom
  • On peut faire des liens directs : un esp peut récupérer l’info d’un autre, sans passer par Jeedom
  • Le jour où je veux essayer une autre plateforme domotique, ou par exemple pour préparer le passage à la v4, j’ai juste à faire pointer ce nouvel équipement vers le serveur MQTT pour qu’il aille chercher les informations.

Pour l’historisation, elle bien faite sous Jeedom. Le choix d’avoir une « rules2 », c’est uniquement de manière à pouvoir gérer exactement ce que je veux envoyer et quand. D’ailleurs, on voit dans la colonne « Ctr » que je n’ai pas défini de contrôlleur, et donc que ESP Easy n’envoie pas automatiquement les données. De mémoire, le problème que c’est eu, c’est qu’en cas de redémarrage de l’esp, tous les index (BASE par exemple) repartaient à zéro. D’où les histoires de récupération des valeurs sur le serveur MQTT et de non-publication si elle sont « petites ». Après, c’est ce dont je me souviens, mais ça date un peu.

bonjour
moi j’ai mis un contrôleur générique http , donc ça envoie vers jeedom sans mqtt et je pourrai aussi changer de plateforme si le besoin s’en fait ressentir.
Par contre effectivement je ne choisi pas ce que j’envoi, tout est envoyer, mais je ne vois pas le problème, alors je laisse comme ça.
en tout cas merci pour ton aide et les exemples fournit.
je vais maintenant m’attacher au rendu visuel
Merci beaucoup