Difficulté à compter les consommations PAC

Bonjour @superbricolo

Je misère un peu sur le suivi conso.
De base tout fonctionne bien !
Pour entrer dans les détails, j’ai un parent « Général » qui contient 2 enfants « Solaire » et « PAC ».
Général est configuré comme suit :

PAC est configuré comme ceci :

Solaire, ce n’est pas l’objet de ma demande.
Depuis quelques temps je cherche à distinguer pour ma PAC le chauffage de la production ECS.
Ma PAC étant connectée, j’ai l’info de savoir si je suis en chauffage ou en ECS.
La mesure de la conso se faisant par un TORE j’ai une seule mesure pour la PAC quelque soit son mode de fonctionnement.
Côté suiviconso, j’ai créé 2 enfants à mon équipement « PAC » qui sont « Chauffage » et « ECS ».

J’ai créé un virtuel « PAC Energy Counting » avec comme commandes info :
image

Ce qui me permet de configurer les enfants avec les commandes infos du virtuel :
ECS :

Chauffage :

Ensuite, pour le comptage à proprement parlé, un scénario affecte aux commandes du virtuel la conso de la PAC suivant le mode. il est déclenché par événement sur la commande « [AE_Home][Ecocompteur][Chauffage] » qui correspond à PAPP de la PACC. Si ça peut aidé voici le code du scénario :

$var_Heating = "[Buanderie][PAC Energy Counting][Heating]";
$var_Heating_Conso = "[Buanderie][PAC Energy Counting][Heating Conso]";
$var_ECS = "[Buanderie][PAC Energy Counting][ECS]";
$var_ECS_Conso = "[Buanderie][PAC Energy Counting][ECS Conso]";
$var_Conso = "[AE_Home][Ecocompteur][csv - energie_circuit2]";
$var_Conso_Old = "[Buanderie][PAC Energy Counting][Old PAC Conso]";
$var_PAPP = "[AE_Home][Ecocompteur][Chauffage]";

$Tarif = cmd::byString("#[AE_Home][Suivi_HPHC][PTEC]#")->execCmd();
$Mode_Chauffage = cmd::byString("#[Buanderie][PAC][Fonction]#")->execCmd();
$Type = "info";
$PAPP = cmd::byString("#".$var_PAPP."#")->execCmd();
$Conso = cmd::byString("#".$var_Conso."#")->execCmd();
$Conso_Old = cmd::byString("#".$var_Conso_Old."#")->execCmd();
      if($Mode_Chauffage == "Eau Chaude") {
           $Mode = "ECS";
           $ECS_Conso = cmd::byString("#".$var_ECS_Conso."#")->execCmd();
           $MyConso = $ECS_Conso + $Conso - $Conso_Old;
           cmd::byString("#".$var_ECS_Conso."#")->event($MyConso);
           cmd::byString("#".$var_Heating."#")->event(0);
           cmd::byString("#".$var_ECS."#")->event($PAPP);
       } else {
           $Mode = "Heating";
           $Heating_Conso = cmd::byString("#".$var_Heating_Conso."#")->execCmd();
           $MyConso = $Heating_Conso + $Conso - $Conso_Old;
           cmd::byString("#".$var_Heating_Conso."#")->event($MyConso);
           cmd::byString("#".$var_Heating."#")->event($PAPP);
           cmd::byString("#".$var_ECS."#")->event(0);
       }
cmd::byString("#".$var_Conso_Old."#")->event($Conso);

Le soucis au final c’est que je n’ai pas vraiment le résultat souhaité :frowning:
Si je prends rien que sur ce qui c’est passé aujourdhui je n’ai pas le bon rendu, je dois mal comprendre le fonctionnement et la configuration des équipements sur suivi conso.
Au niveau de la PAC j’ai ceci qui correspond à ma production d’eau chaude :

image

Côté des enfants j’ai pour ECS :

image

et pour Chauffage :

image

En gros les consos se retrouvent plutôt sur chauffage que sur ECS…
Il me semble avoir aperçu que si la production ECS allait au delà de 1 heure (de 3h00 à plus de 4h00) alors j’avais du comptage sur l’enfant ECS. ce qui signifierait qu’il faut attendre l’heure pleine avant de remettre à zéro, mais j’avoue que je ne suis pas sur de moi sur ce coup et ça reste flou.

Si tu as un moment pour jeter un œil et si tu vois des erreurs dans ce que je fais je suis bien sur preneur.
par avance merci.

Bonjour,

As-tu historisé les commandes de ton virtuel « PAC Energy Counting »

Si oui peux-tu déjà poster l’historique des commandes « ECS Conso » / « ECS » et « Heating Conso » / « Heanting »
En toute logique elle devrait tracer les mêmes courbes que ce que l’on voit sur suivi-conso.

