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.
Via het community forum van Home Assistant worden veel blueprints uitgewisseld en de deze vind je hier: https://community.home-assistant.io/c/blueprints-exchange
Uiteraard kun je blueprints ook zelf maken met behulp van yaml-bestanden en die komen dan in de directory /homeassistant/blueprints, verdeeld in automation, script of template.
Zelf maken van een blueprint
Uiteraard is er een tekst editor nodig voor het schrijven van yaml-bestanden en de meest voor de hand liggende is de Studio Code Server add-on.
Blueprint Schema
Een blueprint bevat minimaal de naam en het domain, optioneel gevolgd door een description, author en eventueel inputs. Maak een yaml file nieuw bestand met de volgende inhoud en sla dit op in /homeassistant/blueprints/automation/ als voorbeeld_blueprint.yaml
blueprint: name: Voorbeeld blueprint domain: automation
Het domain geeft aan waar de blueprint voor bedoeld is, dit kan zijn:
- automation
- script
- template
Blueprint inputs
Een of meerdere inputs kunnen gebruikt worden om aan de gebruiker te vragen om in te vullen of te selecteren. Inputs kunnen van het type tekst, boolean, list of map zijn en vallen altijd onder de blueprint ‘parent‘. Plaats de input in het bestand voorbeeld_blueprint.yaml en sla op.:
blueprint:
name: Voorbeeld blueprint
domain: automation
input:
mijn_input:
name: Mijn input
Kies in Automatiseringen voor Nieuwe automatisering en kies voor de voorbeeld-blueprint. Dit zal het volgende weergeven:
Blueprint input met selector
Over het algemeen zal er echter gevraagd worden wat er gebruikt moet gaan worden voor een automatisering, script of template en meestal wordt dan een entiteit van Home Assistant gevraagd. Dit wordt gedaan met een ‘input selector met als kenmerk ‘entity”. Bijvoorbeeld de vraag om een bewegingsmelder te selecteren. Wijzig het voorbeeld nu met de volgende input-selector:
blueprint:
name: Voorbeeld blueprint
domain: automation
input:
mijn_sensor:
name: Mijn sensor
selector:
entity:
filter:
domain: binary_sensor
device_class: motion
Het resultaat:
Er kunnen meerdere inputs aan de gebruiker worden gevraagd, zoals het doel om een bijvoorbeeld een lamp te kunnen gebruiken in een actie. Doelen zijn input-selectors met het kenmerk ‘target‘. Voeg de lamp-input toe aan het voorbeeld bestand zoals hieronder is weergegeven:
blueprint:
name: Voorbeeld blueprint
domain: automation
input:
mijn_sensor:
name: Mijn sensor
selector:
entity:
filter:
domain: binary_sensor
device_class: motion
mijn_lamp:
name: Mijn lamp
selector:
target:
entity:
domain: light
Om een doel te kunnen kiezen voor een automatisering of script, dient de input selector een target te zijn. Kies voor de aangepaste blueprint en dan is dit het resultaat:
Triggers en Actions
Nadat de te gebruiken entiteiten zijn geselecteerd, dient in een automatisering aangegeven te worden wat er getriggerd wordt en welke acties daarop moeten volgen. Voeg de volgende code voor triggers toe aan het voorbeeld bestand om de bewegingsmelder uit de input te gaan gebruiken als trigger:
triggers:
- trigger:
entity_id: !input mijn_sensor
from: "off"
to: "on"
De entity_id is dus vanuit de input en wordt in een blueprint aangegeven met !input [input_naam] .
Voor de Actions geldt hetzelfde, in de blueprint wordt aangegeven met welke input een actie uitgevoerd moet gaan worden. Voeg ook de code voor de actions toe aan het voorbeeld bestand:
actions:
- action: light.turn_on
target: !input mijn_lamp
De yaml file van deze blueprint ziet er dan in z’n geheel zo uit:
blueprint:
name: Voorbeeld blueprint
domain: automation
input:
mijn_sensor:
name: Mijn sensor
selector:
entity:
filter:
domain: binary_sensor
device_class: motion
mijn_lamp:
name: Mijn lamp
selector:
target:
entity:
domain: light
triggers:
- trigger: state
entity_id: !input mijn_sensor
from: "off"
to: "on"
actions:
- action: light.turn_on
target: !input mijn_lamp
Deze yaml file wordt vervolgens opgeslagen in /homeassistant/blueprints/automation/ als voorbeeld_blueprint.yaml
Maak een automatisering van de blueprint
Voeg een automatisering toe door de blueprint te kiezen bij Nieuwe automatisering via Instellingen -> Automatiseringen en scènes -> Automatiseringen
of kies de blueprint vanuit Instellingen -> Automatiseringen en scènes -> Blueprints
Kies dan de sensor en de verlichting, en kies Opslaan. Geef het een goede naam en omschrijving, eventueel categorie, ruimte en labels en kies voor Hernoemen.
Aanpassen van een blueprint
Blueprints kunnen uiteraard gewijzigd worden, hetgeen gevolgen heeft voor de gebruikte automatiseringen, scripts of templates.
De voorbeeld blueprint gaan we aanpassen met wat betere omschrijvingen en een intervaltijd waarna het licht weer uit moet gaan. Vervang de code in het yaml-bestand met onderstaande blueprint:
blueprint:
name: Verlichting aan/uit met timer
domain: automation
author: Digital Domo
description: >
Kies een sensor waarmee verlichting aangezet gaat worden.
De verlichting kan een lamp zijn of een ruimte die verlicht moet worden.
input:
mijn_sensor:
name: Kies sensor
description: Kies de sensor waarmee het licht aangezet gaat worden.
selector:
entity:
filter:
domain: binary_sensor
device_class: motion
multiple: false
mijn_lamp:
name: Kies verlichting
description: Kies de lamp(en) of de ruimte die verlicht moet gaan worden.
selector:
target:
entity:
domain: light
mijn_tijd:
name: Tijd
description: De tijd dat de lamp aan blijft tot de automatisering het weer uit zet
selector:
number:
min: 0
max: 60
step: 1
unit_of_measurement: minutes
mode: slider
default: 1
triggers:
- trigger: state
entity_id: !input mijn_sensor
from: "off"
to: "on"
actions:
- action: light.turn_on
target: !input mijn_lamp
- delay:
minutes: !input mijn_tijd
- action: light.turn_off
target: !input mijn_lamp
Maak een nieuwe automatisering en kies de blueprint
Aangezien bij de sensor-input staat dat multiple: false is, kan er slechts één sensor worden gekozen. Bij de lamp-input is dat niet het geval, dus daar kunnen meerdere lampen worden gekozen.
Sla de nieuwe automatisering op en hernoem het met een treffende naam.
Controleer of de automatisering opgeslagen is onder Automatiseringen
Test nu deze automatisering door de bewegingsmelder te triggeren. De lamp zal aangaan en na de ingestelde tijd weer uit.
Versie beheer met GitLab
Om wijzigingen van blueprints bij te houden en eventueel terug te draaien, is er versie beheer met behulp van een git-repository, in dit voorbeeld via GitHub. Hiervoor is een account bij GitHub nodig en dan kan er een project aangemaakt worden met hierin de blueprints. Bijvoorbeeld de blueprints van Digital Domo:
De links die op GitHub staan kunnen gebruikt worden om de blueprints te importeren in jouw Home Assistant, ‘just click on it!‘
Eventuele wijzigingen worden dan in de originele blueprint gedaan in de GitHub repository en de gewijzigde blueprint kan dan in Home Assistant opnieuw geïmporteerd worden via de 3-puntjes achter de blueprint Bestandsnaam:
Lokaal aanpassen van een geïmporteerde blueprint
Geïmporteerde blueprints kunnen lokaal aangepast worden door de controle van de blueprint over te nemen. Open de blueprint en vul de inputs in. Selecteer vervolgens de drie puntjes rechtsboven. Kies voor ‘Controle nemen‘:
Er wordt dan gevraagd of je de controle wil overnemen, kies ‘Ja‘ en nu kun je de automatisering aanpassen zoals met een ‘normale’ automatisering.




















