Smart Thermostat - le chauffage contrôlé par PID

Bonjour
je découvre ce thermostat qui me parait intéressant pour gérer ma chaudière, je m’interroge cependant sur son applicabilité pour la gestion individuelle de chaque pièce: j’ai actuellement des vannes thermostatiques sur mes radiateurs qui déclenchent la chaudière quand une vanne a une ouverture supérieure x% ou si l’ouverture moyenne est supérieure à y%

si je mets en place un thermostat PID par pièce, tout risque de se télescoper, non? une vanne va demander une consigne de 20% et une autre de 50%, ça va forcément foirer ou je me trompe?

Bonjour. Si on utilise des vannes thermostatiques, il vaut mieux avoir une circulation d’eau chaude semi permanente = une vanne est ouverte, même un peu, donc on chauffe. Sinon on ouvre à fond les vannes et on fait du PWM ON/OFF de la chaudière.

Pour le moment je ne gère pas d’avoir un seul switch commun pour tous les thermostats, donc le risque avec un contrôle direct d’une chaudière par plusieurs thermostat est que les temps minimum de chauffe ou d’arrêt ne soient pas respectés. Il faut donc une logique externe.

Après tout dépend de l’âge de la chaudière. Si c’est un modèle récent à condensation, la gestion est déjà très fine, avec des modulations de puissance, de temps de chauffe et de vitesse de circulation de l’eau ; et donc si les thermostats d’origine sont bons, mon thermostat n’apportera rien de plus.

Bonjour
merci de ton retour, il confirme ce que je pensais.
La chaudière a une quinzaine d’années et n’est pas très évoluée, donc pas optimal de ce point de vue, mais a priori pas trop moyen d’optimiser plus que ce que je fais déjà

Bonjour,

Je continue de faire des essais avec ton thermostat PID, mais j’ai du mal a trouver des valeurs fonctionnant bien.

Dans l’idéal, je cherche une grande amplitude du pourcentage de chauffe, mais une descente relativement rapide de ce dernier.
Le poêle a pellet que je possède n’est pas une chaudière, il n’y a pas de radiateurs.

Actuellement j’utilise ton thermostat pour définir la puissance, et je gère l’allumage / extinction via automations, en fonction de la différence température de consigne - température réelle.

Ce qu’il faut prendre en compte, c’est qu’il y a une grosse inertie. Entre le moment ou le poêle s’allume et la chauffe effective, il y a une bonne vingtaine de minute. Par contre l’inverse est également vrai, quand le poêle s’éteint, il continue de chauffer pendant le même laps de temps. D’où l’intérêt de baisser rapidement la puissance, et de la réaugmenter sans monter trop haut si la température ne monte pas assez.

Actuellement mes réglages sont :

    keep_alive:
      seconds: 30
    kp: 38
    ki: 0.005
    kd: 110000
    ke: 0.3
    pwm: 0
    sampling_period: 00:02:00

A température = consigne, la puissance est toujours de 80%.
Avec une température supérieure de 1° par rapport à la consigne (arrêt géré hors thermostat), la puissance est d’environ 50%.
L’idée serait d’être en dessous des 50% une fois la consigne atteinte.
Je viens de modifier les paramètres en :

    keep_alive:
      seconds: 30
    kp: 35
    ki: 0.005
    kd: 55000
    ke: 0.3
    pwm: 0
    sampling_period: 00:02:00

Que me conseillerais tu comme valeurs?

Si vraiment je n’arrive pas à trouver des valeurs qui me conviennent, je repasserai sur mes anciennes automations, mais celles ci ne définissaient la puissance qu’en fonction des différences température, consigne, extérieur, et ne prenaient pas en compte l’erreur. (et donc, parfois je me retrouvait avec une température ayant beaucoup de mal à monter au delà d’une certaine valeur car puissance trop faible, a cause par exemple d’un fort mistral, problème que je n’ai plus avec ton composant)

Merci beaucoup.

Il faut ajuster le Kd pour que quand la température commence à monter plus vite ça coupe rapidement la modulation de puissance.

avec simple thermostat dans le yaml tu peux mettre directement genre away_temp: input_number… ?
Car le generic thermostat vient d’évoluer et gérer enfin plus de preset ! (peut etre le debut d’ameliorations plus conséquentes …)

As tu fait marché le smart thermostat ? c’est assez complexe je trouve pour trouver les paramètres. J’ai relu pleins de fois les infos de ce topic

Bonjour,

