Plugin thermostat : tentative de mieux prendre en compte l'inertie des radiateurs

Bonjour LoÏc,
le temps s’est vraiment radouci ici, donc je n’ai pas eu de gros cycles de chauffe pour tester complètement les modifs. En tous cas pour l’instant tout fonctionne bien. Je te tiens au courant dès que le temps se refroidi …

Salut,
Pas de soucis je préfères prendre le temps sur les mises a jour du plugin surtout en hivers

Oh oui, je crois que c’est une bonne idée :wink: !

Bonsoir,
il y a encore un problème d’application de l’offset même si le cycle précédent n’était pas à 100%. Voici le log du premier cycle de chauffe de ce soir (entouré en rouge sur la capture d’écran qui suit). L’offset s’applique alors que le cycle précédent (du matin) n’était pas à 100%, et surtout était plusieurs heures avant.

[2019-12-10 17:07:06][DEBUG] : [salle d eau][chauffage salle d eau] : Thermostat::pull => mode smart : Array (     [thermostat_id] => 74     [smartThermostat] => 1     [next] => Array         (             [date] => 2019-12-10 18:15:00             [event] => Array                 (                 )              [consigne] => 19.5             [calendar_id] => 75             [cmd] => 607             [type] => mode             [schedule] => 2019-12-10 17:07:00         )  )
[2019-12-10 17:07:06][DEBUG] : [salle d eau][chauffage salle d eau] : next info : Array (     [date] => 2019-12-10 18:15:00     [event] => Array         (         )      [consigne] => 19.5     [calendar_id] => 75     [cmd] => 607     [type] => mode     [schedule] => 2019-12-10 17:07:00 )
[2019-12-10 17:07:06][DEBUG] : [salle d eau][chauffage salle d eau] : Type mode envoi de la commande : 607
[2019-12-10 17:07:06][DEBUG] : [salle d eau][chauffage salle d eau] : Debut calcul temporel
[2019-12-10 17:07:06][DEBUG] : [salle d eau][chauffage salle d eau] : Reprogrammation automatique : 2019-12-10 18:04:00
[2019-12-10 17:07:06][DEBUG] : [salle d eau][chauffage salle d eau] : Smart schedule
[2019-12-10 17:07:06][DEBUG] : [salle d eau][chauffage salle d eau] : Plugin agenda detecté
[2019-12-10 17:07:07][DEBUG] : [salle d eau][chauffage salle d eau] : Temp in : 16 - Temp out : 6.2 - Consigne : 19.5
[2019-12-10 17:07:07][DEBUG] : [salle d eau][chauffage salle d eau] : Direction : 1
[2019-12-10 17:07:07][DEBUG] : [salle d eau][chauffage salle d eau] : Power calcul : (3.5 * 30) + (13.3 * 1.1) + 0 = 119.63
[2019-12-10 17:07:07][DEBUG] : [salle d eau][chauffage salle d eau] : Smartstart duration : 68.1891 à 2019-12-10 18:15:00 programmation : 2019-12-10 17:07:00
[2019-12-10 17:07:07][DEBUG] : [salle d eau][chauffage salle d eau] : Smart start end
[2019-12-10 17:07:07][DEBUG] : [salle d eau][chauffage salle d eau] : Temp in : 16 - Temp out : 6.2 - Consigne : 19.5
[2019-12-10 17:07:07][DEBUG] : [salle d eau][chauffage salle d eau] : Direction : 1
[2019-12-10 17:07:07][DEBUG] : [salle d eau][chauffage salle d eau] : Power calcul : (3.5 * 30) + (13.3 * 1.1) + 0 = 119.63
[2019-12-10 17:07:07][DEBUG] : [salle d eau][chauffage salle d eau] : Previous cycle at 100%, apply offset : -50%
[2019-12-10 17:07:07][DEBUG] : [salle d eau][chauffage salle d eau] : Cycle duration : 39.6891
[2019-12-10 17:07:07][DEBUG] : [salle d eau][chauffage salle d eau] : Action chauffage

Il n’y aurait pas un problème de portée / conservation de la variable « previous cycle at 100% » ?

Bonjour,
Ca devrait etre corrigé dans la beta de demain

Bonsoir Loïc,
encore un grand merci pour ta réactivité !

Bonsoir Loïc,
après la dernière mise à jour, tout semble fonctionner parfaitement : premier cycle à 100%, sur le deuxième l’offset s’applique bien. Résultat : la consigne n’est plus dépassée, mais proprement atteinte ! Je continue à surveiller ça de prêt et te tiens au courant au fur et à mesure. Je radote, mais encore merci :wink:

si j’ai bien compris cet offset servirait a eviter de depasser la consigne au deuxieme cycle ?

