Thermostat erreur Formule offset

Bonjour
Ce n’est pas moi qui ait fait cette partie mais une personne du community donc je ne sais pas intervenir la dessus ni juger ou non de la pertinence de la formule…

Ok merci, je débute sur la communauté, j’essaye de faire evoluer le plugin.
Comment puis-je faire évoluer le plug-in ou réécrire la formule dans celui-ci?
@sylvouille, j’ai l’impression que tu es a l’initiative de la formule.

Bonjour,

Je suis justement en train de réviser le plugin thermostat en ce moment même.

Je vais prendre en compte cette demande en beta au mieux de mes compétences et des informations que tu as fourni, merci.

Si d’autres experts ont un avis ça m’intéresse aussi bien entendu (@Pierrick par exemple ?)

Bonjour,
la modélisation de l’inertie d’un système de chauffage est un art :slight_smile: .
La formule que j’avais proposée part du principe qu’au delà d’un certain temps de chauffage (seuil de cycle où le chauffage est considéré comme chaud), le radiateur est à sa température maximale. A partir de ce moment là, dès que la chauffe s’arrête, il aura besoin du temps réglé par l’offset pour évacuer sa chaleur. ca donne donc la formule : %chauffe = power calcul + %offsest - (100%-%chauffage cycle précédent). Cette formule n’est sans doute pas irréprochable et si de meilleures sont proposées, tant mieux :slight_smile: ! Le seul écueil que je vois à la formule proposée par @Today2000 c’est qu’un offset est appliqué même en cas de chauffe très courte lors du cycle précédent. Mais à discuter, de mon côté ça reste empirique et intuitif …

Merci pour votre retour.

J’ai avancé dans mes recherches :slight_smile:
Voici la formule mis en place:

Avant:
Ligne 666 /plugins/termostat/core/class

log::add('thermostat', 'debug', $this->getHumanName() . ' : Previous cycle at '.$this->getConfiguration('last_power',0).'%, apply offset : -'.$this->getConfiguration('offset_nextFullCyle').'% + '.(100 - $this->getConfiguration('last_power',0)));
$power -= $this->getConfiguration('offset_nextFullCyle') - (100 - $this->getConfiguration('last_power',0));

Après:

 log::add('thermostat', 'debug', $this->getHumanName() . ' : Cycle précédent '.$this->getCache('last_power',0).'%, offset : -'.$this->getConfiguration('offset_nextFullCyle').'%, Puissance soustraite '.$this->getConfiguration('offset_nextFullCyle') * $this->getCache('last_power',0) / 100 . '%');
 $power -= $this->getConfiguration('offset_nextFullCyle') * $this->getCache('last_power',0) / 100;

@sylvouille,tu peux toujours jouer avec le champs « Seuil de cycle où le chauffage est considéré comme chaud (%) » en cas de periode de chauffe très courte du cycle précédent. et puis maintenant on est proportionnel donc quand on applique un offset sur un cycle très court, on ne réduit quasiment de rien. (50% d’offset de 10% de chauffe = -5% sur la puissance prévue)

++

Si vous êtes d’accord, je veux bien que vous échangiez encore un peu entre vous sur un éventuel affinage du calcul d’offset avant que je me jette dans le code pour y effectuer des modifications ?

J’en profiterais pour revoir les logs en même temps.

Merci à vous 2 pour votre aide et votre expertise.

Oui, effectivement, ça me semble bien comme ça ! Comme quoi à plusieurs cerveaux on arrive toujours à un résultat optimal :smiley:

:+1:

J’ai également mis en place l’arrondi.

$power -= $this->getConfiguration('offset_nextFullCyle') * $this->getCache('last_power',0) / 100;
                                $power = round($power,2);
                                log::add('thermostat', 'debug', $this->getHumanName() . ' : Cycle précédent '.$this->getCache('last_power',0).'%, offset : -'.$this->getConfiguration('offset_nextFullCyle').'%, Puissance soustraite '.round($this->getConfiguration('offset_nextFullCyle') * $this->getCache('last_power',0) / 100,2) . '%, Puissance : '.$power.'%');

Toutefois j’ai l’impression que l’application de la formule du temps de chauffe minimum passe avant:
Temps de chauffe mini : 30%
Si puissance 50% - Offset 25%= > Temps de chauffe 25% alors qu’on ne devrait pas chauffer.
Mais je ne suis pas sur.

Je vous confirme que le temps de chauffe reduit de l’offset peut etre en dessous du temps de chauffe minimum.
Il faudra modifier pour que le temps de chauffe minimum passe après l’offset et bloque si besoin le déclanchement de la chaudiere

Du coup quelle formule je dois appliquer dans la prochaine beta ?

