Gestion du chauffage et ouverture de fenêtre

Bonjour à tous,
Je souhaiterais optimiser la gestion du chauffage en fonction de l’ouverture de l’ouverture de mes fenêtres.
Voilà l’existant :
Le chauffage se coupe quand une fenêtre est ouverte avec cette automatisation :

- id: chauffage_et_fenetre_parents_off
  alias: Chauffage & Fenêtre Parents Off
  description: ''
  trigger:
  - platform: state
    entity_id: binary_sensor.fenetre_parents_contact
    to: 'on'
    for:
      hours: 0
      minutes: 1
      seconds: 0
  condition: []
  action:
  - device_id: 4bd66fa2051956afc1f69005540bc096
    domain: climate
    entity_id: climate.split_parents
    type: set_hvac_mode
    hvac_mode: 'off'
  mode: single

Quand les fenêtres sont à nouveau fermées. Je voudrais que le chauffage se remette dans l’état avant ouverture.
Pour le moment, tout ce que j’arrive à faire c’est lui dire de se relancer dans un mode défini avec ce code :

- id: chauffage_et_fenetre_parents_on
  alias: Chauffage & Fenêtre Parents On
  description: ''
  trigger:
  - platform: state
    entity_id: binary_sensor.fenetre_parents_contact
    to: 'off'
    for:
      hours: 0
      minutes: 1
      seconds: 0
      milliseconds: 0
  condition: []
  action:
  - device_id: 4bd66fa2051956afc1f69005540bc096
    domain: climate
    entity_id: climate.split_parents
    type: set_hvac_mode
    hvac_mode: heat
  mode: single

Mon problème est donc qui si le chauffage était éteint avant l’ouverture des fenêtres, il s’allumera à la fermeture de ces derniers. Ce que je voudrais c’est que l’état soit le même qu’avant l’ouverture. Que si il était éteint avant l’ouverture, il reste éteint après l’ouverture.
Il doit falloir créer des sensors ou des templates mais honnêtement je rame sur ces deux sujet.


System Information

version core-2023.1.5
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.10.7
os_name Linux
os_version 5.15.76-v8
arch aarch64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.29.1
Stage running
Available Repositories 1268
Downloaded Repositories 19
Home Assistant Cloud
logged_in true
subscription_expiration 15 février 2023, 01:00
relayer_connected true
remote_enabled true
remote_connected true
alexa_enabled true
google_enabled false
remote_server eu-central-1-3.ui.nabu.casa
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 9.4
update_channel stable
supervisor_version supervisor-2022.12.1
agent_version 1.4.1
docker_version 20.10.19
disk_total 219.4 GB
disk_used 9.0 GB
healthy true
supported true
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Terminal & SSH (9.6.1), File editor (5.5.0), Duck DNS (1.15.0), Let’s Encrypt (4.12.7), deCONZ (6.16.0), Samba share (10.0.0), Check Home Assistant configuration (3.11.0), Samba Backup (5.2.0), Zigbee2MQTT (1.29.2-1), Mosquitto broker (6.1.3), AirCast (3.5.1), MariaDB (2.5.1)
Dashboards
dashboards 1
resources 14
views 8
mode storage
___

bonjour, il faut créer un input_text (ex memoire)

pour dans l’automatisation Chauffage & Fenêtre Parents Off

il faut mettre en 1ière action

action:
  - service: input_text.set_value
    data:
      value: "{{states.climate.split_parents.state }}"
    target:
      entity_id: input_text.test_memoire

puis dans l’automatisation Chauffage & Fenêtre Parents On

action:
  - device_id: 4bd66fa2051956afc1f69005540bc096
    domain: climate
    entity_id: climate.split_parents
    type: set_hvac_mode
    hvac_mode: "{{states.input_text.test_memoire.state }}"

bon courage

Merci, je vais essayer ça.

L’autre solution c’est d’utiliser un thermostat qui intégre la gestion des ouvrants directement pour éviter les automatisations. Ca se passe ici : Nouveau thermostat type proportionnel avec gestion des presets / portes et fenêtres / détection de mouvement / gestion de présence et surconsommation

D’après le descriptif, l’intégration a l’air intéressante mais je ne suis pas concerné puisque mes splits gèrent plus que du on/off.

Hello

@Jean-Marc_Collin , tu suggère un thermostat qui as développé , sinon tu as aussi
Qui je pense va plus rentré dans tes besoins si j’ai compris ce que tu souhaite

Pour simplifier la gestion des automatismes par équipement (ex chauffage parents.)

tu ne peux créer qu’un seul automatisme avec la fonction choose dans action.

choix 1 quand fermé
choix 2 quand ouvert

Dans trigger tu peux aussi nommer chaque événement avec son propre ID cela facilite l’écriture.

dans action tu choisis Declenché par puis le nom de l’ID que tu as mis
un exemple perso

alias: Pilotage  Chauffage Ch RDC par fermeture ou ouverture Fenêtre
description: ""
trigger:
  - type: not_opened
    platform: device
    device_id: 35853a364831750a1f97fd882e481982
    entity_id: binary_sensor.contact_fenetre_ch_rdc_contact
    domain: binary_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 20
    id: Fenetre fermé
  - type: opened
    platform: device
    device_id: 35853a364831750a1f97fd882e481982
    entity_id: binary_sensor.contact_fenetre_ch_rdc_contact
    domain: binary_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 10
    id: Fenetre ouverte
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: Fenetre ouverte
        sequence:
          - type: turn_on
            device_id: 31a3ef0a08d7ba6e1c8bf94dd3316f3d
            entity_id: switch.commande_chauffage_ch_rdc_l2
            domain: switch
      - conditions:
          - condition: trigger
            id: Fenetre fermé
        sequence:
          - type: turn_off
            device_id: 31a3ef0a08d7ba6e1c8bf94dd3316f3d
            entity_id: switch.commande_chauffage_ch_rdc_l2
            domain: switch
    enabled: true
