Home Assistant

Uit RobotMC.be
Ga naar: navigatie, zoeken
HomeAssistant.jpg

Wat historiek

Een paar jaar geleden ben ik begonnen met het automatiseren van simpele taken in mijn huis. In het prille begin nam ik een ESP8266, voegde er een 433MHz zendertje aan toe en na lang knutselen kon ik dan mijn lichten aan doen bij zonsondergang en uitdoen om 23u. Een webinterface erbij en ik kon de parameters instellen via een Internet browser.

Toen wou ik mijn rolluiken ook aansturen en besloot toen met een echt Home Automation pakket aan de slag te gaan. Ik kwam al snel bij Domoticz uit wat me wel aansprak want geschreven in C++ en dus snel genoeg voor mijn Raspberry Pi 1B, die toen al niet meer bij de nieuwste was.

Fast forward naar 2024 en ondertussen had ik ook Tado radiatorknoppen en een paar zigbee devices, maar toen bleek dat mijn hardware te oud was om Domoticz te upgraden naar de laatste versie. Een nieuwe RPi gekocht en besloten om te schakelen naar Home Assistant die een modernere interface heeft maar vooral veel meer devices out-of-the box ondersteunt.

Als anekdote wil ik wel toevoegen dat mijn ESP8266 met 433Mhz zender tot op vandaag nog in gebruik is, dus dat blijft zeker een valabele piste en uiteraard meer fun voor een die-hard nerd zoals ik.

Happy Reading,
Patrick - mei 2024

De Home Assistant Controller

Er zijn verschillende manieren om Home Assistant te installeren.

  • De allersimpelste is dat je een Home Assistant Device koopt (green of yellow).
    Alles werkt out of the box. Ze voorzien ook ineens een SSD drive die robuuster is dan een microsd kaart.
  • Heb je al een Raspberry dan kan je er een voorgeconfigureerd Speciaal OS image: HassIO op zetten.
    Functioneel equivalent met de vorige alleen andere hardware. Deze heeft als nadeel dat je moeilijk(er) toegang kan krijgen tot het onderliggende OS. Omdat de RPi5 superkrachtig is zou het zonde zijn deze alleen maar voor HomeAssistant te gebruiken. Een groot voordeel is wel dat het ook de 'supervisor' bevat die zorgt voor updates etc... Het neemt het onderhoudswerk dus uit je handen. Ideaal als plug-n-play oplossing.
  • (Mijn Keuze)Via een Docker container, een virtuele machine dus, op je RPi ('Home Assistant Container').
    Dit heeft als voordeel dat je de Home Assistant in een eigen omgeving draait, los van de rest van de RPi. Een update/upgrade zou geen effect mogen hebben op de werking van Home Assistant. Je mist wel enkele Home Assistant features. Zo heb je geen supervisor, addons en moet je backup-zelf configureren. Plug-n-pray dus.
  • Tenslotte kan je Home Assistant als Service op je RPi draaien ('Home Assistant Core').
    Dit lijkt de meest logische keuze, maar heeft als nadeel dat je geen add-ons kan installeren bovenop Home Assistant. Ik heb het even nagekeken en het lijken allemaal zaken die sowieso via raspbian zelf kunnen geinstalleerd worden. Ook updates moet je zelf doen en een update van de RPi of python kan invloed hebben op de werking van Home Assistant. Nog meer plug-n-pray dus

Met de Raspberry Pi had ik al ervaring en ik ben zo niet te vinden voor 'gesloten hardware oplossingen', dus voor mij viel optie 1 en eigenlijk ook 2 af. Omdat ik naast Home Assistant de RPi voor andere zaken wou gebruiken besloot ik voor de optie Home Assistant Container te gaan. RPI+Zigbee+Rfxtrx.png

Kies jij voor optie 1 dan kan je rechtstreeks naar de paragraaf #Onboarding Home Assistant. Kies je voor optie 2 dan is het kwestie van in de Raspberry Pi Installer onder other Operating Systems hassIO te kiezen. Ik verwijs je hiervoor graag naar de Home Assistant website voor meer info : https://www.home-assistant.io/installation/

Klaar maken van de RPi

