Smart Thermostat - le chauffage contrôlé par PID

Bonjour à tous,

Je vais tester ce thermostat: le PID me rappelle mes débuts en Industrie. :wink:

J’ai une question comment puis-je sortir les paramètres ki, kp et kp afin de leur donner faire varier leur valeur depuis l’interface ?

Merci par avance.
smilorel

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 »

Même réponse pour aurelb87-smilorel au dessus :wink:

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

service: smart_thermostat.set_pid_mode
data:
  mode: "off"
target:
  entity_id: climate.ton_thermostat_pid

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

Vu que je suis une quiche en github, j’ai toujours pas compris comment on y héberge un fichier, donc je l’ai collé là: Free Transfert - Service d'envoi de fichiers

Si quelqu’un a une solution de stockage plus pérenne, aucun souci pour qu’il prenne le fichier et l’héberge ailleurs.

1 « J'aime »

Bonsoir
Le fichier n’est plus dispo mais je suis preneur
Merci

Bonsoir,
Je suis également preneur de ce tableau mais il n’est plus téléchargeable.
Merci en tout cas pour ton partage.

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.

@BugsBunny1403 La réponse a été apportée plus haut. (ICI) :wink:

@Yo_han Merci pour le lien. J’avais en effet vu ce message mais je ne trouve pas d’info dans les logs HA .
Je ne sais peut être pas bien cherché.

1 « J'aime »

Tu peux essayer de calculer les valeurs manuellement avec les explications fournies par ScratMan : ICI

Bonjour,

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.

jimmy

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.
  • Ce Smart Thermostat bien sûr.

Bonjour à tous !

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 :wink:

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.


Je régule dans une fourchette inférieure à 0.5 degrés.

Bob

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 :

  - platform: smart_thermostat
    name: Smart Thermostat PID
    unique_id: smart_thermostat_PID
    heater: switch.switch_chaudiere
    target_sensor: sensor.meter_66dd_temperature
    outdoor_sensor: sensor.temp_ext
    min_temp: 10
    max_temp: 25
    ac_mode: False
    target_temp: 19.5
    away_temp: 15
    sleep_temp: 17.5
    eco_temp: 17
    comfort_temp: 20
    home_temp: 19.5
    target_temp_step: 0.1
    precision: 0.1
    keep_alive:
      seconds: 60
    kp: 50
    ki: 0.01158056
    kd: 0
    ke: 0
    pwm: 00:15:00
    min_cycle_duration: 00:04:00
    min_off_cycle_duration: 00:10:00
    sampling_period: 00:02:00

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.

Bonjour,

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.

Bob

2 « J'aime »

Hello,

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?

Voici la config:

- platform: smart_thermostat
  name: Smart Thermostat Bureau
  unique_id: smart_thermostat_bureau
  heater: switch.chauffage_bureau_switch
  target_sensor: sensor.sonde_bureau_temperature
  min_temp: 10
  max_temp: 25
  ac_mode: False
  target_temp: 18.5
  away_temp: 15
  eco_temp: 15
  comfort_temp: 18.5
  target_temp_step: 0.1
  precision: 0.1
  keep_alive:
    seconds: 60
  kp: 3.3261
  ki: 0.01594
  kd: 290.55
  min_cycle_duration: 00:04:00
  pwm: 00:15:00

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