[Blueprint] - automation - switch entre deux scènes

Bonjour,

Je suppose que ce genre de blueprint existe sans doute en 25 exemplaires, mais c’était une bonne occasion pour moi de découvrir comment ça fonctionnait, et me simplifier la vie.

Le besoin de départ était simple : au clic sur un interrupteur, lancer une scène (allumer les lumières, la clim, lancer la musique, …) et pour un second clic, éteindre tout ça.

J’étais donc parti sur à chaque fois une suite d’instructions qui disait : « en fonction de l’état actuel d’un input_boolean, lance la scène A ou la scène B, puis change l’état de mon input »

Puis la situation se représentant, je me suis dit qu’il y avait plus intelligent à faire. D’où ce blueprint qui me permet de créer une automatisation pour chaque toggle de scène que je veux faire.

3 entrées requises :

  • un input_boolean qui va servir à « stocker » l’état actuel du toggle
  • une scène « ON » à déclencher quand l’état du input_boolean vaudra ‹ on ›
  • une scène « OFF » à déclencher quand l’état du input_boolean vaudra ‹ off ›

J’ai mis mon code dans /homeassistant/blueprints/automation/PBN/toggle_scene.yaml :

blueprint:
  name: Switch between 2 scenes
  description: Switch between two scenes based on an input_boolean state
  domain: automation
  # source_url: TODO
  author: PBN
  input:
    input_boolean_entity:
      name: Boolean input that will switch the scenes
      selector:
        entity:
          filter:
            domain: input_boolean
    scene_on_entity:
      name: ON scene
      description: "Scene that will trigger when the state of the input_boolean is 'on'"
      selector:
        entity:
          filter:
            domain: scene
    scene_off_entity:
      name: OFF scene
      description: "Scene that will trigger when the state of the input_boolean is 'off'"
      selector:
        entity:
          filter:
            domain: scene

trigger:
  platform: state
  entity_id: !input input_boolean_entity

variables:
  var_input_boolean: !input input_boolean_entity

action:
  if:
    - condition: template
      value_template: "{{(states(var_input_boolean) == 'on')}}"
      alias: "The input_boolean state is 'on'"
  then:
    - alias: "Turn on the 'ON scene'"
      service: scene.turn_on
      target:
        entity_id: !input scene_on_entity
  else:
    - alias: "Turn on the 'OFF scene'"
      service: scene.turn_on
      target:
        entity_id: !input scene_off_entity

A l’écoute de toutes vos remarques bienveillantes, et sinon, utilisez la tant que vous voulez :slight_smile:

2 « J'aime »