HASS

Home Assistant configuratie uitleg

Met de installatie van Home Assistant (HASS) wordt er een standaard configuratie meegeleverd. Deze configuratie maakt het mogelijk dat er een standaard homescherm kan worden weergegeven.

De gehele configuratie van HASS bestaat uit een aantal YAML (YAML Ain’t Markup Language) bestanden. In feite zijn dit normale tekstbestanden waarin de informatie in een vooraf gestandaardiseerd formaat wordt opgeslagen. De YAML bestanden worden opgeslagen in de /config directory. Indien je gebruik maakt van een docker container is het te adviseren om deze directory als gekoppeld pad te redirecten naar een permanente locatie. Hiermee voorkom je dat bij iedere update van de Docker container jouw gepersonaliseerde configuratie verloren gaat.

Binnen de config directory staan standaard een aantal vaste configuratiebestanden en folders:

  • /custom_components
  • /deps
  • /includes
  • /groups
  • automations.yaml
  • configuration.yaml
  • customize.yaml

Het belangrijkste bestand is de configuration.yaml. In dit bestand zit de volledige configuratie van HASS opgeslagen. HASS ondersteunt het linken naar andere configuratie bestanden. Zo kan je ook bij grotere configuraties het geheel overzichtelijk houden. Wanneer je echter net begint zou ik dat niet adviseren, omdat het foutzoeken in deze gevallen wel wat lastiger is.

De standaard configuration.yaml is opgedeeld in de onderstaande secties. Op het moment dat er extra functionaliteit aan HASS wordt toegevoegd, of jij nieuwe componenten aan jouw HASS setup toevoegt, kan het noodzakelijk zijn dat er onderdelen aan de configuratie worden toegevoegd.

homeassistant:
Deze sectie bevat globale gegevens van de HASS configuratie. Denk aan naam, locatie en tijdzone.

includes:
Zoals hierboven beschreven is het mogelijk dat er koppelingen worden gemaakt naar andere configuratie bestanden. Dit gebeurd in deze sectie.

sun:
Dit onderdeel geeft de “track-the-sun” function. Hiermee “weet” het home-assistant systeem wanneer de avond invalt en er bijvoorbeeld lampen ingeschakeld moeten worden.

Naast de bovengenoemde opties zijn er ook nog een aantal standaard paramaters waarmee functionaliteiten aan- of uitgezet kunnen worden. Hieronder vallen bijvoorbeeld “frontend: “, “config: “, “history:” en “logbook:“. Binnen de yaml wordt een regel genegeerd zodra het “#” teken er voor staat. Dit kan dus worden gebruikt om commentaar in de het bestand toe te voegen, maar ook om een bepaald onderdeel in- of uit te schakelen.

De includes: sectie bevat de vermeldingen naar overige configuratiefiles. Wanneer je bijvoorbeeld een groot aantal lampen in je configuratie hebt, kan het handig zijn om hiervoor een apart configuratie bestand te maken. Om het geheel overzichtelijk te houden, wordt het geadviseerd om de andere configuratiebestanden in een aparte subdirectory te zetten. In mijn geval is dit de directory /includes. Je kan een met één regel een verwijzing maken naar een enkel bestand of alle bestanden in een bepaalde directory. Er zijn vier typen om een verwijzing te maken:

  • !include_dir_list geeft de inhoud van een directory terug, waarbij de inhoud van ieder bestand een entry van de lijst wordt. In dit geval moet je ervoor zorgen dat ieder bestand maar één entry bevat!
  • !include_dir_named geeft de inhoud van een directory terug, waarbij ieder item met de bestandsnaam als entry in de lijst wordt opgenomen.
  • !include_dir_merge_list geeft de inhoud van een directory terug door middel van het samenvoegen van alle bestanden in een lijst met entries.
  • !include_dir_merge_named geeft de inhoud van een directory terug door de inhoud van ieder bestand te laden en dit samen te voegen in een lijst met entries.
    Op de website van Home Assistant staan goede voorbeelden van de verschillende configuratie opties.

Tot slot nog een kleine yaml tip. De opmaak van het bestand is erg belangrijk. Een “tab” wordt bijvoorbeeld niet geaccepteerd. Wanneer je een simpele tekstverwerker gebruikt lijkt het alsof de hele config klopt, maar dan blijkt er toch iets van een “tab” tussen te staan. Dit resulteert in de vaagste foutmeldingen. Dit kan je voorkomen door een editor te gebruiken die yaml bestanden op de juiste manier genereerd, bijvoorbeeld Notepad++.