Hass.io - Home Assistant telepítés, beállítás

  • (f)
  • (p)
Tudástár – Írta: | 2019-02-06 05:00

Okos otthon kezdő lépések. "Központi egység" üzembe helyezése. Röviden, tömören.

Kulcsszavak: . smart homeokos otthonhome assistant

[ Új teszt ]

Telepítés

Több leírás is található már magyar nyelven, de talán elfér még ez is mellettük.

Szükséges hardver, szoftver:
- Raspberry Pi (nálam Zero W)
- 32 GB MicroSD kártya
- Hass.io image
- Etcher a flash-eléshez

Telepítés menete:
Eszközönként némileg eltérő lehet, leírások a hivatalos oldalon.
SD kártya be, Etcher indít, image, majd meghajtó kiválaszt, flash.

A hálózati beállítások megadásához (mivel a Pi Zerón nincs se LAN port, se USB csatlakozó) az SD kártyán a CONFIG/network/ mappában létre kell hozni egy my-network nevű fájlt (igen, a mappákat is), az alábbi tartalommal:

[connection]
id=hassos-network
uuid=GENERÁLT_UUID
type=802-11-wireless

[802-11-wireless]
mode=infrastructure
ssid=WIFI_SSID
# Uncomment below if your SSID is not broadcasted
#hidden=true

[802-11-wireless-security]
auth-alg=open
key-mgmt=wpa-psk
psk=WIFI_JELSZÓ

[ipv4]
method=auto

[ipv6]
addr-gen-mode=stable-privacy
method=auto

UUID: Itt tudsz generálni, erre jó.
Saját wifi adatok megadása.

Ha megvagyunk, mehet a kártya a Raspberry-be és indíthatjuk.
Néhány perc elteltével a routeren ellenőrizzük, hogy milyen IP-címet kapott az eszköz.

Ha eddig nem tettük volna meg, határozottan célszerű MAC alapján fix címet hozzárendelni.
A továbbiakban a http://hassio.local:8123 (kezdetben http://Raspberry_IP_címe:8123) címen lesz elérhető a szerverünk.

Kb. 20-40 perc amíg befejeződik a telepítés és a frissítés.

Alapbeállítások

Ha végzett a telepítő, az alábbi ablak fogad:

Létrehoz, majd belépés.

Íme a kezdő oldalunk:

Minden új beállítás, telepítés vagy config módosítás után erősen ajánlott az ellenőrzés, validálás futtatása a Konfiguráció >> Általános >> "Konfiguráció érvényesítés" résznél, majd egy újraindítás ugyanitt, a "Szerverkezelés" lapon (újraindítás nélkül nem vesz fel minden beállítást).

A Hass.io előnye, hogy menüből, egyszerűen lehet komponenseket hozzáadni.

Amiket első körben érdemes telepíteni, hogy a Home Assistant lényegi részét (configuration.yaml) elérjük:

Samba szerver official

Rendszer mappák elérése Windows alól:

Telepítés után megadhatók a beállítások:

Config:
{
"workgroup": "WORKGROUP",
"username": "hassio",
"password": "SAMBA_JELSZÓ",
"interface": "",
"allow_hosts": [
"10.0.0.0/8",
"172.16.0.0/12",
"192.168.0.0/16"
]
}

Save, majd indítsuk el a szolgáltatást, Start.

Ezután felcsatolható Windows alá a \\hassio\config mappa (és további négy másik).

Configurator official

Web alapú szerkesztő felület a Hass.io fájljaihoz.

Config:
{
"username": "admin",
"password": "CONFIGURATOR_JELSZÓ",
"ssl": false,
"certfile": "fullchain.pem",
"keyfile": "privkey.pem",
"allowed_networks": [
"192.168.0.0/16",
"172.30.0.0/16"
],
"banned_ips": [
"8.8.8.8"
],
"banlimit": 0,
"ignore_pattern": [
"__pycache__"
],
"dirsfirst": false,
"enforce_basepath": false,
"notify_service": "persistent_notification.create"
}

