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.