La configuration centrale du versatile thermostat ne gère pas l'allumage du bruleur de la chaudière (sur l'entrée thermostat)

Bonjour à tous,

Petit retour pour expliquer comment je m’en suis sorti… vos remarques sont les bienvenues si vous pensez que j’ai loupé un truc où que je pourrais améliorer :slight_smile:
Je suis déjà très content de moi :stuck_out_tongue:

J’ai d’abord désactivé l’ajout d’une chaudière centrale puisque la demande de chauffage de chacune de mes 7 vannes thermostatiques n’est pas détectée par Versatile Thermostat.
Par contre, j’ai laissé une configuration centrale afin de pouvoir piloter mes vannes depuis les modes de manière centralisée (et vous verrez plus loin ci-dessous les modes VTherm qui apparaissent sur les cartes créées avec Simple Thermostat).

Ensuite, j’ai dû créer différentes entités sur base de templates car mes vannes thermostatiques ne renvoient que l’entité « heat » ou « off ». Mais pour piloter l’allumage de ma chaudière (= du brûleur pour chauffer l’eau des radiateurs et la faire circuler, le circulateur s’allumant automatiquement en fonction du brûleur sur base du programme interne de la chaudière), j’avais besoin de pouvoir comparer la température de chaque pièce (un capteur de température dans chaque vanne chez moi) avec la température de consigne de chaque vanne. Et ces informations étaient disponibles dans des attributs pour chaque vanne
J’ai donc dû créer des entités sur base des attributs.

Exemple pour la température actuelle du bureau :

{{ state_attr('climate.vanne_thermostatique_bureau', 'current_temperature') }}

Exemple pour la température de consigne du bureau :

{{ state_attr('climate.vanne_thermostatique_bureau', 'temperature') }}

Et pour une gestion un peu plus fine du chauffage, je voulais aussi pouvoir régler l’hystérésis à la fois sur le delta haut et sur le delta bas. J’ai donc pris l’option de calculer un besoin en chauffage pour chaque vanne (différence entre la température mesurée et la température de consigne).
Si le besoin en chauffage d’une vanne (le delta de la vanne) est positif, cela signifie, vu ma formule, qu’il y a des degrés en plus. Et inversement.
Exemple de template qui calcule l’hystérésis pour le bureau (j’ai gratté des codes à gauche à droite sur le forum car je ne m’y connais pas trop en yaml; j’ai juste adapté la formule à mes besoins):

{{ ( states('sensor.temperature_bureau') | float - states('sensor.temperature_consigne_bureau') | float ) | round (2) }}

Je précise qu’au moment où je capture cette illustration, le chauffage est éteint car nous sommes en été, d’où la variation importante de l’hystérésis. Je verrai en hiver ce que ça donne quand la chaudière tournera sur base régulière.

Puis, j’ai calculé un besoin moyen en chauffage via ce template dans l’UI (et j’ai scindé 2 zones pour 2 VTherm, donc j’ai calculé 2 besoins moyens ou hystérésis moyens).
La moyennes reprennent les écarts observés entre température de consigne et température réelle pour chaque vanne concernée dans une zone.
Exemple pour la zone Bureau :

Et je peux du coup comparer ce besoin moyen ou cet hystérésis moyen à l’instant t avec un hystérésis delta bas et un autre pour le delta haut.
Vu que je voulais pouvoir régler ces delta de manière dynamique, j’ai donc créé deux autres entrées input_number variant de 0 à 1 et de 0 à -1.

Exemple:

image

Enfin, j’ai créé une automatisation comparant l’hystérésis moyen avec les delta haut et bas et commandant l’allumage ou la coupure du brûleur de la chaudière en conséquence, et ce pour 2 zones différentes ou 2 VTherm:

alias: Chauffage_Brûleur_Allumer_Eteindre
description: >-
  Allumer ou éteindre le brûleur en fonction de la position de l'hystérésis
  moyen par rapport aux seuils choisis pour les delta bas et delta haut pour
  chacune des 2 zones ou des 2 VTherm.