De minimale configuratie die je nodig hebt anno 2024 is een RPi 4 met 2Gb RAM en 32Gb SD kaart. Idealiter vervang je de SD kaart door een SSD drive. Die zou robuuster zijn dan een SD kaart. Ikzelf heb een RPi 5 met 8Gb gekocht en een SD kaart van 128Gb. Hopelijk future-proof genoeg ...

Je kan je RPi volledig 'headless', d.w.z. zonder scherm of keyboard, opzetten. Dit is wat we hier gaan doen, maar je kan het ook hier nalezen : https://www.tim-kleyersburg.de/articles/home-assistant-with-docker-2023/

  • Schrijf SD kaart via de raspberry pi installer

kies :

device = raspberry pi 5
os = raspberry pi 64 bit LITE 
settings : kies een naam (bv rpi5), username, paswoord, zet country op BE, pas locale settings aan zodat keyboard layout op BE staat
services : activeer SSH met username/paswoord
  • boot RPi5 en wacht een 15 tal seconden
  • Via SSH of putty op je PC kan je nu inloggen 'rpi5.local' poort 22 met de gekozen username & paswoord
ssh <username>@<hostname>.local
  • update je RPi met
sudo apt update
sudo apt full-upgrade

Gmail integratie

Effe een zijsprongetje dat niet echt met Home Assistant te maken heeft, maar ik wil mijn RPi mails laten sturen, bv. bij een reboot of eens per maand met de backup of ... Dit is niet standaard voorzien.

  • Zorg dat je een e-mail adres hebt bij Google waar je 2-factor authentication voor hebt aanstaan en waar je een secure app aan toegevoegd hebt. Het gegenereerde paswoord heb je nodig in het config bestand. In de loop van 2024 zal Google zijn beveiligingsmechanismes nog bijsturen, dus ik kan je alleen maar aanraden om na te lezen op de Google site hoe je dit exact opzet op het moment dat je dit artikel leest.
  • Installeer SSMTP
sudo apt-get install ssmtp
sudo apt-get install mailutils
  • Editeer de config file : sudo nano /etc/ssmtp/ssmtp.config en zorg dat dit er in staat
root=postmaster
mailhub=smtp.gmail.com:587
hostname=<je hostname>
AuthUser=<het.gmail.adres.waarvan.je.zendt>@gmail.com
AuthPass=<de.16.tekens.van.de.secure.app geen spaties, geen punten>
FromLineOverride=YES
UseSTARTTLS=YES
  • Test met volgende commando
echo "Hallo wereld" | mail -s "test RPi" <emailadres van de ontvanger bv. mickey.mouse@hotmail.com>
  • Mijn favoriete crontab : stuur 2 min. na herstarten een mail. Waarom 2 min : omdat het netwerk en zeker wifi tijd nodig heeft om op te starten.
sudo crontab -e
@reboot sleep 120 && mail "RPi5 herstart" > mail -s "RPi5 herstart" mickey.mouse@disney.com

(uiteraard niet naar mickey mouse maar naar mijn eigen mailadres)

Installatie van Docker

Alles is heel goed uitgelegd op deze site : https://www.tim-kleyersburg.de/articles/home-assistant-with-docker-2023/

  • Installeer docker
curl -sSL https://get.docker.com | sh
  • Geef jezelf rechten op docker
sudo usermod -aG docker ${USER}
  • Maak van docker een service die automatisch opstart bij reboot
sudo systemctl enable docker

Installatie van Home Assistant Container

Alles is heel goed uitgelegd op deze site https://www.home-assistant.io/installation/linux#install-home-assistant-container (skip 1e deel en lees vanaf 'Docker compose' ) of https://www.tim-kleyersburg.de/articles/home-assistant-with-docker-2023/

  • maak folderstructuur & config file aan
mkdir docker
cd docker
mkdir homeAssistant
cd homeAssistant
nano docker-compose.yml
  • Zet volgende gegevens in docker-compose.yml

Opmerking : voor de devices moet je via 'ls /dev/serial/by-id' de exacte schrijfwijze van je devices opzoeken en dan in onderstaande yml file toevoegen in de vorm 'echte naam:logische naam'. De logische naam kan je daarna in HomeAssistant gebruiken om de connectie te maken

