Smart Thermostat - le chauffage contrôlé par PID

Bonjour,
Est il possible d’avoir une valeur 0 à 100% pour piloter une vanne thermostatique ?
Merci d’avance pour vos réponses

Bonjour,

Bon j’ai tenté de remonter un peu la discussion, mais il y a beaucoup de messages et je n’ai pas trouvé l’information. J’ai configuré le thermostat pour 2 pièces actuellement. J’ai 2 chauffages électriques à inertie sèche de 1000W chacun. Pour le moment, les chauffages sont contrôlés par des relais, mais j’ai acheté 2 sorties de cable legrand pour les commander par fil pilote. La maison est ancienne et mal isolée. Pour les sondes de température, j’ai des capteurs bluetooth qui sont intégrés à home assistant.

J’ai lancé le mode autotune hier et il ne s’est pas encore arrêté. Son statut est à autotune_status: relay step down . Voici ma configuration :

- platform: smart_thermostat
  name: Thermostat Salon
  unique_id: thermostat_salon
  heater: switch.radiateur_salon
  target_sensor: sensor.capteur_salon_temperature
  outdoor_sensor: sensor.capteur_jardin_temperature
  min_temp: 10
  max_temp: 25
  ac_mode: False
  target_temp: 20
  keep_alive:
    seconds: 60
  away_temp: 14
  kp: 5
  ki: 0.01
  kd: 500
  ke: 0.6
  pwm: 00:15:00
  autotune: "ziegler-nichols"

Est-ce qu’il y a quelque chose qui cloche pour ne pas que ça s’arrête ? Voici la courbe de température

Merci d’avance pour vos conseils

Bonjour, sur la dernière version il est possible d’utiliser une entité de type vanne ou input_number pour utiliser directement la sortie 0/100% du PID.

L’autotune est vraiment expérimental, je n’ai jamais réussi à le faire marcher. Tu peux calculer manuellement les paramètres du PID en te basant sur les oscillations de ta courbe et en utilisant la méthode décrite ici :

A priori, de ce que je vois sur tes courbes, ça donne une oscillation de 1°C sur 3.6 heures de période. Donc:
Ku = 8.0 * 100 / (1 * pi) = 255

Avec du Ziegler Nichols on aurait
kp = Ku / 34 = 7.5
ki = 7.5 / ((3.6 * 3600) / 40) = 0.023
kd = 7.5 * ((3.6 * 3600) / 160) = 607

Tu peux tenter avec ça dans un premier temps.

Hello @ScratMan,
Comment tu vois ce 1° sur 3.6h ? Sur ces courbes, je vois plutôt du 1° sur un peu moins d’une heure (à partir de 15h et 19h surtout) Je viens de comprendre :slight_smile:
Ça fait longtemps que j’essaie de régler mes thermostats aussi, la méthode que tu donnes là m’intéresserait. Je vais essayer de l’appliquercomprendre.

Bonsoir à tous, je découvre ce super thermostat, bravo pour ton travail @ScratMan :clap:
Jusqu’à maintenant j’utilisais une automatisation qui fermait le contact sec zigbee de ma chaudière à gaz, en mode confort (19°) uniquement entre 6h et 20h et en mode eco (17°) la nuit.

J’aimerais pouvoir faire la même chose avec ce thermostat mais je ne sais pas comment faire. Il n’y a pas de variable pour pouvoir faire ça dans la doc du thermostat.Comment dois-je faire dans HA pour pouvoir créer des automatisations basées sur des créneaux horaires afin de changer la consigne du smart thermostat (eco_temp, home_temp, sleep_temp) ?

Merci bcp pour votre aide

Ce thermostat comme les autres n’a pas de planification intégrée. Intégrer la planification est quelque chose de très complexe. Tu peux soit utiliser le Scheduller soit tout faire en yaml, c’ets ce que j’ai fait et il y a des exemples sur mon blog.

Bonjour à tous,
Merci ScratMan pour le travail sur ce plugin, c’est vraiment top !

je migre doucement de mon installation jeedom vers home assistant et je suis souvent perdu.

