Une fois que le système a démarré une fois, il ne lit plus Kp Ki Kd et Ke depuis la yaml
Donc tu peux modifier le yaml tant que tu veux, ça ne changera pas les valeurs, qui sont stockées dans HA
En fait, une fois démarrer, pour modifier les gains, tu vas dans Developper Tools → Services
Tu choisis le service smart_thermostat: Set PID gains
Ensuite tu choisis ton entité, puis tu coche le (ou les) gain(s) à modifier, tu tape la valeur, et puis le bouton « call service »
Pour ceux qui sont fainéants comme moi, un fichier XLS rapide qui permet de rentrer quelques valeurs de mesures d’oscillation, et donc calcule les résultats des autotune
Il suffit de mettre une température de consigne, faire un coup de
Ensuite, attendre quelques oscillations de la température, en dérangeant la pièce le moins possible. Dans mon cas j’ai même laissé les volets fermés.
Dans le fichier
Tup 1 et Tup 2 sont des heures à laquelle la courbe coupe la température de consigne en montant. Le Tup 2 de la première oscillation devient automatiquement le Tup 1 de la seconde
ymax et ymin sont les valeurs max et min mesurées sur la courbe de température
tosc et yosc sont calculés, puis il y a une moyenne sur les résultats. Ces valeurs seront utilisées dans les calculs de l’autotune
C’est très basique, mais bon, si ça peut éviter à quelqu’un d’autre d’avoir à refaire l’exercice
Bonsoir, pardon si cela est déjà dit plus haut.
J’ai fais l’installation du Smart Thermostat pour 2 zones et je voudrais tuner les Kp,Ki,Kd du coup j’ai déclenché un autotune sur une zone mais je ne vois ou récuperer son travail et sous quelle forme. Pourriez vous m’aiguiller un peu.
Cordialement.
Je suis locataire dans une maison bien isolée, équipée d’un plancher chauffant hydraulique base température et d’une chaudière gaz.
La régulation se fait par sonde extérieure et loi d’eau + un thermostat d’ambiance Atlantic qui fonctionne en TOR (contact sec) avec une logique inconnue. Comme ce dernier ne prend pas du tout en compte l’inertie, j’ai des over/undershoot sur 1,5° d’amplitude (les « bons » jours sans soleil).
Puis-je m’attendre à mieux avec une régulation PID ? Je sais déjà que l’ajustement des paramètres n’est pas des plus aisés.
Bonjour,
est tu sutr que ton thermostat n’a pas un paramètres permettant de préciser la nature de l’émetteur de chauffage (radiateur ou sol)?
car les courbes de chauffe (loi d’eau) pour le sol ne sont pas les mêmes que pour le radiateur.
en général pour des problèmes d’inertie sont un décalage de la plage horaires permets de combattre celui générer par le décalage du chauffage par le sol.
Malheureusement il semble pas qu’il soit très personnalisable… La loi d’eau est déjà assez basse (départ 32° pour 0 extérieur) mais c’est surtout que je ne peux pas allez plus loin car l’installation pas assez dimensionnée au niveau hydraulique : le delta retour/départ atteint très vite 10° et le bruleur s’arrête.
J’ai effectivement pensé à faire une programmation horaire avec le thermostat actuel (du genre 0,5° de plus pendant 1 heure en fin de journée), mais le résultat reste incertain. La solution du thermostat PID proposée dans ce fil paraît plus pertinente, bien qu’elle a l’air difficile à mettre en oeuvre.
Je pensais à quelque chose dans ce style :
ESP Home avec un ESP8266/32
Un relai à peu près silencieux (des conseils ?)
Un capteur de température à peu près précis (idem). J’ai déjà de quoi faire en Zigbee, mais cela pourrait permettre une remontée d’information plus réactive.
Je tien tout d’abord a remercier @ScratMan pour ce thermostat qui a bien changé le confort de ma maison !
@homalex je pense que oui, une fois bien régler ce type de thermostat te permettra d’avoir une hystérésis plus faible que ce que tu mesures actuellement.
Pour ton relais, le choix va dépendre de la tension que ta chaudière envoie sur ça sortie contact sec et avec quoi tu veux le piloter (directement avec l’ESP ? ZigBee ?..)
Pour exposer un peu ce que j’ai fait, ce qui pourras peut-être t’inspirés voici mon installation :
Vieille chaudière gaz FrancoBelge qui a bientôt 20ans avec radiateur acier. Isolation pas encore au top mais bien mieux qu’à l’achat de la maison il y a un peu plus d’un an.
J’avais mis un thermostat ambiant connecté type BecaSmart BHT-3000 en wifi (avant de me lancer sur HA).
Une fois mon HA en place je le piloté en local (modification de la consigne de température) mais je me suis vite rendu compte que l’hystérésis était nul. 2°C en moyen avec de ce fait une température qui fait yoyo c’est pas très agréable. (Consigne à 19, ça déclenche arrivé à 18°C, s’arrête à 19°C et avec l’overshoot monte jusque 20°C voir plus puis redescend à 18 avant de que thermostat redémarre…)
Je me suis donc lancé sur un pilotage ON/OFF de la chaudière uniquement par HA avec le thermostat PID.
Pour la chaudière je voulais éviter un relais piloté via Wifi pour ne pas dépendre de la box. Impossible de trouver un relais « potential free » piloté en ZigBee, j’avais un sonoff ZBMINI et un relais de puissance qui trainé, j’ai donc utilisé le sonoff pour piloté le relais de puissance qui sert pour le contact sec (et la chaudière envoie du 230V attention les doigts ça chatouille).
Pour la sonde de température qui sert de référence j’ai des sondes aquara mais je trouve que la fréquence d’actualisation en cas de variation de température et trop lente voir random ce qui n’est pas top pour une bonne réactivité du système. Je suis donc parti du un SwitchBot Meter qui communique en Bluetooth BLE avec mon Raspberry PI 4 qui héberge HA. La mise à jour de la température se fait dès que ça bouge d’un dixième ce qui est bien mieux.
Après quelques temps de réglage pour la durée minimal d’allumage, durée PWM, les gains PID etc j’obtiens une température stable avec un hystérésis de 0.2°C ce qui est vraiment plus confort !
J’arrête mon roman là, je laisse place aux questions si il y en a
Bonsoir Spanky, j’ai une configuration assez similaire à ton installation
voici mes paramètres: kp : 1.9 ki : 0.6 kd : 0 pwm : 00:00:60
mon hystérésis est plus proche du degré.
quels sont tes paramètres ? merci
Bonsoir,
Je n’utilise pas de PID, pilotage de ma chaudière à gaz par contact sec.
J’ai remplacé récemment mon capteur de température Aqara par deux capteurs Aht10 sur ESP32 dont je fais la moyenne, ça tout change tout car ils sont beaucoup plus réactifs.
tu pointes un detail tres important avec la réactivité des thermomètres. Les aqara ca peut etre aléatoire je trouve. Des fois tres rapide parfois moins
Après avoir essayé l’autotune qui n’en finissait jamais. J’ai essayé la méthode de calcul qui est donné plus haut mais ce n’était toujours pas satisfaisant est instable.
Je suis donc reparti de 0 est fait la bonne vieille méthode qui consiste a régler d’abord le kp pour avoir une bonne réactivité du système (ex: quand tu passes d’une consigne de 17 à 19 le but est d’avoir une monté rapide et peu d’oscilliation derrière même si il y en aura c’est normal).
Ensuite tu règles ton ki en partant de très bas ce qui va permettre de réduire les oscillations et un peu l’overshoot sur les changement de consigne.
Puis si besoin kd pour affiner la régulation.
Actuellement, je tourne avec ça :
Et oui, une sonde de température réactive c’est important pour que ça soit fiable et stable. si il faut 15 20min pour actualisé une température qui fera arrêter la chauffe, pendant ce temps là, la chaudière continue de tourner et on a des overshoot à tous les coups.
Pour illustrer un peu :
Avant je régulais sur l’info orange (Aqara), maintenant, sur la bleu clair qui est la moyenne de la violette et bleu foncé (2 ESP32). C’est nettement plus réactif. Ma pièce est assez grande et les capteurs pas tous au même endroit, ça fausse peut être un peu pour les températures mais mon but est de réguler précisément.
J’ai un comportement étrange j’ai beau avoir ajouter les valeurs kp, ki, kd dans mon fichier configuration.yaml quand je restart HA et que je regarde l’entité les valeurs sont à 0 quelqu’un serait m’expliquer pourquoi?
Bonsoir. Les valeurs dans le YAML ne sont utilisées que pour le premier démarrage ou après un crash/effacement de la base de données de HA. Pour régler les gains ou les températures des préset, il faut utiliser les services smart_thermostat.set_pid_gains et smart_thermostat.set_preset_temp