version: '3'
services:
  homeassistant:
    container_name: homeassistant
    image: "ghcr.io/home-assistant/home-assistant:stable"
    volumes:
      - /home/pi/docker/homeAssistant/data:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    devices :
      - "/dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_744e845f47afed118633334e71c9e8b5-if00-port0:/dev/ttyUSB_Zigbee      
      - "/dev/serial/by-id/usb-RFXCOM_RFXtrx433XL_DO3O56NA-if00-port0:/dev/ttyUSB_RFXTRX"
    restart: unless-stopped
    privileged: true
    network_mode: host		
  • Download de image (500Mb) & start homeassistant
sudo docker compose up -d
  • Je zou nu via http://<hostname>.local:8123 een werkende Home Assistant moeten hebben
    Let op : http is een ONBEVEILIGDE connectie. Alles gaat dus in plain text over het netwerk, ook je paswoord ! Ideaal voor de hacker die naast je woont :-) Als je homeassistant ook openzet op internet, dan is het ook handig voor de Russen en Chinezen. Geduld, daar komen we nog toe.

Onboarding Home Assistant

Na de eerste keer opstarten kan je via de webinterface de basis instellingen doen. Dit staat uitgelegd op https://www.home-assistant.io/getting-started/onboarding/

Klik op "Create My Smart Home" en

  1. Creer administrator account.
  2. Specifieer waar je device zal staan (= geolocatie op de map)
  3. HomeAssistant zal nu alle compatibele devices die het vond automatisch toevoegen aan je config.
  4. Indien gewenst kan je de home assistant app uit de PlayStore op je mobiel zetten.
    Je smartphone zal dan ook in HomeAssistant zichtbaar zijn als Device en kan je gebruiken als "presence" detector.
    Voorlopig werkt de app alleen als je thuis op je wifi bent aangesloten omdat we Home Assistant nog altijd alleen vanaf het lokale netwerk kunnen benaderen. Irritant, want misschien wil je je chauffage aanzetten als je op het werk vertrekt. Geduld, geduld ... Een leuk weetje is wel dat desondanks kan je notifications naar je smartphone sturen , ook als je niet op je LAN zit (bv. als de deuren opengaan als je niet thuis bent)

Easy-Peasy

Interfaces & Devices toevoegen

Nu wordt het pas echt interessant. We gaan je lokale devices toevoegen aan Home Assistant zodat die er iets mee kan doen. Effe wat vocabulaire :

  • Interface : dit is eigenlijk een protocol. De meeste die op je LAN actief zijn herkent Home Assistant automatisch. Zo wist ie onmiddellijk dat ik een Google TV had, een Zigbee interface, Bluetooth devices, een Synlogogy NAS en - jawel- TADO radiatorknoppen, enz... Ik moest eigenlijk alleen maar mijn credentials invoeren om de interface te activeren
  • Devices : dit zijn sensoren & actuatoren die op zo'n interface zitten. Ook hier zal Home Assistant heel wat zaken al voor je herkennen. Zo herkende ie volauto-magisch dat ik een Xiaomi Plant sensor had die op bluetooth werkt. Niks moeten aan configureren
  • Entities : dit zijn eigenlijk de onderdelen van de devices. Zo kan Home Assistant van mijn TADO de temperatuur, vochtigheid, batterijstatus, .... van elke radiatorknop opvragen en omgekeerd kan ik er de knop aan/uit zetten of de gewenste temperatuur instellen.

Zoals gezegd, het meeste werk deed Home Assistant voor mij. Het leuke is dat elk device dat je toevoegt automatisch toegevoegd wordt aan het "Overview" Dashboard. Op den duur wat ononverzichtelijk, maar geen paniek, je kan dashboards bijmaken naar eigen voorkeur.

