HASS

Home Assistant – Secrets.yaml

Home Assistant biedt de mogelijkheden om wachtwoorden op te slaan in een centraal wachtwoorden bestand. Dit is om een aantal redenen erg handig:

  1. Je wachtwoorden staan centraal op één plaats;
  2. Het is mogelijk je configuratie te delen zonder dat al je wachtwoorden weggehaald / vervangen / geblurd hoeven te worden;
  3. Het is mogelijk je configuratie te backuppen naar github;

Het idee is erg simpel. Alle wachtwoorden worden in een apart bestandje geplaatst, te weten “secrets.yaml”. Deze wachtwoorden worden per regel ingegeven. Voorafgaand aan het wachtwoord wordt de naam / functie van het wachtwoord opgegeven. Het bestand “secrets.yaml” wordt opgenomen in de root van de config directory van Home Assistant.

Het bestand heeft de volgende opmaak:

secrets.yaml

#section_database
recorder_db_url: mysql://sql_user:sql_user_password@192.168.1.1/dbname

#section_google_travel_time
google_apikey: hereyoursecretapikey

#section_synology
synology_ipaddress: 192.168.1.1
synology_hass_username: hass_username
synology_hass_userpass: hass_user_password

synology_camera_url: https://192.168.1.1
synology_camera_username: camera_username
synology_camera_userpass: camera_user_password

#section_telegram
telegram_api_key: hereyoursecretapikey
telegram_chat_id_1: hereyourtelegramchatid

Binnen de andere configuratie bestanden worden de in het “secrets.yaml” bestand opgegeven variabelen opgenomen. Dit gebeurd door deze op de volgende manier aan te roepen:
!secret

Hieronder een snippet of code uit het “configuration.yaml” bestand, waarin een variabele wordt aangeroepen.

...
# Set mysql database
recorder:
    db_url: !secret recorder_db_url
    purge_interval: 1
    purge_keep_days: 31

# Enable telegram integration
telegram_bot:
  - platform: polling
    api_key: !secret telegram_api_key
    allowed_chat_ids:
      - !secret telegram_chat_id_1
...

Tijdens het uitvoeren van de code worden de variabelen geresolved door hun actuele waarde in het secrets.yaml bestand.

Het gebruik van het secrets.yaml bestand beperkt zich niet alleen tot wachtwoorden. Het is ook bijvoorbeeld mogelijk om api keys en namen van items in dit bestand op te nemen. Het is kort gezegd een bestand met “resolvebare” variabelen welke door de home assistant configuratie te gebruiken zijn. Wanneer je consequent gebruikt maakt van het secrets.yaml mechanisme hoef je maar op één plek in jouw configuratie wijzigingen door te voeren wanneer er bijvoorbeeld een wachtwoord gewijzigd is. Een uitgebreide uitleg van secrets.yaml is natuurlijk ook te vinden op de Home Assistant site.