j’ai mis en place un 1er thermostat dans ma sale de bain dont le petit sèche serviette est piloté par un relais (sonoff pow), pas de problème pour l’entité heater puisque c’est un toggle switch ON/OFF.

Mais maintenant j’aimerai piloter les radiateurs de mes 3 chambres avec des modules fil pilote zigbee de ce type : ADEO SIN-4-FP-21_EQU control via MQTT | Zigbee2MQTT
c’est là que je sèche…
comment configurer mon entité heater de manière à ce quelle puisse switcher entre son mode « comfort » ou « stop ».

je ne comprend pas dans la doc du plugin comment configurer ça.
dois-je passer par une entrée crée manuellement ?

merci d’avance.

C’est ce que je fais dans ma salle de bain. J’ai créé un input_boolean dans lequel mon thermostat envoie les commandes on/off, et j’ai une automatisation qui, à chaque changement de cette input, fait basculer mon fil pilote entre confort et hors-gel.

Parfait, merci de la réponse, c’est donc bien ce que je pensais.

J’avais fait ça :

- platform: template
  switches:
    pilot_wire_1:
      friendly_name: 'Convecteur : Salle de Bain'
      value_template: "{{ is_state('switch.shelly1_f39b46', 'off') }}" # fake switch is on when real switch reports off, and vice versa
      turn_on:
        service: switch.turn_off
        data:
          entity_id: switch.shelly1_f39b46
      turn_off:
        service: switch.turn_on
        data:
          entity_id: switch.shelly1_f39b46
1 « J'aime »

Merci aussi, ce système avec appel aux services c’est plutôt pour activer ou désactiver l’entité climate du smart thermostat elle même non ?

Non, c’est pour faire un switch qui fonctionne à l’envers, utilise pour commander un fil pilote avec une diode ou il faut passer en ON si on veut passer OFF le convecteur…

Il y a plein d’articles sur ce sujet ici, par exemple : Chauffage electrique avec ou sans fil pilote

Merci @mycanaletto pour la précision.
Je reviens à l’attaque, j’aimerai appliquer un smart thermostat à un humidificateur d’air.

à priori, je me dis que le concept est totalement identique, seules les valeurs changent.
je suis en cour de test et je n’ai pas encore de retour sur l’efficacité du truc mais je note déjà une paire de soucis (dont un qui n’en est pas vraiment un)

ma config :

  - platform: smart_thermostat
    name: Humidifier Nous
    unique_id: smart_humidifier_nous
    heater: switch.0xa4c138711e0148f9
    target_sensor: sensor.humidity_158d0002391d90
    min_temp: 35
    max_temp: 65
    min_cycle_duration: 60
    ac_mode: False
    target_temp: 50
    cold_tolerance: 1
    hot_tolerance: 1
    keep_alive:
      seconds: 60
    kp: 5
    ki: 0.01
    kd: 500
    ke: 0.6
    pwm: 00:10:00
    away_temp: 35 # commented out or set to 35
    eco_temp: 45
    comfort_temp: 50
    boost_temp: 55

1 - que je paramètre ou non une valeur away_temp j’ai toujours un mode absent à 14,
est ce normal ? car je lis dans la doc que si non spécifié, le away_mode ne devrait pas être disponible.

2 - l’historique veut me m’afficher des valeurs en °C et comme mon sensor est une % d’humidité, évidement il reste à 0 :

Pouvez vous me dire s’il est possible de forcer une unité ? avec un input peut être ?
// Réglé avec un template

Je suppose que le composant s’appuie sur un climate HA standard et qu’il est donc impossible de le génériser au point de le faire fonctionner autrement qu’avec des températures ? ou est-ce possible ?
ce serait super puisque les PID peuvent s’appliquer à autre chose que les températures.

merci par avance et bonnes fêtes.

Le système est déclaré comme faisant partie du domaine climate de HA, du coup l’unité est forcée sur l’unité de température du système (°C ou °F).
Pour le mode absent, le preset est peut-être forcé par la classe climate dont le smart thermostat hérite.

Il vaudrait peut être mieux utiliser un hygrostat … (intégré ou via une intégration)