Tip vooraf (door scha en schande zelf ondervonden) : usb poorten worden toegekend in de volgorde dat je de devices inplugt. Bij een reboot zal het snelste device usb0 worden, het volgende USB1 enz.... Dit is niet noodzakelijk dezelfde volgorde als waarin jij ze oorspronkelijk toegevoegd hebt. Hierdoor kan je device herkenning mank lopen. Je kan ook de poorten waaraan een device hangt een vaste naam geven. Dit wordt uitgelegd op deze site : https://community.home-assistant.io/t/static-usb-ports-via-udev-rules-mapped-into-a-docker-container-via-compose-yaml-do-not-work-after-reboot/607020/3 - Zoek naar freshcoast. Die geeft de oplossing. Daarom dat in in docker-compose.yml twee devices heb toegevoegd met ID

RFXTRX433XL

Mijn rolluiken hebben Somfy RTS motoren en die werken op 433.42Mhz terwijl normaal 433.92Mhz gebruikt wordt. De RFXTRX433XL ondersteunt beide frequenties. Ik kan deze interface dus gebruiken voor zowel mijn rolluiken als lichtschakelaars op 433Mhz.
Dit is de enige interface die niet auto-magisch gedetecteert werd. Toevoegen was echter simpel : Kies 'Add Integration' en zoek naar RFX. De RFXTRX staat in de lijst. Klaar.

433 Mhz switches

Kies 'Add device" en druk op de knoppen van je afstandsbediening die de lichten aan en uit doen. Home Assistant zal zo elke schakelaar herkennen en toevoegen

Somfy RTS motoren

Dit is iets ingewikkelder. Je moet namelijk de RFXTRX433XL als extra afstandsbediening aan elk rolluik toevoegen. Klinkt ingewikkeld, maa r eigenlijk heel simpel als je deze website volgt : https://vlieshout.net/?p=323

  • Het komt er op neer dat je een devide ID en Unit in RFXMGR op je PC kiest, het rolluik dan in program mode zet (via de knop achteraan de originele afstandsbediening) en dan vanuit RFXMGR een "program" commando stuurt naar dat device id/unit.
  • Eens je dit gedaan hebt kan je in Home Assistant het device manueel toevoegen als een RFLink device met als ID 071a0000[id][unit_code]

Zigbee

Hardware : SONOFF ZigBee 3.0 USB Dongle Plus, TI CC2652P (amazon- 29 euro) werd automatisch gevonden en toegevoegd als Interface. Ik nam de CC265P variant omdat die kon samenwerken met Home Assistant. De nieuwere versie met de EFR32MG21 zou dat ondertussen ook doen. Ik nam het zekere voor het onzekere en bestelde de ZBDONGLE-P versie.

Deurcontacten

  • Ga naar Devices & Entities en kies de zigbee integratie
  • Daarin kies je "Add Device". Zigbee gaat nu zoeken naar nieuwe devices
  • Zet het deurcontact in pairing mode door 5 sec op de reset knop te drukken
  • Kies een logische naam (Voordeur) en locatie (Hall)

Smart plug met Powermeter

Toevoegen via hetzelfde proces als hierboven

Din Relais

Ik wou de stroomkring die naar mijn carport enkel activeren tussen 21u en 6u (nachttarief) en alleen als ik thuis ben. Daarom in mijn zekeringen kast een zigbee relais toegevoegd

HiveMQ (MQTT)

In de meeste handleidingen van HomeAssistant wordt Mosquitto als MQTT broker voorgesteld. Deze draait lokaal op je Raspberry Pi zodat alles netjes op je LAN blijft. Het is uiteraard ook de meest performante oplossing. Ik wou echter iets anders doen, namelijk : geen inkomend verkeer op mijn LAN enkel uitgaand verkeer. Ik heb dus geen poort open staan op mijn router, geen dynamisch DNS, enz... Toch kan ik mijn installatie thuis bedienen als ik weg ben via een omweg. Ik heb op mijn smartphone MQTT Dash geinstalleerd waarop ik HiveMQ heb geinstalleerd. HiveMQ is een cloud MQTT broker. Er is een gratis versie die tot 100 devices ondersteund. Dit lijkt me als hobbyist wel voldoende. Via deze weg laat ik home assistant een aantal sensoren publiceren naar HiveMQ en omgekeerd kan ik een aantal schakelaars via HiveMQ bedienen. In plaats van de homeassistant app te gebruiken die rechtstreeks met je RPi praat heb ik een 3 weg systeem : HomeAssistant praat met HiveMQ, MQTT Dash praat met HiveMQ. HiveMQ dient dus als 'gateway' tussen mijn thuissysteem en mijn smartphone zonder dat ik inkomend verkeer moet toelaten op mijn thuisnetwerk. De HomeAssistant App gebruik ik alleen als ik thuis ben en daardoor weet Home Assistant ook ineens of ik thuis ben of niet.

HHA MQTT Dash.png


Om HiveMQ te configureren moet je eerst "advanced mode" aanzetten in de "User Settings" van jouw profiel.

Daarna moet je het certificate van HiveMQ downloaden naar je RPi. Wat ik deed was het downloaden naar mijn PC en dan met scp overkopieren naar mijn rpi : scp <lokale file> user@rpi.local:/etc/ssl/certs/isrgrootx1.pem

Configuratie  :

  • Broker = cluster URL (bv. eenlangestring.s2.eu.hivemq.cloud)
  • Port = 8883
  • username = in hivemq onder accessmanagement best een nieuwe gebruiker aanmaken
  • password = bijhorend paswoord van hivemq
  • onder advanced options : broker cert validation = auto

Uitgaande MQTT boodschappen

Voorbeeld :

service: mqtt.publish
metadata: {}
data:
 qos: "2"
 retain: true
 topic: HA/sensor/achterdeur
 payload: Open

Inkomende MQTT verwerken

In dit voorbeeld worden alle mogelijke topics en payloads in 1 automation script behandeld

alias: MQTT Received
description: ""
trigger:
 - platform: mqtt
   topic: HA/test_topic/id1
   id: "999"
 - platform: mqtt
   topic: HA/sensor/rolluik_achter
   id: RolAchter
 - platform: mqtt
   topic: HA/sensor/rolluik_voor
   id: RolVoor
 - platform: mqtt
   topic: HA/sensor/licht_plafond
   id: Plafond
 - platform: mqtt
   topic: HA/sensor/licht_hall
   id: Hall
 - platform: mqtt
   topic: HA/sensor/licht_kerstboom
   id: KerstBoom
 - platform: mqtt
   topic: HA/sensor/laadcyclus
   id: Laadcyclus
condition: []
action:
 - service: notify.mobile_app_sm_a556b
   metadata: {}
   data:
     message: Received Sjabloon:Trigger.topic = Sjabloon:Trigger.payload
 - choose:
     - conditions:
         - condition: trigger
           id:
             - RolAchter
       sequence: []
     - conditions:
         - condition: trigger
           id:
             - RolVoor
       sequence: []
     - conditions:
         - condition: trigger
           id:
             - Plafond
       sequence:
         - if:
             - condition: template
               value_template: "{{ trigger.payload > \"0\"}}"
           then:
             - type: turn_on
               device_id: 98a8f251b3e0950294276f1d396925c4
               entity_id: 0308e637ff31ed947071d735b20e75e8
               domain: switch
           else:
             - type: turn_off
               device_id: 98a8f251b3e0950294276f1d396925c4
               entity_id: 0308e637ff31ed947071d735b20e75e8
               domain: switch
     - conditions:
         - condition: trigger
           id:
             - Hall
       sequence:
         - if:
             - condition: template
               value_template: "{{ trigger.payload > \"0\"}}"
           then:
             - type: turn_on
               device_id: 77e506b00c984b62c34e11396e45e933
               entity_id: 9282043a2d2e71198d780f2657eadc8a
               domain: switch
           else:
             - type: turn_off
               device_id: 77e506b00c984b62c34e11396e45e933
               entity_id: 9282043a2d2e71198d780f2657eadc8a
               domain: switch
     - conditions:
         - condition: trigger
           id:
             - KerstBoom
       sequence:
         - if:
             - condition: template
               value_template: "{{ trigger.payload > \"0\"}}"
           then:
             - type: turn_on
               device_id: 84af653f71476618f12fbb2769c17736
               entity_id: 3a9095c35701d1f303302ee821a0a70a
               domain: switch
           else:
             - type: turn_off
               device_id: 84af653f71476618f12fbb2769c17736
               entity_id: 3a9095c35701d1f303302ee821a0a70a
               domain: switch
     - conditions:
         - condition: trigger
           id:
             - Laadcyclus
       sequence:
         - service: input_button.press
           metadata: {}
           data: {}
           target:
             entity_id: input_button.testknop
mode: single

Automations

Via Settings > Automations & Scenes kan je adhv triggers acties laten uitvoeren

  • Als deursensor open of dicht gaat een notification naar je smartphone sturen
trigger : Voordeur opens
action  : Notifications: Send a notification via mobile_app_sm_a556b
  • 20 minuten voor zonsondergang een notification naar je smartphone sturen
trigger : sun - sunset offset : -00:20:00
action  : Notifications: Send a notification via mobile_app_sm_a556b
  • start het laden van de auto om 21u en zet lader af zodra auto volgeladen is

Hiervoor gebruik ik een 2-polig Earu relais met powermeter waarmee ik het stroomcircuit aanzet waar de lader aanhangt. De lader zelf verbruikt 5 watt. Het verbruik zal uiteraard stijgen als de auto aan het laden is en terug dalen zodra het laden klaar is. Met deze wetenschap kunnen we een conditioneel script maken dat het stroomcircuit terug uitschakelt als er geen auto aanhangt (na 1 minuut nog steeds niet meer dan 10 watt verbruik) of als het laden klaar is (check stroomverbruik elk half uur). Het script kan ook gestart worden met een knop (testknop) in mijn dashboard, vandaar de 2e trigger. Ik heb dit volledig ingericht via de UI, maar in YAML geeft dit (device id = relais, entity id = switch of power consumption).

alias: Auto Laadcyclus
description: ""
trigger:
 - platform: state
   entity_id:
     - input_button.testknop
 - platform: time
   at: "21:00:00"
condition: []
action:
 - type: turn_on
   device_id: 2124a5e7322253518061624be3f97d74
   entity_id: 877ddd2f5be9c16b0c7b0f33e5fba38c
   domain: switch
 - delay:
     hours: 0
     minutes: 1
     seconds: 0
     milliseconds: 0
 - if:
     - type: is_power
       condition: device
       device_id: 2124a5e7322253518061624be3f97d74
       entity_id: 23a261f741a4d5bde35801f07087fc24
       domain: sensor
       above: 10
   then:
     - service: notify.mobile_app_sm_a556b
       data:
         message: Laadclyclus  gestart
     - repeat:
         sequence:
           - delay:
               hours: 0
               minutes: 30
               seconds: 0
               milliseconds: 0
         until:
           - type: is_power
             condition: device
             device_id: 2124a5e7322253518061624be3f97d74
             entity_id: 23a261f741a4d5bde35801f07087fc24
             domain: sensor
             below: 10
     - service: notify.mobile_app_sm_a556b
       data:
         message: Laad cyclus beeindigd.
   else:
     - service: notify.mobile_app_sm_a556b
       data:
         message: Geen auto gekoppeld. Laadcyclus onderbroken
 - type: turn_off
   device_id: 2124a5e7322253518061624be3f97d74
   entity_id: 877ddd2f5be9c16b0c7b0f33e5fba38c
   domain: switch
mode: single

Let's Encrypt

(In mijn configuratie heb ik geen inkomend verkeer van buitenaf, dus voor mij is deze sectie niet relevant)
Veiligheid moeten we ernstig nemen. Als jij van overal ter wereld aan Home Assistant wil kunnen om bv. je chauffage aan te zetten, dan kan iedereen ter wereld dat proberen. Voor mij zijn er 2 no-no's in dit scenario. Een simpele paswoord beveiliging is te makkelijk te hacken en met HTTP als protocol stuurt alles in plain-text door, ook je paswoord. Laten we die 2 zaken even aanpakken zodat je gerust je app kan openstellen naar je HomeAssistant installatie en vanop cafe effe je rolluiken naar beneden doen.

  1. Two-Factor Authentication (2FA) van je Pi :
    Iedereen is het er over eens : Een paswoord is té gemakkelijk om te hacken, zelfs een zg. complex paswoord, daarom dat ik aanraad om zeker de accounts die admin rechten hebben te beveiligen met 2FA. Gelukkig is dit relatief simpel te realiseren. Alles staat nejes uitgelegd op deze website : https://www.raspberrypi.com/news/setting-up-two-factor-authentication-on-your-raspberry-pi/
    Ik gebruik 'Timebased One Time Passwords' (TOTP). Klinkt ingewikkeld, maar betekent gewoon dat je Home Assistant toevoegt aan de Google Authenticator app op je smartphone en daarna bij login naast je paswoord ook de 6 cijfers moet ingeven die je in de app ziet. Omslachtig ? Eerlijk gezegd vind ik dat alle kritische applicaties zo zouden moeten beveiligd zijn.
  2. Two-Factor Authentication (2FA) van Home Assistant
    Alles staat netjes uitgelegd op deze website : https://www.home-assistant.io/docs/authentication/multi-factor-auth/
  3. HTTPS secure sockets
    Met HTTP gaat alle info in clear-text over internet. Als je TOTP gebruikt dan kan je alvast gerust zijn dat men niet zo maar op je server geraakt, zelfs al zou men je paswoord gevonden hebben, maar toch. Het opzetten van HTTPS is wel omslachtiger en bestaat eigenlijk uit volgende stappen :
    • Het opzetten van dynamische DNS
    • Het aanvragen van certificaten
    • Het forwarden van je URL en HTTPS poort naar Home Assistant
    • De juiste config in je app ingeven


Dit staat uitgelegd op deze website : https://www.home-assistant.io/blog/2015/12/13/setup-encryption-using-lets-encrypt/ maar daar gaat men er van uit dat je HASSIO gebruikt of dat je een Green/Yellow box hebt.
toe te voegen

Tips & Tricks

  • YAML : Je kan in Home Assistant heel wat via de UI aanmaken, maar soms wil je een geavanceerd feature hebben, nu ja geavanceerd, iets dat niet via de UI kan en moet je overgaan naar de scripting taal van Home Assistant, YAML genaamd, "Yet Another Markup Language". Dit kan je eenvoudig bereiken door op de plaats waar je iets wil aanpassen in het hamburger menu (3 puntjes rechts) "Edit in YAML" te kiezen. De meeste info die je op internet vindt is trouwens in YAML formaat
  • Gmail notificaties : We hebben eerder een gmail integratie opgezet. Wel, die kan je nu gebruiken om je HomeAssistant mails te laten sturen. https://www.home-assistant.io/integrations/smtp/ (onderaan)
  • Random delay : Je wil niet dat een actie altijd op exact hetzelfde moment gebeurd. Je kan daarom in de acties een delay toevoegen. In de UI kan je alleen uren:minuten:seconden ingeven als delay (bv. 00:05:00 = 5 minuten delay), maar via YAML kan je python code toevoegen. Volgende code is een delay die tussen de 2 en 5 minuten duurt
delay:
 hours: 0
 minutes: "{{ range(2, 5)|random|int }}"
 seconds: 0
 milliseconds: 0

Je ziet dat de minuten geen echte getal zijn maar een formule die een willekeurige integer tussen de 2 en 5 terug geeft.

NOG TOE TE VOEGEN

  • EspHome ?
  • backup
  • dashboards maken
  • mail notifications
  • grafieken met stroomverbruik
  • sunset vs dusk en sunrise vs dawn

Mijn devices

  • RFXTRX
    • Rolluik voor = RFLink - Id A 0A 01 / Unit 1 = 071a00000A0A0101
    • Rolluik achter = RFLink - Id A 0A 01 / Unit 2 = 071a00000A0A0102
    • Licht Plafond = 2A60C00 - 2 (makkelijkste door op afstandsbediening te drukken)
    • Licht Hall = 2A60C00 - 4 (makkelijkste door op afstandsbediening te drukken)
    • Licht Kerstboom = 2A60C00 - 3 (makkelijkste door op afstandsbediening te drukken)
  • Zigbee
    • Voordeur = Manufacturer TZ3000_au1rjicn - model TS0203
    • Achterdeur = Manufacturer TZ3000_au1rjicn - model TS0203
    • Smartplug 1 = Manufacturer TZ3000_xzhnra8x - model TS011F
    • Carport relais = EARU Circuit Breaker EAYCMD-Z-2P