Dans un de mes premier article sur Home Assistant, j’avais vu comment créer une automatisation en utilisant un blueprint, ensuite, j’ai montré, en utilisant en exemple l’allumage d’une lampe, comment créer une automatisation manuellement. Il est temps de montrer comment créer son propre blueprint. Le blueprint, via une interface graphique, va te permettre de sélectionner tes différents éléments pour la mise en place de l’automatisation sans avoir à aller coder dans les fichiers YAML.
La première question à laquelle je vais répondre est : « Pourquoi créer son Blueprint ? »
La réponse est des plus simple, j’ai fait un exemple pour allumer une lampe après la détection d’un mouvement entre deux heures, j’imagine qu’il n’y a pas qu’une lampe chez toi, le blueprint va te permettre de mettre tes automatisation en place plus rapidement, que ce soit pour des lampes, des capteurs, des interrupteurs …
Pour cet article, je vais reprendre l’exemple de l’automatisation créée précédemment :
- id: Light-with-mvt
alias: Lumière avec mouvement
trigger:
- platform: state
entity_id: binary_sensor.lumi_lumi_sensor_motion_81807f04_ias_zone
from: 'off'
to: 'on'
condition:
- condition: time
after: "19:00:00"
before: "07:00:00"
action:
- service: light.turn_on
target:
entity_id: light.lumi_lumi_light_aqcn02_c4865d04_level_light_color_on_off
data:
color_temp: 200
brightness_pct: 25
- wait_for_trigger:
platform: state
entity_id: binary_sensor.lumi_lumi_sensor_motion_81807f04_ias_zone
from: "on"
to: "off"
- delay:
seconds: 60
- service: light.turn_off
target:
entity_id: light.lumi_lumi_light_aqcn02_c4865d04_level_light_color_on_off
mode: restart
max_exceeded: silent
Je ne vais pas revenir dessus, tu peux retrouver les informations sur cette page. D’ailleurs, je te conseille d’aller jeter un petit coup d’oeil, je me concentrerai seulement sur la partie de blueprint.
Explication
Je commence par fournir le blueprint, que je viendrai expliquer :
blueprint:
name: Lumière activée par le mouvement entre 2 heures
description: Allume la lumière quand un mouvement est détecté entre deux heures.
domain: automation
input:
motion_entity:
name: Capteur de mouvement
selector:
entity:
domain: binary_sensor
device_class: motion
light_target:
name: Light
selector:
target:
entity:
domain: light
no_motion_wait:
name: "Temps d'attente"
description: Temps après le dernier mouvement pour éteindre la lumière.
default: 120
selector:
number:
min: 0
max: 3600
unit_of_measurement: seconds
time_after:
name: "Heure du début"
description: "Heure à laquelle commence l'allumage de la lumière"
selector:
time:
time_before:
name: "Heure de fin"
description: "Heure à laquelle se termine le déclenchement l'allumage de la lumière"
selector:
time:
mode: restart
max_exceeded: silent
trigger:
platform: state
entity_id: !input motion_entity
from: "off"
to: "on"
condition:
- condition: time
after: !input time_after
before: !input time_before
action:
- service: light.turn_on
target: !input light_target
- wait_for_trigger:
platform: state
entity_id: !input motion_entity
from: "on"
to: "off"
- delay: !input no_motion_wait
- service: light.turn_off
target: !input light_target
Le fichier doit commencer par blueprint, afin de clairement faire comprendre à Home Assistant ce qu’il est. Ensuite, on lui donne un nom (name), une description (description) et un domaine (domain) :
blueprint: name: Lumière activée par le mouvement entre 2 heures description: Allume la lumière quand un mouvement est détecté entre deux heures. domain: automation
Dans la seconde partie, tu devras indiquer les entrées. Les entrées sont ce que tu devras saisir pour la mise en place de ton automatisation (capteur, zone, équipement, heure…). Pour chaque entrée, il faudra lui donner un nom (qui sera utilisé pour récupérer l’entrée), un sélecteur (selector) qui permet de définir ce qui sera affiché sur la création de l’automatisation pour cette entrée et les options de ce selector. Dans cette partie, nous ne renseignons pas les entités ou groupes :
input:
motion_entity:
name: Capteur de mouvement
selector:
entity:
domain: binary_sensor
device_class: motion
light_target:
name: Light
selector:
target:
entity:
domain: light
no_motion_wait:
name: "Temps d'attente"
description: Temps après le dernier mouvement pour éteindre la lumière.
default: 120
selector:
number:
min: 0
max: 3600
unit_of_measurement: seconds
time_after:
name: "Heure du début"
description: "Heure à laquelle commence l'allumage de la lumière"
selector:
time:
Dans la seconde partie du code, nous retrouvons nos déclencheurs, nos actions et nos conditions, les informations qui sont habituellement saisie sont remplacées par une phrase de ce type : !input no_wait_motion. Cela permet de signifier que cette entité sera l’entrée avec se nom (dans notre cas no_wait_motion).
Conclusion
La création d’un blueprint n’est pas plus compliqué que la création d’une automatisation, elle est à privilégier surtout si l’on sait que plusieurs automatisations y feront référence.