Je leert hoe automatiseringen in Home Assistant zijn opgebouwd en hoe je ze stap voor stap slimmer maakt. We werken met triggers, voorwaarden en acties, gebruiken helpers en blueprints voor meer gemak en kijken naar C.A.F.E., een nieuwe flow-editor waarmee je automatiseringen visueel kunt bouwen zonder afhankelijk te worden van Node-RED.
Automatiseringen in Home Assistant volgen een vast stramien, maar zijn toch behoorlijk flexibel (zie kader 'Automatiseringen in Home Assistant'). Je kunt naar eigen voorkeur met yaml werken of met de visuele editor. Hoewel yaml handig is voor toetsenbordridders of om voorbeelden te plakken, zit je bij complexere logica al snel naar honderden regels code te kijken. Daarom werken de meeste mensen in de visuele editor. Die wordt dankzij recente updates steeds toegankelijker. Om sneller je doel te bereiken, kun je helpers en blueprints gebruiken. Heb je een sterke voorkeur voor automatiseren met stroomdiagrammen? Dan is Node-RED een bekende en goede optie. Maar er bestaat onder de naam C.A.F.E. (Complex Automation Flow Editor) sinds kort nóg een manier om automatiseringen te maken, volledig binnen Home Assistant. Aan de achterkant bewaart het alle flows als gangbare yaml. De automatiseringen blijven dus draaien binnen Home Assistant en zijn niet afhankelijk van deze software, zoals dat bij bijvoorbeeld Node-RED wel het geval is. We laten zien hoe je dit gebruikt!
Automatiseringen in Home Assistant volgen een vast stramien. Elke automatisering start bij een bepaalde gebeurtenis, de zogenoemde trigger. Denk aan bewegingsdetectie of het overschrijden van een bepaalde temperatuur. Je kunt meerdere triggers toevoegen; elke trigger zal dan de automatisering starten. Vervolgens kan de automatisering nog één of meer voorwaarden hebben. Die bepalen of de automatisering daadwerkelijk wordt voortgezet. Bijvoorbeeld: alleen als het donker is, alleen op werkdagen, of alleen als er niemand thuis is. Zijn de voorwaarden geldig, dan worden de acties uitgevoerd. Dat zijn alle handelingen die Home Assistant uitvoert. Denk aan het aanzetten van een lamp, versturen van een melding of aanpassen van de thermostaat. Als actie kun je ook een bouwsteen kiezen. Hier heb je heel veel opties. Zo kun je bijvoorbeeld acties onder voorwaarden laten uitvoeren, een actie herhalen totdat aan een bepaalde voorwaarde is voldaan, keuzes maken op basis van voorwaarden of een wachttijd inbouwen.
Automatiseringen
Automatiseringseditor
De automatiseringseditor van Home Assistant is behoorlijk intuïtief. Het duurt soms even voordat het klikt, maar hierna zul je hier snel je weg in vinden. De relatief nieuwe zijbalk zorgt ervoor dat je het overzicht behoudt, maar werkt het fijnst op een groter scherm. Om sneller te werken zijn bewerkingen als dupliceren, kopiëren, knippen en plakken mogelijk. Je moet bij het bouwen van je automatisering wel een vast stramien volgen met triggers, voorwaarden en acties. Maar zoals aangegeven kun je mede dankzij de vele bouwstenen vrij complexe logica gebruiken. Ook als je gaat werken met helpers, uitbreidingen als C.A.F.E. of blueprints, blijft kennis van de basisprincipes essentieel.
Automatiseringsvoorbeeld
We beginnen met een eenvoudige automatisering die bij de detectie van beweging een lamp aanzet, op voorwaarde dat het donker is. De trigger is uiteraard de detectie van beweging. Maak een lege automatisering en kies onder het kopje Entiteit voor Status. Selecteer de sensor en kies bij Naar de optie Gedetecteerd. Voeg dan de voorwaarde toe. Om te weten of het donker is kun je kijken naar de numerieke status van een lichtsensor, die in veel bewegingssensors is ingebouwd. Je kunt ook afgaan op het tijdstip van zonsopgang- en ondergang, eventueel met een offset. De schemering duurt in de zomer veel langer dan in de winter. Daarom kijken we in ons voorbeeld naar de hoek van de zon ten opzichte van de horizon. Dat werkt in elk seizoen. Hiervoor kies je bij Entiteit voor Numerieke status. Selecteer dan Sun als entiteit en kies bij Attribuut voor Elevation. Vul bij Onder de waarde 4 in voor een hoek van 4 graden. Hierna kun je de gewenste actie toevoegen. Selecteer bijvoorbeeld Licht / Aanzetten, klik op Doel toevoegen en selecteer de lamp.
Wacht op trigger
We hebben nu een eenvoudige automatisering die de lamp aanzet, maar nog niet uitzet. Hiervoor zijn meerdere mogelijkheden. Een elegante optie is het uitzetten van de lamp nadat er twee minuten geen detectie is geweest. Voeg hiervoor een extra actie toe. Kies dan onder Bouwstenen de optie Wacht op een trigger. Kies Trigger toevoegen en dan Entiteit / Status. Selecteer de bewegingssensor, kies bij Naar de optie Niet gedetecteerd en vul bij Voor de tijd (00:02:00) in. Voeg daarna een actie toe voor het uitzetten van de lamp. Die wordt uitgevoerd na twee minuten zonder beweging.
Modus wijzigen
De standaardmodus voor een automatisering is Herstarten. Hierbij zal de automatisering bij een nieuwe trigger (de detectie van beweging) worden afgebroken en opnieuw beginnen. We willen dat een nieuwe detectie wordt genegeerd en dat de automatisering wacht tot de bewegingssensor twee minuten lang onafgebroken de status off doorgeeft. Kies hiervoor in het menu de optie Modus wijzigen en kies Enkelvoudig.
Doelspecifieke triggers en voorwaarden
Home Assistant heeft in recente releases zogenoemde doelspecifieke triggers en voorwaarden toegevoegd. Je kunt het aanzetten via Labs. Blader hiervoor naar Instellingen / Systeem / Labs. Kies dan bij Doelspecifieke triggers en voorwaarden voor Inschakelen. Bij het toevoegen van triggers, voorwaarden of acties hoef je nu minder te denken in technische statusveranderingen. In plaats daarvan kun je onder het kopje Doelen een apparaat opzoeken en een logische gebeurtenis kiezen.
Helpers
Helpers in Home Assistant zijn handige hulpjes die je vaak gebruikt met automatiseringen. Je kunt ze maken en beheren via Instellingen / Apparaten en diensten op het tabblad Helpers. Je kunt bijvoorbeeld een helper van het type Schakelaar maken. Dit kun je als vakantiestand gebruiken. Je kunt er in automatiseringen dan rekening mee houden of je op vakantie bent. Ook kun je een tijdschema maken (zie kader 'Tijdschema's in Home Assistant'). Dit schema wordt simpelweg 'aan' tijdens de ingekleurde blokken, dus je hebt nog een automatisering nodig om op dat moment bijvoorbeeld de koffiemachine of buitenlampen aan te zetten. Ook de helper Groep is heel praktisch. Hiermee kun je een groep voor bijvoorbeeld alle buitenlampen maken, zodat je die in één keer aan en uit kunt zetten. Ook kun je, bijvoorbeeld voor een groot erf, een groep met meerdere bewegingssensors maken. De groep gaat 'aan' zodra een van de sensors beweging detecteert.
Met de hulp van een tijdschema kun je eenvoudig bijvoorbeeld je lampen of koffiemachine regelen. Hiervoor voeg je de ingebouwde helper Schema toe. Vervolgens voeg je visueel tijdsblokken toe op de gewenste dag(en). Een beperking is dat deze visuele methode alleen per half uur instelbaar is. Door het schema via het configuratiebestand (configuration.yaml) te maken, kun je wél flexibele tijden invullen. Begin bijvoorbeeld met het onderstaande voorbeeld:
schedule:
koffietijd:
name: "Koffiemachine schema"
monday:
- from: "07:40:00"
to: "08:30:00"
- from: "12:20:00"
to: "13:10:00"
tuesday:
- from: "07:40:00"
to: "08:30:00"
Voor meer flexibiliteit vind je in HACS de Scheduler Card en een aparte bijbehorende component. Die moet je ook installeren voor het 'rekenwerk' op de achtergrond. Je kunt dan via je dashboard interactieve schema's maken op een visuele en gebruiksvriendelijke manier.
Slimme sensors
Onder alle helpers vind je óók handige sensors die slimme berekeningen uitvoeren. Een drempelwaardesensor springt bijvoorbeeld op 'aan' als de wasmachine stroom vraagt. Er zijn ook helpers die het gemiddelde van enkele sensors berekenen, trends ontdekken (zoals een snel stijgende temperatuur) of voorspellen of er schimmel dreigt te ontstaan in een kamer. De sensors sturen geen apparaat aan, dus je moet daar zelf nog passende automatiseringen voor maken. Er zijn ook helpers die zelfstandig werken en helemaal geen automatisering vereisen. Zo kun je bijvoorbeeld op basis van een schakelaar en sensor een generieke thermostaat of generieke hygrostaat maken. Bij de hygrostaat wijs je dan een sensor met de luchtvochtigheid in een ruimte aan en de schakelaar van een bevochtiger of ventilator.
Blueprints voor lastige functies
Blueprints zijn een soort herbruikbare sjablonen voor automatiseringen. Je vindt ze door via Instellingen / Automatiseringen en scènes naar het tabblad Blueprints te gaan. Zo'n blueprint vraagt alleen om wat instellingen, zoals het aanwijzen van een sensor of het kiezen van de gewenste acties. Alle logica is al uitgedacht en ingebouwd. Ze zijn ook goed in het ontsluiten van lastige of minder zichtbare functies, zoals een korte of lange druk op een afstandsbediening voor Zigbee. Het loont dus altijd om te kijken of er een blueprint bestaat voor een specifiek apparaat. Sommige blueprints zijn enorm ver doorontwikkeld. Een voorbeeld is Cover Control Automations (cca) voor het openen en sluiten van je rolluiken. Het berekent bijvoorbeeld de exacte positie van de zon ten opzichte van jouw specifieke raam. Het kan de zonwering sluiten als de zon recht op je raam brandt, om de hitte buiten te houden, maar ook bij harde wind of regen. Het snapt ook dat je in de winter de zon juist binnen wilt laten voor gratis verwarming. Ook kun je de rolluiken laten openen op een specifiek tijdstip of laten sluiten zodra het donker wordt. Er zijn voorts nog veel extra voorwaarden voor meer comfort of veiligheid. Het grootste gevaar is dat het door de talloze opties weer complex kan worden.
C.A.F.E.
Wat is C.A.F.E.?
Automatiseringen in Home Assistant lenen zich in potentie vrij goed voor stroomdiagrammen, maar de ontwikkelaars houden nog stevig vast aan de huidige opzet. Je kunt eventueel Node-RED inzetten dat via websockets en de rest-API met Home Assistant kan communiceren. Maar je moet de software dan wel apart installeren en onderhouden. Gaat er iets mis, dan breken ook je automatiseringen. Een nieuwer alternatief is C.A.F.E. Dat staat voor Complex Automation Flow Editor. Het is een tool op basis van React Flow, een JavaScript-bibliotheek voor React die werd ontwikkeld voor het bouwen van interactieve flows. Het is aangepast voor Home Assistant zodat je binnen die omgeving flows kunt maken. Het heeft een zogenoemde transpiler die de visuele nodes omzet naar automatiseringen in standaard yaml-code. Er is daardoor eigenlijk geen verschil met de gangbare automatiseringen. Het is wel verstandig een back-up van je automatiseringen te maken (zie kader 'Back-up van je automatiseringen'), want de tool wordt nog actief ontwikkeld en werkt niet in alle situaties zonder fouten.
Bij Home Assistant staan al je automatiseringen standaard in één bestand met de naam automations.yaml, tenzij je dit zelf hebt uitgesplitst over meerdere losse bestanden. Er zal door C.A.F.E. zogenoemde metadata aan worden toegevoegd als commentaar. Hierdoor kan de tool onthouden hoe je flow er visueel uitziet, zoals de positie van nodes en de onderlinge verbindingen. Bij foutjes is het handig om aanpassingen terug te kunnen draaien. Voor een snelle back-up kun je de app File editor installeren. Open dan de web UI en kies in het menu bij het bestand automations.yaml (via de drie puntjes) de optie Download.
Installatie C.A.F.E.
Voor de installatie van C.A.F.E. kun je gebruikmaken van HACS. Maar hier moet je nog wel een repository aan toevoegen. Ga hiervoor naar HACS en open het menu (via de drie puntjes). Kies Aangepaste repositories. Vul bij Repository de link https://github.com/FezVrasta/cafe-hass in. Bij Type kies je Integration. Klik dan op Toevoegen. Sluit het venster. Als het goed is zie je C.A.F.E. nu in de lijst staan. Klik erop en kies Download. Hierna moet je Home Assistant herstarten. Als laatste stap, die vaak wordt vergeten, moet je de integratie nog toevoegen. Ga hiervoor naar Instellingen / Apparaten en diensten en kies Integratie toevoegen. Zoek naar C.A.F.E. en voeg de integratie toe. Je bent nu klaar om automatiseringen te maken.
Flow maken of importeren
Na de installatie kun je C.A.F.E. openen via de verwijzing in het menu. Je kunt vanaf nul een automatisering opbouwen. Klik daarvoor op het pijltje naast Open Automation en kies de optie New Automation die dan verschijnt. Je kunt nu een nieuwe flow maken. Vaak is het handiger om eerst een van je bestaande automatiseringen te openen binnen C.A.F.E. via de knop Open Automation rechtsboven. Verder kun je met de optie Import from YAML een automatisering op basis van yaml-code inladen.
Voorbeeld bekijken
Als voorbeeld openen we de automatisering voor het aanzetten van de lamp bij beweging als het donker is en het uitzetten als er twee minuten geen beweging is. Hier wordt dan automatisch een lay-out voor gemaakt. Aan de linkerkant zie je alle beschikbare nodes, achtereenvolgens Trigger, Condition, Action, Delay, Wait for en Set Variables. In je werkruimte zie je de nodes voor onze automatisering en de samenhang. Als je op een node klikt, kun je rechts de eigenschappen zien of aanpassen. Dit werkt vrij intuïtief.
Flow uitbreiden
We gaan de flow die we hierboven hebben geopend uitbreiden. Als voorbeeld gaan we de lampen alleen aanzetten als er niemand thuis is. Sleep hiervoor een node Condition naar je werkruimte en zet deze achter de huidige conditie die controleert of het donker is en vóór de actie voor het aanzetten van de lamp. De eigenschappen van de node zijn iets omslachtiger. Om te zien of mensen thuis zijn kun je telefoons koppelen aan personen. Een handigheidje dat je dan moet kennen is dat de numerieke status van de thuiszone (zone.home) steeds het aantal personen aangeeft dat thuis is. Daarom kiezen we bij Condition Type de optie Numeric State. Bij Entity kiezen we de zone Thuis. Bij Below vullen we 1 in. Met andere woorden: er moet minder dan 1 persoon thuis zijn. Je kunt je nieuwe flow opslaan als yaml, eventueel als kopie van je huidige automatisering, en daarna ook weer met de standaard visuele editor bekijken en bewerken.
















