Forum Francophone Home Assistant

Automation avec if / else ou choose / default

Bonjour,

Je suis en train d’écrire des automations pour entrer différentes consignes en fonction d’un calendrier.

J’ai deux input number :

  • consigne_salon_confort
  • consigne_salon_nuit

Une mémoire input number de réception de la consigne : temperature_salon_en_cours

un input boolean pour la sélection confort / nuit

j’essaye de simplifier deux automations pour n’en faire qu’une du type if / else plutôt que d’en écrire deux opposées.
Mais je n’arrive pas à l’écrire correctement sans que le système me les rejette. Pourriez-vous m’aider à correctement l’écrire ?

Voici celles qui fonctionnent :

- id: 'Selection T° Salon confort'
  alias: Selection Temp Salon confort
  description: 'Transferer temp consigne confort salon dans memoire T° Salon'
  trigger:
    - platform: state
      entity_id: input_boolean.bit_temperature_confort_salon
      to: 'on'
  action:
  - service: input_number.set_value
    data_template:
       entity_id: input_number.temperature_salon_en_cours
       value: "{{ states('input_number.consigne_salon_confort') }}"
 
  ######################################################
 
- id: 'Selection T° nuit Salon '
  alias: Selection Temp nuit Salon
  description: 'Transferer temp consigne salon dans memoire T° Salon'
  trigger:
    - platform: state
      entity_id: input_boolean.bit_temperature_confort_salon
      to: 'off'
  action:
  - service: input_number.set_value
    data_template:
       entity_id: input_number.temperature_salon_en_cours
       value: "{{ states('input_number.consigne_salon_nuit') }}"
 
  ######################################################

Voici celle que j’essaie de créer pour simplifier

- id: 'Selection T° Salon confort'
  alias: Selection Temp Salon
  description: 'Transferer temp consigne salon dans memoire T° Salon'

  trigger:
    - platform: state
      entity_id: input_boolean.bit_temperature_confort_salon
      
  action:
    - choose:
        - condition: state
          entity_id: input_boolean.bit_temperature_confort_salon
          to: 'on'
         
        - service: input_number.set_value
          data_template:
          entity_id: input_number.temperature_salon_en_cours
          value: "{{ states('input_number.consigne_salon_confort') }}"
   
      default:
        - service: input_number.set_value
          data_template:
          entity_id: input_number.temperature_salon_en_cours
          value: "{{ states('input_number.consigne_salon_nuit') }}"

c’est où qu’ cét-y que je merdouille ?

salut essaye avec quelque chose comme ca:
si tu met choix1 après choix 2
attention au guillemet je suis pas sure qu’il soit bon.
par contre la structure est bonne

alias: Nouvelle automatisation
description: ''
mode: single
trigger:
  - platform: state
    entity_id: input_boolean.bit_temperature_confort_salon
condition: []
action:
  - choose:
      - conditions:
          - condition: state
            entity_id: input_boolean.bit_temperature_confort_salon
            state: 'on'
        sequence:
          - service: input_number.set_value
            data:
              value: '{{ states(''input_number.consigne_salon_confort'') }}'
            entity_id: input_number.temperature_salon_en_cours
      - conditions:
          - condition: state
            entity_id: input_boolean.bit_temperature_confort_salon
            state: 'off'
        sequence:
          - service: input_number.set_value
            data:
              value: '{{ states(''input_number.consigne_salon_nuit'') }}'
            entity_id: input_number.temperature_salon_en_cours
    default: []
1 J'aime

Hellooooooo !

Oui, çà marche ainsi :+1: t’es trop fort ! :muscle: Juste un peu modifié les guillemets ainsi :

- id: 'Selection T° Salon confort'
  alias: Selection Temp Salon
  description: 'Transferer temp consigne salon dans memoire T° Salon'

  trigger:
    - platform: state
      entity_id: input_boolean.bit_temperature_confort_salon
  condition: []
  action:
    - choose:
        - conditions:
            - condition: state
              entity_id: input_boolean.bit_temperature_confort_salon
              state: 'on'
          sequence:
            - service: input_number.set_value
              data:
                value: "{{ states('input_number.consigne_salon_confort') }}"
              entity_id: input_number.temperature_salon_en_cours
        - conditions:
            - condition: state
              entity_id: input_boolean.bit_temperature_confort_salon
              state: 'off'
          sequence:
            - service: input_number.set_value
              data:
                value: "{{ states('input_number.consigne_salon_nuit') }}"
              entity_id: input_number.temperature_salon_en_cours   
   
      default: []

Ensuite, j’ai tenté et AVEC SUCCES (si si , cà m’arrive !!) :champagne: :muscle: :champagne: de réduire encore l’automation. Et comme vous l’attendez tous… La voilà :

  #####################################################
  ## TRANSFERT CONSIGNES T° >>> MEMOIRE T° EN-COURS  ##
  #####################################################
  
- id: 'Selection T° Salon confort'
  alias: Selection Temp Salon
  description: 'Transferer temp consigne salon dans memoire T° Salon'

  trigger:
    - platform: state
      entity_id: input_boolean.bit_temperature_confort_salon
 
  action:
    - choose:
        - conditions:
            - condition: state
              entity_id: input_boolean.bit_temperature_confort_salon
        # Si appel T° confort      
              state: 'on'
          sequence:
            - service: input_number.set_value
              data:
                value: "{{ states('input_number.consigne_salon_confort') }}"
              entity_id: input_number.temperature_salon_en_cours
        # Si appel T° Nuit      
      default: 
        - service: input_number.set_value
          data:
            value: "{{ states('input_number.consigne_salon_nuit') }}"
          entity_id: input_number.temperature_salon_en_cours   
  
  ######################################################
1 J'aime