Blueprint: list de !input

Mon problème

J’ai créé un blueprint pour gérer la lumière avec un détecteur de mouvement, et en plus conditionner ça à un boolean.

L’idée c’est « il fait jour, je veux pas que ma lumière s’active », ici « il fait jour » est fourni par un helper.

Ce que j’aimerais

J’aimerais pouvoir passer plusieurs boolean si nécessaire, et je ne sais pas comment faire:

  • comment faire que !input boolean_condition soit une liste et non plus un simple bool ?
  • comment faire que value_template: "{{ is_state(boolean_condition, 'on') }}" prenne cette liste en compte ?

La seule idée que j’aurais, mais c’est pas très propre, c’est de rajouter un boolean_condition2 (et 3, et 4, …), et leur mettre en valeur par défaut true, j’avoue que ça ne me plait pas trop :joy:

Mon blueprint

Voici le code de mon blueprint actuellement.

blueprint:
  name: "Lumière avec détection présence et condition"
  domain: automation
  input:
    motion_entity:
      name: Motion Sensor
      selector:
        entity:
          domain: binary_sensor
          device_class: motion
    light_target:
      name: Light
      selector:
        target:
          entity:
            domain: light
    no_motion_wait:
      name: Wait time
      description: Time to leave the light on after last motion is detected.
      default: 120
      selector:
        number:
          min: 0
          max: 3600
          unit_of_measurement: seconds
    boolean_condition:
      name: Boolean to control the automation
      default: true
      selector:
        entity:
          domain: input_boolean

variables:
  boolean_condition: !input "boolean_condition"

# If motion is detected within the delay,
# we restart the script.
mode: restart
max_exceeded: silent

trigger:
  platform: state
  entity_id: !input motion_entity
  from: "off"
  to: "on"

action:
  - choose:
      - conditions:
          - condition: template
            alias: "Turn on only if {{ boolean_condition }} is true"
            value_template: "{{ is_state(boolean_condition, 'on') }}"
        sequence:
          - alias: "Turn on the light"
            service: light.turn_on
            target: !input light_target
          - alias: "Wait until there is no motion from device"
            wait_for_trigger:
              platform: state
              entity_id: !input motion_entity
              from: "on"
              to: "off"
          - alias: "Wait the number of seconds that has been set"
            delay: !input no_motion_wait
          - alias: "Turn off the light"
            service: light.turn_off
            target: !input light_target

Salut

Une autre solution serait de te faire un template qui regroupe tout tes tests.
Mais bon la on parle d’un blueprint donc en principe tu devrais faire une boucle pour gérer une infinité de conditions d’une part et choisir les X conditions dans l’automatisation créée par le déroulement du blueprint