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
Je suis déjà très content de moi
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:
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
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.