En ce qui me concerne, je pense que la formule proposée :

peut être retenue. En n’appliquant l’offset que si le cycle précédent était plus long que le « Seuil de cycle où le chauffage est considéré comme chaud », et en faisant la vérification du temps de chauffe minimum à l’issue de ce calcul pour vérifier s’il faut lancer la chauffe ou non.

OK y’a quelques précautions à pendre à différents endroits dans le code en contrepartie.

Je me le suis noté pour revoir ce point un peu plus tard quand j’aurai le temps de bien faire.

J’ai ajouté des logs à ce niveau déjà conformément à la demande sur le 1er post. Il y a pas mal de modifs à venir, je préfère aussi que tout soit validé avant d’attaquer la modification des calculs d’offset dans l’immédiat.

Je peux juste préciser que cette partie « (previous cycle * offset) /100 » doit rester en option sur le calcul.
Cette option est intéressante lorsque l’utilisateur préfère un cycle long (Éviter les on/off).
Une sonde réactive et précise + un cycle rapide + un coefficient de chauffe juste sont les ingrédients qui permettent pour moi d’être plus précis qu’un offset sur le cycle précédent.
D’ailleurs, si c’est possible de baisser le cycle min à 10 minutes au lieu de 15, afin d’être encore plus réactif.

Bonsoir,
oui, bien entendu sous la forme d’une option c’est l’idéal. Après je pense que plus encore que le souhait de l’utilisateur, c’est l’inertie de son système (inertie propre du radiateur + taille de la pièce) qui va déterminer le choix entre cycle court et détermination d’un offset. En effet, avec mes radiateurs qui mettent 30-40min à évacuer leur chaleur, si je fais des cycles courts quand le thermostat arrête la chauffe il est déjà trop tard et la consigne est systématiquement dépassée.

Si la puissance est supérieur 100%, tu n’auras pas d’arrêt de chauffe à chaque cycle.
Si tu met le mini à 15 minutes, tant que la puissance est supérieur à 100%, il n’y a pas d’arrêt. Le coefficient de chauffage va également joué un rôle important. Si il est trop élevé, l’inertie de ton chauffage va provoquer un dépassement de la consigne. En baissant trop ce coefficient, tu peux même au contraire avoir du mal à arriver à la consigne.
As tu essayé de passer un cycle de 15 minutes avec un coefficient de chauffe faible?

A mon sens le problème de la prise en compte de l’inertie n’est pas réglé par des cycles courts. En effet, tant que la consigne n’est pas atteinte, le calcul continuera à mettre des cycles de chauffe à 100%, et quand la température de consigne sera atteinte, le thermostat arrêtera la chauffe mais il sera trop tard, les radiateurs diffuseront leur chaleur pendant encore 30/40 min, ce qui fera dépasser la consigne. Il ne peux y avoir qu’un système d’anticipation qui fonctionne, et cette anticipation est justement le rôle de l’offset : « je sais que le radiateur a chauffé la majeur partie du cycle précédent, donc il va encore relarguer sa chaleur pendant x% du cycle à venir, donc je diminue d’autant le calcul de puissance nécessaire du cycle à venir ».
Sauf à réduire fortement le coefficient, mais dans ce cas la chauffe est très progressive. Et j’avoue qu’un des grands intérêts que je trouve à ce plugin par rapport à la régulation propre au radiateur, c’est de pouvoir retarder le début de la chauffe, de faire partir les radiateurs à fond et d’atterrir pile à la consigne voulue au moment voulu … Ce qui permet d’économiser de l’énergie …
Juste une illustration pour montrer ce que ça donne chez moi lorsque c’est bien réglé :
Capture d’écran du 2020-12-15 20-09-20
Le smart start est activé, et la consigne doit être atteinte à 18h30. On voit qu’on est proche de la perfection :slight_smile: .

Est ce que tu peux mettre l’impression écran des paramètres avancé du plugin de ton équipement.

Voici !

Bonjour,

je rebondis longtemps après sur ce post au sujet de la durée du cycle. Tout dépends des configurations peut être. Chez moi avec une pièce volumineuse (35m²) une mauvaise isolation (bâtiment de la reconstruction) et des radiateurs radian et bain d’huile (4000W) le cycle de 15min semble déjà trop long.
plus de 5 minutes sans chauffe quand il fait froid (- de 5°C) et la température de la pièce dégringole vite. Il est ensuite difficile de stabiliser la courbe pour le thermostat.
Je ne suis pas un expert peut être ais je mal configurer aussi mais je reviens souvent à me dire que réduire ce paramètre de temps de cycle en dessous de 15 min réglerais mon problème.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.