Itt is Save majd Start.
Ezt követően az "OPEN WEB UI"-ra kattintva hozzáférünk a szerkesztőhöz.

Annak érdekében, hogy megjelenjen a "Frontend" részen, illetve a menüben, az alábbi sorokat kell beillesztenünk a configuration.yaml fájlba:

panel_iframe:
configurator:
title: Configurator
icon: mdi:wrench
url: http://hassio.local:3218

Kód ellenőrzés a menüből majd a Home Assistant újraindítása.

Configuratorból is újraindítható a Home Assistant. Jobb felső sarok, három piros pontos menü.

SSH szerver official

A rendszer parancssoron keresztül is kezelhető, hogy ezt ki tudjuk használni szükséges a fenti szolgáltatás telepítése.

Config:
{
"authorized_keys": [],
"password": "SSH_JELSZÓ"
}

Szokásos Save, Start.

Ha fut a szerver, akkor a putty segítségével elérhető a command line.
Az alap felhasználónév root, a jelszó pedig, amit megadtunk.
Nekem pillanatnyilag azért hasznos, mert a webes felületről nem működik az újraindítás. Linux guruk meg úgyis ezzel kezdik.

Finomhangolás

Ha a fent említett valamelyik módon megnyitjuk a configuration.yaml fájlt, az alábbi sorok fogadnak:

homeassistant:
# Name of the location where Home Assistant is running
name: Home
# Location required to calculate the time the sun rises and sets
latitude: 0
longitude: 0
# Impacts weather/sunrise data (altitude above sea level in meters)
elevation: 0
# metric for Metric, imperial for Imperial
unit_system: metric
# Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
time_zone: UTC
customize: !include customize.yaml

Értelemszerűen módosítandó.

Témák, skinek

Személyre szabhatjuk milyen színekben díszelegjen a Home Assistant felületünk.

1. A configuration.yaml fájl frontend részét egészítsük ki:

frontend:
themes: !include themes.yaml

2. Hozzunk létre egy themes.yaml fájlt a config mappában.
Legegyszerűbb kezdésként szétnézni a neten (például itt) és keresni néhány előre megírt kódot, majd azokat beilleszteni.

3. Ellenőrzés, újraindítás.

4.A menü tetején a profilunkra kattintva tudunk a témák között váltogatni.

Kapcsolók

Rátérve a fontosabb, látványosabb dolgokra:

Sonoff Basic relé, illetve Sonoff T1 falikapcsoló "bedrótozása" a rendszerbe.

A gyári firmware csere lépéseiről itt és itt találtok infót.

A kapcsoló bekötését pedig így kell megoldani.

A fix IP cím ezeknél az eszközöknél is előfeltétel a zavartalan működés érdekében.

Kiegészítés 1:
Ha nem tudsz / akarsz / szeretsz forrasztani, akkor így is meglehet oldani:
[Forrasztás helyett]
Működik, a relét és a kapcsolót is így frissítettem.

Kiegészítés 2:
A Tasmota firmware-ről részletesebb leírás itt, a legfrissebb verzió pedig itt tölthető le.

Kiegészítés 3:
Ha a fali kapcsolót nem érzed elég érzékenynek, akkor lazíts a rögzítőcsavarokon, lehet, hogy feszül, és így kevésbé ér hozzá amikor manuálisan kapcsolod.

Kiegészítés 4:
A beüzemelés, beállítások után ennek a videónak a segítségével állítsuk be a Sonoff kapcsolót / relét, hogy ne kapcsolgasson random fel-le.

Ahhoz, hogy okos eszközeinket a Home Assistant által tudjuk vezérelni, telepítenünk kell egy MQTT brokert, az előbb leírt módon.

Mosquitto broker official

Config:
{
"logins": [
{"username": "MQTT_user", "password": "MQTT_jelszó"}
],
"anonymous": false,
"customize": {
"active": false,
"folder": "mosquitto"
},
"certfile": "fullchain.pem",
"keyfile": "privkey.pem"
}