Restera, je pense, à regarder le scénario à la recherche d’une correction à apporter.

Hello, oui historisé, le rendu n’est pas tout à fait aussi harmonieux du fait du lisage des valeurs je pense

C’est pas évident de ce rendre compte là en effet …
On va supposer que c’est la même chose.

J’ai une première remarque : Heating et ECS sont en wh alors que ça devrait plutôt être des W (c’est une puissance instantanée que tu récupères de l’écocompteur).

Est-ce que tu as analysé les logs de ton scénario notamment pour voir les moments où il y a bascule entre « Eau Chaude » et l’autre mode. Au passage, est-ce que justement il n’y a bien que 2 modes possible. Comme tu as mis un « else », si jamais le mode n’est pas « Eau Chaude » les commandes Heating seront incrémentées alors qu’il ne faudrait pas ?

Ah oui très juste petite boulette de saisie d’unité sur la config du virtuel. Merci.
Le mode est une traduction en texte de la valeur renvoyée par la PAC :slight_smile: je gère pour ce mode en texte 3 valeur : Chauffage, ECS, Arrêt.
J’avais pris le parti de mettre Arrêt sur chauffage, puisqu’il s’agit du mode veille de la PAC (conso de 9w en général ^^). mais je peux en effet faire évoluer pour être certain de ne traiter que ces 3 cas avec un else if au lieu du else.
Même si une autre valeur de Mode provoquerait du sur comptage sur le Chauffage, cela n’explique pas du tout pourquoi j’ai rien du tout sur la partie ECS :wink:
Mon scénario contient quelques lignes de plus que ce que j’ai posté qui me permettent de stocker dans un fichier de log, le mode, la conso etc. je vois bien du ECS chaque nuit que de l’ECS est produite.

Et dans ces lignes de logs (que l’on peut voir ?) il y a bien le bon update des commandes, tu vois bien la consommation évoluer sur la bonne commande durant la nuit ?

Si tu cliques sur le bouton « tester » en fasse de chaque équipement, tu as les bonnes valeurs ?

Oui j’ai les valeurs.
et voici le fichier avec pour chaque ligne $Message = $Tarif." comptage ".$Mode." = ".$PAPP." - Conso = ".$MyConso;
Datas_Energy.txt (71,3 Ko)

Ok donc j’analyse juste la partie ECS pour le 30/08 (le graphique que tu as montré).

[2023-08-30 03:03:03][INFO] : HC comptage ECS = 1579 - Conso = 1971.249
....
[2023-08-30 03:44:03][INFO] : HC comptage ECS = 2277 - Conso = 1971.249

L’écocompteur n’a remonté aucune consommation (1971.249-1971.249 = 0) ente 03:03:03 et 03:44:03, ce qui est normal dans son fonctionnement puisque les valeurs de consommations sont mise à jour toutes les heures et dans ce cas là, ton ECS c’était arrêté avant 04:00:00 donc avant le prochain refresh.

Comme tu n’as pas encore eu de nouveau passage en mode ECS depuis, le scénario n’a pas pu mettre à jour la nouvelle valeur issue de l’écocompteur et donc … suivi-conso n’en a pas encore connaissance.

EDIT : J’essai de voir pourquoi ça a l’air imputé à Heating …
Oui donc effectivement tout ce qui a été chargé sur la commande pendant la consommation de ECS est envoyé sur Heating. C’est bien coté scénario qu’il y a un truc à faire. Il faut gérer 2 commandes « Old », une pour la conso ECS et une autre pour la conso Heating :wink:

1 « J'aime »

ok je teste ça et je reviens ici après quelques journées de tests ^^
merci pour ton aide, j’avoue que je n’arrivais plus à avoir le recul pour voir où se situait le soucis.

EDIT : en première approche, je pense que mon scénario devra évoluer parce que même avec 2 commande OLD, quand je suis dans un mode Heating, je ne calcule pas les éléments du mode ECS.
à voir

Oui, c’est juste, j’ai été un peu vite. Le mieux est surement d’ajouter une commande info (Dernier Mode) qui va indiquer à ton scenario vers quelle commande (ESC ou Heating) envoyer la différence de conso puis de modifier cette nouvelle commande qu’une fois la mise à jour faite. Enfin faut se poser dessus, là je dois passer à autre chose, bon codage :slight_smile:

Quoi ? tu ne corriges pas à ma place ? :stuck_out_tongue:
merci encore, j’avais déjà 2 déclencheurs à mon scénario (la puissance et la conso) mais je ne faisais rien dans le cas de la conso.
Suite dans quelques jours

J’arrive après la bataille, et je suis complètement d’accord avec l’analyse faite. Bon courrage