moi aussi j’ai ce problème de dépassement de consigne au démarrage. Par contre j’ai ce problème sur les radiateurs electriques qui ne sont pas a inertie (radiants).
Pour parlier a ca j’ai baissé le cycle à 30mn mais ca n’a pas changé grand chose.

Bon apres quand je dis « problème » c’est très leger ca ne dépasse que de 0.5 mais ce qui me dérange plus c’est que une fois la consigne dépassée ca redecend sous la consigne avant de se remettre en marche du coup ca fiat une variation de temperature de 1 degrés et apres ca se stabilise.

Pour les radiateurs a inertie j’ai mis des cycles de 45mn et je ne depasse pas la consigne.

Bonjour, oui, c’est bien dans cet objectif. Même pour les radiateurs avec peu d’inertie, il peut y avoir un certain délai entre la période de chauffe et l’élévation de la température constatée par la sonde (position de la sonde par rapport au radiateur, délai de prise en compte de la température de la pièce par la sonde …). J’ai par exemple constaté que mes sondes de température Nodon (protocole Enocean) étaient bien plus réactives qu’un Aeotec multisensor … Donc si le radiateur chauffe pendant toute la durée du cycle, la température de la pièce prise en compte pour calculer le nouveau cycle peut être sous-évaluée … Et donc provoquer une chauffe trop importante. Un moyen simple d’évaluer ce décalage est de regarder les courbes de la page thermostat (comme l’exemple ci-dessus) : combien de minutes s’écoulent entre la fin de la période de chauffe et la fin de l’élévation de la température relevée par la sonde ? On divise ce temps par la durée du cycle, et on a une bonne estimation de l’offset à appliquer … Une fois que la fonctionnalité sera passée en stable par Loïc, j’essayerai de faire un tuto.

merci !
j’essayerai d’enregistrer les courbes ce soir car avec le lissage de l’historique on ne se rend pas compte du dépassement de la consigne

voici ce que ca donne dans mon sejour


ca depasse de 0.5. du coup je devrais mettre a combien le coefficient sur le 2eme cycle ?

Bonsoir,
ton cycle dure 1h, et il semble y avoir un décalage d’environ 15min entre la période de chauffage et celle où la température s’élève, donc essaye 25% et ça ne devrait pas être trop mal …

Bonsoir @Loïc,
tout fonctionne toujours parfaitement bien ! Un exemple de chauffe parfaitement gérée :
thermostat2

La seule chose qui pourrait encore être peaufinée, c’est pour les cycles de chauffe longs, mais pas tout à fait à 100%. Pour ça on pourrait peut-être remplacer la variable oui/non « cycle de chauffage précédent à 100% » par un offset = max(0, [offset renseigné dans les paramètres avancés] - 100 + [%chauffe cycle précédent]). Comme ça par exemple, si l’offset renseigné est de 40% et le temps de chauffe du cycle précédent est à 80%, l’offset réellement appliqué est de 20%. Si le cycle précédent est à 60% ou moins, pas d’offset. On aurait quelque chose de progressif et non tout ou rien …
A voir si c’est jouable ou pas, et si ce n’est pas le cas la modification que tu as faite apporte déjà beaucoup !

Bonjour,
Je viens de faire ta demande c’est dispo en beta et stable immediatement

Bonjour Loïc, impeccable, merci beaucoup. Je suis repassé sur la branche stable et je continue à te tenir au courant. Dès que ce sera définitivement ok, je ferai un tuto sur le forum pour expliquer la manière d’utiliser ces nouvelles options.

A je veux bien pour le tuto et si tu peux prevoir un petit texte pour que je l’ajoute dans la doc ca serait top

J’ai vu la nouvelle maj et il y a ces 2 options : Seuil de cycle où le chauffage est considéré comme chaud (%) et Offset à appliquer si le radiateur est considéré chaud (%). Dans mon cas je dois mettre quoi pour bien comprendre ?

On etait parti sur un offset de 25% donc je dois mettre ca dans Offset à appliquer si le radiateur est considéré chaud

mais pour l’autre on le determine comment ? Seuil de cycle où le chauffage est considéré comme chaud (%)
Si je mets 100 ca veut dire que si le premier cycle fait 100 il applique l’offset de 25 ? par contre si le premier cycle est à 90 il ne l’applique pas ?

Bonsoir,
j’ai testé la nouvelle option, et voici ce que ça donne :

