Home-Assistant
integrácia open-source systému pre automatizáciu domácnosti
About
Home-Assistant je open-source nástroj na správu inteligentnej domácnosti. Je napísaný v jazyku Python a je široko konfigurovateľný. Je obľúbený aj vďaka integrácii veľkého množstva zariadení určených pre inteligentnú domácnosť. Príklady jeho použitia si môže pozrieť na demo stránke.
My si dnes vyskúšame do neho integrovať vlastné zariadenia, ktoré budú komunikovať prostredníctvom protokolu MQTT - jednoduchý teplotný senzor a jednoduchý spínač.
Goals
- zoznámiť sa so základmi používania aplikácie Home-Assistant
- naučiť sa vytvárať vlastné MQTT senzory a spínače
Content
Krok #1: Get Ready
V prvom kroku rozšírime konfiguráciu nášho
docker-compose.yaml
súboru a vykonáme prvotnú konfiguráciu
tohto nástroja.
Task
Úloha 1.1: Rozšírte svoj súbor docker-compose.yaml
o nástroj
Home-Assistant.
- obraz
homeassistant/home-assistant:stable
- volume pre nastavenie rovnakého času ako na hosťovskom počítači
/etc/localtime:/etc/localtime:ro
- volume konfiguráciu v lokálnom priečinku
./ha-config:/config
network_mode: host
Task
Úloha 1.2: Spustite kompozíciu.
Výsledkom spustenia sa v priečinku spustenia vytvorí priečinok
ha-config/
, ktorý obsahuje aktuálnu konfiguráciu HA.
Task
Úloha 1.3: Otvorte prehliadač na adrese http://localhost:8123 a prejdite prvotnou konfiguráciou.
- vytvorte si účet používateľa zadaním prihlasovacieho mena a hesla
- nastavte svoju lokáciu
- potvrďte zariadenia, ktoré sa HA podarilo zistiť pri prvom spustení
Task
Úloha 1.4: Rozhliadnite sa v prostredí systému.

Task
Úloha 1.5: Otvorte súbor s konfiguráciou configuration.yaml
v
priečinku ha-config/
.
V tomto súbore sa nachádza celá konfigurácia HA.
Task
Úloha 1.6: Do konfigurácie pridajte časť mqtt
, kde špecifikujete
MQTT broker.
V tomto súbore sa nachádza celá konfigurácia HA.
mqtt:
broker: broker.hivemq.com
discovery: false
Upozornenie
Predvolená hodnota vlastnosti discovery
je
true
. Ak ju necháte nastavenú na túto hodnotu, HA urobí
operáciu discovery nad verejným broker-om, čo znamená, že
nájdete kopec zariadení, o ktoré nemáte záujem. Naopak - prípadný
útočník by o ne záujem mal. Pre naše experimenty si vystačíme s verejným
broker-om. Pre reálne nasadenie však svoju domácnosť nevystavujte na
verejnosti ;) Môžete použiť napr. obraz eclipse-mosquitto.
Task
Úloha 1.7: Pre aplikovanie zmien reštartujte HA.
Reštartnete ho pomocou menu
Configuration > Server Controls > Restart
.
Krok #2: Creating a MQTT Sensor Device
V tomto kroku vytvoríme jednoduchý senzor teploty v spálni.
Task
Úloha 2.1: Do konfigurácie HA pridajte do časti sensor
senzor
reprezentujúci váš teplotný senzor.
sensor:
- platform: mqtt
state_topic: "kpi/iot/bedroom/temperature/get"
name: "Bedroom Temperature Sensor"
Poznámka
Senzor alebo obecne entita môže mať samozrejme výrazne viac
vlastností, ako len uvedené. Môžete si ho rozlične upravovať napr.
pridaním ikony (kľúč icon
) alebo jedinečného identifikátora
(kľúč unique_id
). Viac informácií o upravovaní entít
nájdete v dokumentácii.
Task
Úloha 2.2: Overte, či bol senzor naozaj vytvorený.
Po reštartovaní by sa vám senzor mal zobraziť na prehľadovej obrazovke HA.

Task
Úloha 2.3: V prostredí nástroja Node-RED si vytvorte flow s názvom
Smart Home
, v ktorom budete pridávať flow-y pre vašu
domácnosť.
Task
Úloha 2.4: Vo flow-e Smart Home
vytvorte slider
,
pomocou ktorého budete posielať aktuálnu teplotu do príslušnej témy.

Task
Úloha 2.5: Overte vašu implementáciu.
Ak ste postupovali správne, váš senzor v HA zaznamená každú zmenu, ktorú vykonáte.

Task
Úloha 2.6: Pridajte si v prehľade ďalšie karty pre zobrazenie hodnoty z teplotného senzora iným spôsobom.
V pravom hornom rohu prehľadu si rozbaľte menu a vyberte si položku
Edit Dashboard
. V nej môžete upraviť vzhľad a rozloženie
celého prehľadu. Napríklad môžete:
- zobraziť teplotu vo forme budíka (gauge)
- zobraziť graf buď pomocou karty
History Graph
aleboSensor

Krok #3: Creating a MQTT Device as a Switch
V tomto kroku vytvoríme jednoduchý svetelný spínač.
Task
Úloha 3.1: Do konfigurácie HA pridajte do časti switch
nový
svetelný spínač.
switch:
- platform: mqtt
name: "Bedroom Light Switch"
command_topic: "kpi/iot/bedroom/switch/set"
qos: 1
retain: true
payload_on: 1
payload_off: 0
Task
Úloha 3.2: Overte, či bol spínač naozaj vytvorený a funguje správne.
Po reštartovaní by sa vám spínač mal zobraziť na prehľadovej obrazovke HA. Jeho fungovanie môžete overiť pomocou websocket klienta na stránke HiveMQ Broker-a.
Task
Úloha 3.3: Pridajte kartu Button
, ktorá bude reprezentovať váš
spínač.
Additional Tasks
Additional Links
Home-Assistant - domovská stránka nástroja Home-Assistant