Dans la description il est indiqué que l’utilisation d’un relais est déconseillé.
Pour quelles raisons est-ce que c’est déconseillé ? Usure radiateur ? Usure relais ? Perturbations électriques à la coupure ?

Merci

Un relais, c’est comme un interrupteur. Ça fait des étincelles quand ça commute, usant les contacts à la longue. Et plus la puissance qui passe est élevée, plus ça fait des étincelles balaises et plus ça les use. Donc on déconseille d’en utiliser pour du chauffage électrique. Mieux vaut utiliser un film pilote pour la commande et laisser le radiateur gérer le on/off

Salut @JeromGo
si le relais ou le radiateur sont de qualité, la commutation on/off a lieu lorsque la phase passe par zéro ou très proche ce qui évite l’envoie d’harmoniques dans le courant et, je pense (là ce n’est que mon avis), les étincelles car le radiateur est en pur résistif.
Pour les relais évidement pas un interrupteur mais de l’électronique type opto-coupleur qui alimente un triac comme
http://electro.train.blog.free.fr/public/electronique/MOC3031_32_33_41_42_43_-M_Fairchild.pdf

Sinon la fiche constructeur d’un de mes radiateurs me dit que « la coupure du radiateur trop fréquente endommage le circuit électronique » (« endommage » et non « peut endommager »).

Bonjour à tous,

Merci @ScratMan , j’ai l’impression de retrouver l’excellent thermostat Jeedom dans ton travail (Thermostat qui au demeurant m’a fait économiser pas mal de €€€ dans mon ancien appart avec chaudière Gaz et forte inertie). J’étais toujours impressionné de voir le thermostat démarrer 3, 4h en avance et me donner la température de consigne pas loin à la minute prêt au dixième de décimale prêt…

Bref HS.

Question entité « Climate ». Dans ma maison, j’ai une PAC Daikin supporté par HASS sous forme de Climate. Je voudrai essayer ton controlleur car le Daikin me semble un peu basique.
Est ce possible de faire gérer à une entité Climate une autre entité Climate sans se prendre les pieds dans le tapis ?

Ma première difficulté à aider de générer un « switch on / off from climate » dont voiçi le code (trouvé sur le forum hass)

- platform: template
  switches:
    smart_thermostat_daikin:
      friendly_name: "Smart Thermostat Daikin"
      value_template: "{{ not is_state('climate.daikinap', 'off') }}"
      turn_on:
        service: climate.turn_on
        target:
          entity_id: climate.daikinap42951
      turn_off:
        service: climate.turn_off
        target:

          etity_id: climate.daikinap

Ma seconde difficulté est de faire fonctionner les 2 ensembles :sweat_smile:.

J’imaginai donner une consigne très élevée à l’entité Daikin (25°C par exemple) pour l’avoir toujours en chauffe et qu’elle ne coupe pas d’elle même

Sauf que dès lors que je fais une demande « plausible »
Smart Thermostat => Chauffe => 21°C
Daikin => Chauffe => 25°C

Je me retrouve avec des comportements étranges où la PAC recoît forcément un OFF au bout de quelques minutes (< 3min)

