Blueprints in Home Assistant zijn templates om automatiseringen of scripts te maken. Dit wordt gebruikt om niet telkens een zelfde soort automatisering of script te hoeven maken en veel Home Assistant enthousiastelingen hebben blueprints gemaakt die door iedereen gebruikt mogen worden. Je kunt die blueprints ophalen/importeren via Git repositories.
Via het community forum van Home Assistant worden veel blueprints uitgewisseld en de laatste toevoegingen vind je hier: https://community.home-assistant.io/c/blueprints-exchange
Blueprints zijn ook zelf te maken met behulp van yaml-bestanden en die komen dan in de directory /homeassistant/blueprints
, verdeeld in automations en scripts.
Zelf maken van een blueprint
Handig is het om een automatisering te maken die later omgezet (lees: herschreven) wordt naar een blueprint. Een eenvoudige automatisering is om het licht uit te zetten als iedereen het huis verlaten heeft. Bijvoorbeeld:
Als we naar de yaml-code hiervan kijken zien we het volgende:
alias: Gang verlichting uit als niemand meer thuis is description: "" triggers: - trigger: numeric_state entity_id: - zone.home below: 1 conditions: [] actions: - action: light.turn_off metadata: {} data: {} target: entity_id: light.lampgang mode: single
Deze code wordt dan gekopieerd en dient aangepast te worden om er een blueprint van te maken. Het beste kan dat met de ‘Studio Code Server’ Add-on gedaan worden.
Als we de (lege) overbodige code eruit halen, houden we dit over:
alias: Gang verlichting uit als niemand meer thuis is triggers: - trigger: numeric_state entity_id: - zone.home below: 1 actions: - action: light.turn_off target: entity_id: light.lampgang mode: single
De regel met de alias wordt vervangen door:
blueprint: name: Licht uit als home = 0 description: Verlichting uit als niemand meer thuis is domain: automation
De action entiteit is niet altijd hetzelfde, als de blueprint gedeeld wordt via een git-repository is deze hoogstwaarschijnlijk een andere benaming, dus wordt er in een blueprint een zogenaamde input gebruikt. Deze vraagt aan de gebruiker welke lamp er uitgezet dient te worden.
Vervang daarom de target in de action door de volgende code:
target: !input target_light
Het gedeelte voor de actions wordt dan:
actions: - action: light.turn_off target: !input target_light
De reden dat er geen entity_id meer bij de target staat is om ook een ruimte te kunnen kiezen.
Alle variabelen voor inputs dienen gedeclareerd te worden in het blueprint: gedeelte en daarvoor wordt het volgende toegevoegd:
input: selector: target: entity: - domain: light
Hiermee worden uitsluitend lights getoond aan de gebruiker bij het kiezen van de verlichting.
De complete code ziet er dan zo uit en die wordt in /homeassistant/blueprints/automation/digital-domo/verlichting_uit_niemand_thuis.yaml geplaatst:
blueprint: name: Licht uit als home = 0 description: Verlichting uit als niemand meer thuis is domain: automation author: Digital Domo input: target_light: selector: target: entity: - domain: light triggers: - trigger: numeric_state entity_id: - zone.home below: 1 actions: - action: light.turn_off target: !input target_light mode: single
Automatisering aanmaken met behulp van een blueprint
Via Instellingen -> Automatiseringen en Scènes kunnen we voor Blueprints kiezen en daar staat dan de nieuwe blueprint:
Zodra deze gekozen wordt verschijnt de invoer voor een automatisering en het enige dat gedaan hoeft te worden is kiezen welke verlichting uit moet gaan:
Hier kan nu gekozen worden voor een Ruimte of een Entiteit en via Opslaan kan de automatisering hernoemt worden:
Ik heb hier een paar blueprints in mijn Gitlab-repo gezet en voorzien van wat uitleg in de tutorial file: