Automatisation : conditions multiple état et numerique

Bonjour,

Jusqu’à présent j’ai toujours fait des automatisation simpleset là j’ai un problème avec des conditions multiples. J’ai même essayé avec chatgpt, mais il est pas au point.

Je sais écrire dans dans pas mal de langage mais en yaml c’est différent.

Voilà ce que j’aimerai :
SI sensor.virt_snd_tp_grand_grenier_et_sdb >= 2
ET
input_boolean.btn_Arret_derogation_ventil_sdb n’est pas actif
ET
input_boolean.btn_ete_hiver_ventil_sdb est actif
ALORS
on allume switch.z2m_pc06_watt_ventil_grd_grenier_vers_sdb
SINON
on eteint switch.z2m_pc06_watt_ventil_grd_grenier_vers_sdb

Voilà ce que me sort chatgpt

alias: Automatisation Ventilation SDB en fonction de la température
trigger:
  - platform: numeric_state
    entity_id: sensor.virt_snd_tp_grand_grenier_et_sdb
    above: 2
condition:
  - condition: state
    entity_id: input_boolean.btn_Arret_derogation_ventil_sdb
    state: 'off'
  - condition: state
    entity_id: input_boolean.btn_ete_hiver_ventil_sdb
    state: 'on'
action:
  - choose:
      - conditions:
          - condition: and
            conditions:
              - condition: state
                entity_id: sensor.virt_snd_tp_grand_grenier_et_sdb
                above: 2
              - condition: state
                entity_id: input_boolean.btn_Arret_derogation_ventil_sdb
                state: 'off'
              - condition: state
                entity_id: input_boolean.btn_ete_hiver_ventil_sdb
                state: 'on'
        sequence:
          - service: switch.turn_on
            entity_id: switch.z2m_pc06_watt_ventil_grd_grenier_vers_sdb
      - conditions:
          - condition: not
            conditions:
              - condition: state
                entity_id: sensor.virt_snd_tp_grand_grenier_et_sdb
                above: 2
              - condition: state
                entity_id: input_boolean.btn_Arret_derogation_ventil_sdb
                state: 'off'
              - condition: state
                entity_id: input_boolean.btn_ete_hiver_ventil_sdb
                state: 'on'
        sequence:
          - service: switch.turn_off
            entity_id: switch.z2m_pc06_watt_ventil_grd_grenier_vers_sdb

Si quelqu’un a une idée, je suis preneur

Merci

Salut,
peux-tu essayer en mettant

trigger: 
     sensor.virt_snd_tp_grand_grenier_et_sdb >= 2
pas de condition
en action:
si
        input_boolean.btn_Arret_derogation_ventil_sdb n’est pas actif
        et 
         input_boolean.btn_ete_hiver_ventil_sdb est actif
alors 
        on allume switch.z2m_pc06_watt_ventil_grd_grenier_vers_sdb
sinon
        on eteint switch.z2m_pc06_watt_ventil_grd_grenier_vers_sdb

j’ai volontairement mis que le principe, je te laisse chercher un peu pour le code.

1 « J'aime »

Merci pour le coup de pouce.
Je sens une certaine analogie avec SQL où on peut mettre pas mal de chose dans une clause

Ton coup de pouce m’a permis de me remettre sur les rails. Merci encore

alias: 04a-Action - Enclencher ventillation grenier vers SDB
description: >-
  Si les conditions le permettent, alors on récupère la chaleur du grand grenier
  pour l'envoyer vers la salle de bain
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.virt_snd_tp_grand_grenier_et_sdb
    above: 2
  - platform: state
    entity_id:
      - input_boolean.btn_arret_derogation_ventil_sdb
  - platform: state
    entity_id:
      - input_boolean.btn_ete_hiver_ventil_sdb
condition: []
action:
  - if:
      - condition: and
        conditions:
          - condition: state
            entity_id: input_boolean.btn_arret_derogation_ventil_sdb
            state: "off"
          - condition: state
            entity_id: input_boolean.btn_ete_hiver_ventil_sdb
            state: "on"
    then:
      - service: switch.turn_on
        target:
          entity_id: switch.z2m_pc06_watt_ventil_grd_grenier_vers_sdb
        data: {}
    else:
      - service: switch.turn_off
        target:
          entity_id: switch.z2m_pc06_watt_ventil_grd_grenier_vers_sdb
        data: {}
mode: single