[Smart Thermostat Daikin](http://hass.local/logbook?start_date=2022-04-01T17%3A00%3A00.000Z&end_date=2022-04-01T18%3A00%3A59.000Z#) 
éteint par le service homeassistant.turn_off 
19:36:03 - Il y a 16 heures

[PAC](http://hass.local/logbook?start_date=2022-04-01T17%3A00%3A00.000Z&end_date=2022-04-01T18%3A00%3A59.000Z#) 
éteint par le service homeassistant.turn_off 
19:36:03 - Il y a 16 heures

Une idée de la faisabilité de chose ?

Une pompe à chaleur ne se pilote pas en on/off, mais en modulation de puissance. De base le thermostat module via un PWM en faisant des on/off périodiques, mais ça n’est donc pas compatible. Sauf à pouvoir donner un pourcentage de puissance à la pompe à chaleur, et dans ce cas tu peux récupérer l’attribut control_output du thermostat qui correspond au pourcentage de puissance calculé par le PID.

Clair et précis :D. Je n’ai pas accès à un contrôle de puissance (température only);
Merci pour ta réponse.

Je vais m’en donc m’en tenir à une utilisation sur mes radiateurs

Hello @ScratMan !

Peut-on imaginer utiliser ton thermostat par PID avec un poêle à granulés dont on peut piloter :

  • l’allumage & l’extinction
  • la puissance (de 1 à 5)
  • les 3 ventilations (pièce principale + 2 zones), chaque ventilateur de 1 à 6

Hello @ScratMan,

Dit avec l’intégration native du « Scheduler » dans HA, tu pense que ce serait compliqué d’intégrée un mode temporelle dans ton thermostat ?

Le but serait d’anticiper automatiquement l’allumage du chauffage pour arriver à température à l’heure souhaité et ainsi éviter de devoir anticipé l’allumage des chauffages et potentiellement chauffer trop tôt ou trop tard :confused:

Je ne dit pas que c’est facile, mais ce serait tellement bon :stuck_out_tongue:

Hello, désolé pour les délais de réponse. Le développement est en pause pour le moment, il y aurait pas mal de choses à faire mais l’arrivée de bébé n°2 a fait disparaitre mon temps libre.

Ça devrait être possible, en utilisant le control_output comme réglage de la puissance et la force des ventilos, et si control_output > x% on met on le poêle et les ventilos en route. Après les poêles à granulés sont déjà des équipements évolués, je pense que c’est déjà très performant avec le thermostat d’origine, il faut peut-être juste régler les pentes de chauffe.

Je ne sais pas, je n’ai pas remis le nez dans le code depuis un moment donc difficile à dire si c’est faisable.

1 « J'aime »

Hello ! Pas de souci, et plein de bonnes choses avec bébé n°2 :wink:

Pour la gestion du poêle, j’ai mis en place (mais pas encore testé car les températures sont encore clémentes) le système suivant :

  • Thermostat simple_thermostat avec modes confort, éco, vacances actionnés par le Scheduler. Ce thermostat commande l’allumage / extinction du poêle, avec 30 minutes minimum de life cycle pour éviterdes démarrages / extinctions répétitifs.
  • Thermostat « PID » d’Argonaute ( Gestion de bout en bout du chauffage ) qui me sert à calculer une puissance de chauffe. La consigne de ce thermostat PID est changée via une automatisation qui paramètre la consigne selon la consigne du 1er thermostat simple_thermostat. La puissance du thermostat PID (entre 0 et 100%) permet via des automatisation de régler la puissance du poêle.
  • Comme j’ai 3 ventilateurs sur le poêle (et donc 3 zones de chauffe distinctes), j’ai 3 automatisations qui vont régler la vitesse des ventilateurs selon la température des zones.

C’est peut être un peu usine à gaz, mais sur le papier ça a l’air pas mal ! Reste à attendre les test en fonctionnement.

Bonjour !

Merci pour ce superbe travail, j’ai profité pour tester en parallèle du TPI (sur deux pièces différentes).
Voici mon interface :
image

Je sollicite votre aide, j’aurai aimé que le mode en cours soit « coloré », j’ai essayé avec des custom:button-card, mais je n’arrive pas à identifié l’état du mode en cours. Est-ce que quelqu’un aurait déjà réussi quelque chose de similaire à ce que je recherche ?

Merci d’avance !

Dans le code de ton button card, a adapter, mais voici ce que j’ai fait pour ma clim:

styles:
  icon:
    - top: 0%
    - left: 1%
    - width: 35%
    - position: absolute
    - color: |
        [[[
          if (states['climate.sejour'].attributes.hvac_action == "cooling") return '#94EEF9';
          else if (states['climate.sejour'].attributes.hvac_action == "heating") return '#fdd835';
          else if (states['climate.sejour'].attributes.hvac_action == "fan") return '#fdd835'; 
          else if (states['climate.sejour'].attributes.hvac_action == "dry") return '#fdd835';          
          else return '#44739e';
        ]]]

Merci ! Je vais essayer d’intégrer cela dans mes button-cards.

EDIT : Voici le code au cas où

show_name: true
show_icon: true
type: custom:button-card
tap_action:
  action: call-service
  service: climate.set_preset_mode
  service_data:
    preset_mode: eco
    entity_id: climate.smart_thermostat_dressing
show_state: false
hold_action:
  action: none
icon: mdi:leaf
name: Eco
styles:
  icon:
    - top: '-5px'
    - color: |
        [[[
          if (states['climate.smart_thermostat_dressing'].attributes.preset_mode == "eco") return '#FF0000';
          else return '#44739E';
        ]]]
    - padding-bottom: 9px

Et le résultat quand le mode est activé :
image

Il ne reste plus qu’à trouver un jeu de couleur pour mettre en évidence le mode sélectionné.