Save, Start, majd szerver újraindítás.

A configuration.yaml fájlban adjuk hozzá a brokert:

mqtt:
broker: core-mosquitto
username: MQTT_user
password: MQTT_jelszó

A már jól bejáratott kód ellenőrzés, szerver restart.

A Sonoff kapcsoló IP címét beírva a böngészőbe elénk tárul a Tasmota kezelőfelülete. Itt navigáljunk a Configuration >> Configure MQTT beállításokra.

Amiket itt be kell állítanunk:

Host: a HA-t futtató eszköz IP címe
Port: 1883 (default)
Client: egyedi azonosító a kapcsolóhoz
User: broker configjában megadott felhasználó
Password: User: broker configjában megadott jelszó
Topic: maradhat az alap sonoff is, a könnyebb azonosítás miatt írtam utána aT1-et, ami a kapcsolóra utal.

A Save-re kattintás után az eszköz újraindul, majd ideális esetben, az MQTT broker logjában (Hass.io menüből kiválasztva a komponenst) az alábbi sorokat kell kapnunk:

[INFO] Setup mosquitto configuration
[WARN] SSL not enabled - No valid certs found!
[INFO] Found local users inside config
[INFO] Initialize system configuration.
[INFO] Initialize Hass.io Add-on services
[INFO] Initialize Home Assistant discovery
[INFO] Start Mosquitto daemon
1546632705: mosquitto version 1.4.15 (build date 2018-03-04 15:14:46+0000) starting
1546632705: Config loaded from /etc/mosquitto.conf.
1546632705: *** auth-plug: startup
1546632705: ** Configured order: http
1546632705: Opening ipv4 listen socket on port 1883.
1546632705: Opening ipv6 listen socket on port 1883.
1546632705: Opening websockets listen socket on port 1884.
1546632705: Warning: Mosquitto should not be run as root/administrator.
1546632724: New connection from 192.168.1.120 on port 1883.
[INFO] found MQTTuser on local database
1546632724: New client connected from 192.168.1.120 as KisSzobaLampa (c1, k10, u'MQTTuser').

Amennyiben a kapcsoló sikeresen csatlakozott a szerverünkhoz, ismét térjünk vissza a configuration.yaml szerkesztéséhez és adjuk hozzá az alábbi sorokat:

# Sonoff T1 kapcsoló - Kisszoba
light:
- platform: mqtt
name: "Kisszoba lámpa"
command_topic: "cmnd/sonoffT1/POWER"
state_topic: "stat/sonoffT1/POWER"
qos: 1
payload_on: "ON"
payload_off: "OFF"
retain: false

Nevezzük el a kapcsolót, a topicoknál egyezzen meg a kapcsoló beállításainál megadott topic névvel.

Kód elment, validálás, újraindítás.

Ha mindent jól csináltunk, akkor meg kell jelennie a kezdő képernyőnkön a kapcsolónak.

A Basic relé esetében ugyan ezek a lépések, eltérés annyi, hogy a kódban a light helyett switch szerepeljen.

Ha kapcsolónak definiálod a világítást vagy vice versa, akkor is működik, csak más lesz az ikonja és másik groupba teszi.

Távoli elérés

Nyilván nem ér az egész rendszer sokat, ha nem tudunk ránézni az otthoni dolgainkra nyaralás alatt, munkából, stb. Keresni kell hát megoldást a távoli elérésre.

A lenti megoldásnál vannak biztonságosabb módszerek is. Azokról majd máskor, ha már lesz időm foglalkozni a kérdéssel

Az egyik legegyszerűbb megoldás a Hass.io Add-on Store-ban is megtalálható Duck DNS.

Duck DNS official

Hogy mire való a dinamikus DNS, annak itt tudtok utána olvasni.

Előtte azonban látogassunk el a www.duckdns.org oldalra.
Válasszunk egy szimpatikus bejelentkezési formát a felsoroltak közül:

Belépés után hozzunk létre egy domaint. Jelen esetben ha-teszt.duckdns.org-ot fogjuk használni.