[2019-12-17 16:30:10][DEBUG] : [maison][chauffage principal] : Thermostat::pull => mode smart : Array (     [thermostat_id] => 103     [smartThermostat] => 1     [next] => Array         (             [date] => 2019-12-17 17:15:00             [event] => Array                 (                 )              [consigne] => 19             [calendar_id] => 75             [cmd] => 871             [type] => mode             [schedule] => 2019-12-17 16:30:00         )  )
[2019-12-17 16:30:10][DEBUG] : [maison][chauffage principal] : next info : Array (     [date] => 2019-12-17 17:15:00     [event] => Array         (         )      [consigne] => 19     [calendar_id] => 75     [cmd] => 871     [type] => mode     [schedule] => 2019-12-17 16:30:00 )
[2019-12-17 16:30:10][DEBUG] : [maison][chauffage principal] : Type mode envoi de la commande : 871
[2019-12-17 16:30:10][DEBUG] : [maison][chauffage principal] : Debut calcul temporel
[2019-12-17 16:30:10][DEBUG] : [maison][chauffage principal] : Reprogrammation automatique : 2019-12-17 17:28:00
[2019-12-17 16:30:10][DEBUG] : [maison][chauffage principal] : Smart schedule
[2019-12-17 16:30:10][DEBUG] : [maison][chauffage principal] : Plugin agenda detecté
[2019-12-17 16:30:11][DEBUG] : [maison][chauffage principal] : Temp in : 17.5 - Temp out : 8 - Consigne : 19
[2019-12-17 16:30:11][DEBUG] : [maison][chauffage principal] : Direction : 1
[2019-12-17 16:30:11][DEBUG] : [maison][chauffage principal] : Power calcul : (1.5 * 44.41) + (11 * 2.29) + 0 = 91.805
[2019-12-17 16:30:11][DEBUG] : [maison][chauffage principal] : Smartstart duration : 53.2469 à 2019-12-17 17:15:00 programmation : 2019-12-17 16:22:00
[2019-12-17 16:30:11][DEBUG] : [maison][chauffage principal] : Smart start end
[2019-12-17 16:30:11][DEBUG] : [maison][chauffage principal] : Temp in : 17.5 - Temp out : 8 - Consigne : 19
[2019-12-17 16:30:11][DEBUG] : [maison][chauffage principal] : Direction : 1
[2019-12-17 16:30:11][DEBUG] : [maison][chauffage principal] : Power calcul : (1.5 * 44.41) + (11 * 2.29) + 0 = 91.805
[2019-12-17 16:30:11][DEBUG] : [maison][chauffage principal] : Cycle duration : 53.2469
[2019-12-17 16:30:11][DEBUG] : [maison][chauffage principal] : Action chauffage

[2019-12-17 17:23:05][DEBUG] : [maison][chauffage principal] : Action stop
[2019-12-17 17:28:05][DEBUG] : [maison][chauffage principal] : Debut calcul temporel
[2019-12-17 17:28:05][DEBUG] : [maison][chauffage principal] : Reprogrammation automatique : 2019-12-17 18:26:00
[2019-12-17 17:28:05][DEBUG] : [maison][chauffage principal] : Smart schedule
[2019-12-17 17:28:05][DEBUG] : [maison][chauffage principal] : Plugin agenda detecté
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : Temp in : 18.3 - Temp out : 7.8 - Consigne : 15
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : Direction : 1
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : La temperature est supérieure à la consigne de plus de 1.5°C je ne fais rien
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : Smartstart non pris en compte car la durée 0
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : Smart start end
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : Begin auto learning
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : Last power ok, check what I have to learn, last state : heat
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : Last state is heat
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : Last temps in < at current temp in
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : New coeff heat indoor : 45.17193627451
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : Temp in : 18.3 - Temp out : 7.8 - Consigne : 19
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : Direction : 1
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : Power calcul : (0.7 * 45.17) + (11.2 * 2.29) + 0 = 57.267
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : Previous cycle at 100%, apply offset : -40%
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : Cycle duration : 10.01486
[2019-12-17 17:28:06][DEBUG] : [maison][chauffage principal] : Action chauffage

Premier cycle à 92%, donc l’offset s’applique comme prévu au deuxième cycle (j’ai paramétré le seuil de cycle à 60%). Par contre l’offset s’applique en totalité (40%). J’ai donc sans doute mal expliqué mon idée : en gros, comme les 8 derniers % du cycle, le radiateur a continué à dissiper de la chaleur même s’il était éteint, je pensais que l’offset pourrait être de 32 % (les 40% qui s’appliquent si le cycle précédent est à 100%, moins les 8% sans chauffe du cycle précédent, soit 40 - 100 + 92 = 32). Et pour que cet offset ne devienne pas négatif pour les cycles avec une chauffe courte, je proposais de faire max(0, [offset pour les cycles à 100%] - 100 + % de chauffe du cycle précédent).
Encore une fois, si c’est trop tiré par les cheveux, il ne faut pas hésiter à me le dire :wink: !

Bonjour Loïc,

Quelques soucis de mise en page dans le plug-in qui ne rend pas très explicite le remplissage du nouveau champ.

Peux tu intégrer stp des retours à la ligne pour que le champ à remplir se retrouve bien en face de la nouvelle ligne « Offset lors d’un second cycle à 100% (% du cycle) »

Merci d’avance,.

Déjà corrigé dans la dernière mise à jour. Merci.