Bonjour à tous
Lu pas mal de chose ici et sur les posts de @ScratMan
J’ai actuellement un thermostat Secure Zwave qui n’est je pense pas complètement PID et réglé sur le parametre inertie le plus fort mais qui fonctionne tout de meme pas trop mal.
J’ai environ 1° ou max 1,5° d’ecart entre le min et le max. Donc 0.7° autour de la consigne.
Mon plancher chauffant est electrique a tres forte inertie. Au minimum 1/2j pour montée en temperature…
Particularité les jours rouge edf je baisse la consigne de 1°. Pas sur que ca soit une bonne chose car le temps de remontée est tres long apres. C’est difficile a dire car la journee le soleil tape sur les vitres et ca chauffe…

Est ce que selon vous je peux ameliorer en passant sur ce thermostat PID ?
Y a t il des cas sur du plancher chauffant elec avec des ecarts types ou des exemples de courbes. Je n’en ai pas trouvé .

Mon objectif et double ameliorer le confort pour que la temperature soit la plus constante possible et voir si je peux economiser quelques sous EDF avec une regulation
plus constante.
Voici une petite courbe .
On voit pas sur le graph mais c est bien du PWM. La largeur des periodes varie mais peu…

Et la en orange la moyenne de la puissance du plancher chauffant avec en orange plus clair les puissances max.
On voit tout de meme bien la variation sur la courbe de moyenne de la puissance du plancher chauffant

Merci

Ca ressemble à du PI, tu devrais pouvoir gagner en stabilité en utilisant le PID.

Pas sûr par contre que tu puisses économiser sur la facture d’électricité. Personnellement je n’ai pas vu d’évolution sur ma conso de gaz lorsque j’ai mis en place le PID sur mes radiateurs, par contre niveau confort c’est le jour et la nuit.

Merci pour ton retour.
Allez on va le tester.
Tiens voici qq courbes plus explicites.
A ton sens, la précision des sondes temperatures sont elles assez bonnes ?
J’ai une Oregon RFXCOM et un Aqara Airmonitor Zigbee

Du coup j’ai regardé ton post sur le réglage manuel, pour choisir les bons diviseurs comment fais tu pour choisir la bonne méthode @ScratMan ? Il y a 6 ou 7 méthodes différentes
Est ce que la ziegler-nichols est celle par défaut ?

L’important c’est que les sondes aient des retours de température réguliers.si elles passent des heures sans envoyer de mesure, ça peut perturber les calculs. Les miens renvoient une mesure toutes les 15mn, qu’elle ait bougé ou non ; c’est pas mal.

Pour la règle de calcul de l’autotune, la Ziegler-Nichols est un bon compromis.

Ta courbe est intéressante, on dirait que la puissance de chauffe du plancher est modulée dans le temps, mais la logique derrière semble étrange. En tout cas, ça confirme qu’il n’y a pas de dérivée, ou alors qu’elle est mal gérée, on le voit bien le 25 février entre 4:00 et 8:00, la température se met à monter très vite avant 4:00 mais le thermostat (ou le plancher lui-même ? ) augmente quand même la puissance au lieu de la réduire. Du coup, ça dépasse fortement la consigne.

Un point me chiffonne quand même, je vois que le plancher est déjà piloté par une modulation on/off à 50/50, avec 6 périodes en 2h soit une période PWM de 20mn.
La question est « qui gère cette modulation » ?
Est-ce le thermostat directement qui fait ça ? Ou bien le thermostat pilote-t-il un système de contrôle en on/off et le système de contrôle module la puissance et la modulation on/off du plancher chauffant pendant la période de chauffe demandée par le thermostat ?
Parce que si tu mets directement le smart thermostat sur le relais du plancher chauffant, avec un PWM à 20mn, si le PID dit qu’il faut 100% de puissance, tu vas avoir un plancher allumé en permanence, est-ce que ça ne risque pas de le faire surchauffer ?
Si ton thermostat pilote un système de contrôle qui gère la puissance et la modulation PWM, alors y’aura pas de souci.