mode: single

mais libre à chacun de faire …

Awesome Thermostat fait aussi du On/Off. Donc ca ne va pas aller non plus. Je suis reparti de Awesome Thermostat pour faire le mien, donc je vois bien que ça ne va pas le faire non plus.

Un jour je vais le gérer mais pas tout de suite.

@Jean-Marc_Collin
Chaque chose en sont temps :wink: :wink:

1 « J'aime »

J’ai essayé le code indiqué mais l’éditeur me signale qu’il ne peut recevoir qu’une liste d’états précis : heat, cool, dry… et refuse"{{states.input_text.test_memoire.state }}"

Bizarre essaie en appelant un service climate en remplacement

j’ai testé cela fonctionne chez moi

action:
  - service: climate.set_hvac_mode
    data:
      hvac_mode: "{{states.input_text.test_memoire.state }}"
    target:
      entity_id: climate.split_parents

En fait, j’ai ré-écrit l’automatisation que j’avais au départ. Ce qui me permet de combiner les deux. Ca donne ça maintenant :

alias: Arrêt_Reprise_Chauffage_Parents_si_ouverture
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.fenetre_parents_contact
    to: "on"
    for:
      hours: 0
      minutes: 0
      seconds: 0
condition:
  - condition: state
    entity_id: climate.split_parents
    state: heat
action:
  - service: climate.set_hvac_mode
    data:
      hvac_mode: "off"
    target:
      entity_id: climate.split_parents
  - wait_for_trigger:
      - platform: state
        entity_id:
          - binary_sensor.fenetre_parents_contact
        to: "off"
  - service: climate.set_hvac_mode
    data:
      hvac_mode: heat
    target:
      entity_id: climate.split_parents
mode: single

Comme ça, ça ne lance l’automatisation que si le split fonctionnait déjà. S’il était éteint, elle ne se déclenche pas.

1 « J'aime »

Encore plus simple, bravo
bonne continuation

Merci mais il me reste encore un problème à régler. Le cas où j’ai deux fenêtres dans une même pièce. Je ne sais pas comment lui dire de relancer le chauffage que si les deux sont bien fermées. J’ai essayé de faire un groupe avec les fenêtre mais il ne récupère pas l’état ouvert ou fermé. Il faudrait sûrement créer une entité à partir de ce groupe et faire passer cette entité sous la forme fenêtre mais je sèche.

il faut faire un si alors et dans le si mettre un et


il reproduire la phrase: si les 2 fenêtres sont fermées alors je mets le chauffage

1 « J'aime »

Merci beaucoup, je n’y avais pas pensé à celui là ! Je tente ça de suite !

Il se coupe bien en fonction d’une ouverture et ne reprend pas si l’une des fenêtre est ouverte mais il ne reprend pas du tout…
En passant par le si alors, je perds le côté wait for.

alias: Arrêt_Reprise_Chauffage_Salon/Cuisine_si_ouverture
description: ""
alias: Arrêt_Reprise_Chauffage_Salon/Cuisine_si_ouverture
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.porte_fenetre_cuisine_contact
    to: "on"
    for:
      hours: 0
      minutes: 0
      seconds: 0
  - platform: state
    entity_id:
      - binary_sensor.porte_fenetre_salon_contact
    to: "on"
condition:
  - condition: state
    state: heat
    entity_id: climate.split_salon
action:
  - service: climate.set_hvac_mode
    data:
      hvac_mode: "off"
    target:
      entity_id: climate.split_salon
  - if:
      - condition: and
        conditions:
          - condition: state
            entity_id: binary_sensor.porte_fenetre_cuisine_contact
            state: "off"
          - condition: state
            entity_id: binary_sensor.porte_fenetre_salon_contact
            state: "off"
    then:
      - service: climate.set_hvac_mode
        data:
          hvac_mode: heat
        target:
          entity_id: climate.split_salon
mode: single


Bonjour,
c’est un sujet que j’avais en suspend aussi !

A l’ouverture de la fenêtre je modifie le preset_mode si mon contact sec qui pilote la chaudière est On:

  - service: climate.set_preset_mode
    data:
      preset_mode: away
    target:
      entity_id: climate.sejour

A la fermeture je modifie le preset_mode vers eco qui n’était pas forcément le preset_mode à l’ouverture :

  - service: climate.set_preset_mode
    data:
      preset_mode: eco
    target:
      entity_id: climate.sejour

Dans la même idée que celle de @egensperger :

Est-il possible de récupérer non pas l’état mais le preset_mode ?

  - service: input_text.set_value
    data:
      value: "{{states.climate.sejour.state}}" # Sauvegarder ici le preset_mode plutôt que l'état
    target:
      entity_id: input_text.mem_preset_sejour

Merci
Bob

C’était pour info mais je dois pouvoir m’en sortir aussi en simplifiant avec :

hvac_mode: "off"

Ou

hvac_mode: heat

Merci
Bob

c’est normal ton déclencheur est quand il passe à on, il faut un déclencheur sur off