trigger:
  - platform: state
    entity_id:
      - sensor.hysteresis_moyen_bureau_hall_entree
  - platform: state
    entity_id:
      - sensor.hysteresis_moyen_living
  - platform: state
    entity_id:
      - input_number.hysteresis_reglage_delta_bas
  - platform: state
    entity_id:
      - input_number.hysteresis_reglage_delta_haut
  - platform: state
    entity_id:
      - climate.bureau_entree_wc
  - platform: state
    entity_id:
      - climate.living_cuisine
condition:
  - condition: or
    conditions:
      - condition: state
        entity_id: climate.bureau_entree_wc
        state: heat
      - condition: state
        entity_id: climate.living_cuisine
        state: heat
action:
  - choose:
      - conditions:
          - condition: state
            entity_id: climate.living_cuisine
            state: heat
          - condition: numeric_state
            entity_id: sensor.hysteresis_moyen_living
            below: input_number.hysteresis_reglage_delta_bas
        sequence:
          - service: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: switch.bruleur
      - conditions:
          - condition: state
            entity_id: climate.living_cuisine
            state: heat
          - condition: numeric_state
            entity_id: sensor.hysteresis_moyen_living
            above: input_number.hysteresis_reglage_delta_haut
          - condition: or
            conditions:
              - condition: numeric_state
                entity_id: sensor.hysteresis_moyen_bureau_hall_entree
                above: input_number.hysteresis_reglage_delta_haut
              - condition: state
                entity_id: climate.bureau_entree_wc
                state: "off"
        sequence:
          - service: switch.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: switch.bruleur
  - choose:
      - conditions:
          - condition: state
            entity_id: climate.bureau_entree_wc
            state: heat
          - condition: numeric_state
            entity_id: sensor.hysteresis_moyen_bureau_hall_entree
            below: input_number.hysteresis_reglage_delta_bas
        sequence:
          - service: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: switch.bruleur
      - conditions:
          - condition: state
            entity_id: climate.bureau_entree_wc
            state: heat
          - condition: numeric_state
            entity_id: sensor.hysteresis_moyen_bureau_hall_entree
            above: input_number.hysteresis_reglage_delta_haut
          - condition: or
            conditions:
              - condition: numeric_state
                entity_id: sensor.hysteresis_moyen_living
                above: input_number.hysteresis_reglage_delta_haut
              - condition: state
                entity_id: climate.living_cuisine
                state: "off"
        sequence:
          - service: switch.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: switch.bruleur
mode: single

Et j’ai testé et récupéré tout cela sur mon tableau de bord :ok_hand:

Pour finir, j’ai aussi ajouté une automatisation pour carrément couper la prise de la chaudière (et le scheduler) quand je clique sur « Eteint » sur les 2 VTherm. ça permet d’éviter les quelques watts/heure qui sont consommés en mode veille de la chaudière et du circulateur.

alias: Auto_Chaudière_On_Off
description: >-
  Allumer ou éteindre la chaudière et le programme Confort/Eco en fonction du
  VTherm Living et du VTherm Bureau Entrée WC.
trigger:
  - platform: state
    entity_id:
      - climate.bureau_entree_wc
  - platform: state
    entity_id:
      - climate.living_cuisine
condition: []
action:
  - choose:
      - conditions:
          - condition: or
            conditions:
              - condition: state
                entity_id: climate.bureau_entree_wc
                state: heat
              - condition: state
                entity_id: climate.living_cuisine
                state: heat
        sequence:
          - service: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.chaudiere_prise
                - switch.schedule_confort_eco
      - conditions:
          - condition: and
            conditions:
              - condition: state
                entity_id: climate.bureau_entree_wc
                state: "off"
              - condition: state
                entity_id: climate.living_cuisine
                state: "off"
        sequence:
          - service: switch.turn_off
            target:
              entity_id:
                - switch.chaudiere_prise
                - switch.schedule_confort_eco
            data: {}
mode: single

Ainsi, mon chauffage tourne avec Versatile Thermostat comme base, 2 automatisations, et des cartes pour le tableau de bord (cartes conseillées dans le Readme de Versatile Thermostat qui est la base de ma gestion) dont Simple Thermostat et le Scheduler.