Fontos még a tokenünk, erre is szükség lesz.

Mehet az add-on telepítés, majd beállítás:

Config:
{
"lets_encrypt": {
"accept_terms": true,
"certfile": "fullchain.pem",
"keyfile": "privkey.pem"
},
"token": "ide_kell_a_dickdns_token",
"domains": [
"ha-teszt.duckdns.org"
],
"seconds": 300
}

A Duck DNS kiegészítő magában foglalja a Let’s Encrypt szolgáltatást is, mely a titkosításért felel. Hogy ezt használni tudjuk, az "accept_terms" sornál a true-ra kell módosítani az értéket.
Másoljuk be a DuckDNS tokenünket is, majd adjuk meg a használni kívánt domain nevet.

Mentés, indítás. Home Assistant újraindítás.

A következő lépésként a routeren kell port forwardingot beállítani, az alábbiak szerint:

Port Range: 443
Local IP: A szerver IP címe (ezért is fontos a fix cím)
Local Port: 8123
Protocol: TCP

Port nyitás segítség.
Ez a kevésbé biztonsági része, adott portokon be engedjük a forgalmat.

Tegyük be a lenti sorokat a config fájlba (configuration.yaml):

http:
base_url: https://ha-teszt.duckdns.org:8123
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem

Mentés, kód ellenőrzése, majd újraindítás.

Ezután helyi hálózaton sem érjük el a webes felületet HTTP protokollon keresztül, ott is csak a titkosított fog működni!

Mobilnetről, munkahelyről, szomszédból tesztelhető munkánk eredménye a https://saját_domain_név.duckdns.org címen.

Ha használni szeretnénk a Configuratort távolról is, akkor némi módosítást kell eszközölnünk a beállításaiban.

Config:
{
"username": "admin",
"password": "CONFIGURATOR_JELSZÓ",
"ssl": true,
"certfile": "fullchain.pem",
"keyfile": "privkey.pem",
"allowed_networks": [
"0.0.0.0/0"
],

Az "ssl:"-t állítsuk true-ra, az "allowed_networks":-nél pedig adjuk meg a "0.0.0.0/0". hálózatot.
Ez utóbbi beállítás újabb biztonsági rés, nem ajánlott az állandó használata, de ha máshogy nem érjük el a konfigurációs fájlunkat, ideiglenes megoldásnak elmegy.

Mentés, újraindítás.

Újfent a router portforward beállításaihoz nyúlunk.

Port Range: 3218
Local IP: A szerver IP címe (ezért is fontos a fix cím)
Local Port: 3218
Protocol: TCP

Hogy az oldalsó menüből is működjön, a config fájlban módosítsuk az utolsó sort az alábbi formában:

panel_iframe:
configurator:
title: Configurator
icon: mdi:wrench
url: https://ha-teszt.duckdns.org:3218

Zárszó

Lehetőségeink gyakorlatilag végtelenek az otthon-okosításban és a Home Assistanton belül is.

A fenti szösszenetet egyfajta kedvcsinálónak szántam. Jómagam is még csak most kezdtem el foglalkozni a témával. Vannak ötletek, elképzelések – idő és pénztárca függvénye minden. Tervezem, hogy bővítem a cikket vagy újat írok, ha kellő mennyiségű saját tapasztalat jön össze.

Addig is több infó, leírás és segítség a témában:

Home Assistant Hungary - Facebook csoport
Csináld magad okosotthon
Csináld magad okosotthon - Facebook csoport
Bitek mindenhol blog
Home Assistant hivatalos weboldal
Home Assistant Community (fórum, blog, minden)
JuanM Tech - HA beállítások lépésről-lépésre

+ Google a barátod, gyakorlatilag mindenre találni működő megoldást (GitHub, reddit).

A cikket leginkább azoknak szántam, akik mostanság vágnak bele vagy tervezik, hogy elmélyülnek otthonuk okosításában.

Remélem lesz, akinek hasznos eme leírás.