
Witajcie moi drodzy
Opiszę tutaj szczegółowo jak można łatwo zacząć przygodę z Home Assistant. Przedstawię jego konfigurację na różnych platformach (Raspberry Pi, Banana Pi, maszyna wirtualna) oraz zademonstruję, jak podłączyć do niego pierwsze urządzenia przez WiFi i przez Zigbee.
Wstęp
Home Assistant jest wciąż rozwijającym się rozwiązaniem pozwalającym na połączenie wiele różnorodnych urządzeń Smart Home od różnych producentów, oraz uwalniającym nas od niechcianych i (zdaniem niektórych) śledzących serwerów ich producentów.
Normalnie jak kupujemy urządzenie Smart (np. gniazdko z WiFi, albo czujnik otwarcia drzwi z Zigbee, albo odkurzacz) to jesteśmy skazani na użycie go wraz z aplikacją jego producenta i z serwerami tego producenta.
Jak mamy urządzenia dwóch różnych producentów, to często nie możemy ich razem zintegrować (np. zaprogramować tak by czujnik jednej firmy włączał światło na przekaźniku od drugiej).
Dodatkowo jak dana firma padnie, to możliwe, że padną wraz z nią jej serwery i padnie też wtedy urządzenie u nas.
Home Assistant to wszystko rozwiązuje - i wspiera wiele urządzeń 'z miejsca', nawet bez potrzeby zmiany firmware.
Oczywiście, wszystko ma swój koszt - Home Assistant musi być przez nas postawiony na maszynie w naszej sieci lokalnej.
Musimy też samodzielnie parować urządzenia z naszym Home Assistant.
I to te procesy tutaj opiszę.
Zapraszam do lektury.
Zawartość tematu
Odpowiem tutaj na następujące pytania:
- jak zainstalować Home Assistant na maszynie wirtualnej?
- jak zainstalować Home Assistant na Raspberry Pi (za pomocą Balena Etcher, czysta instalacja na karcie SD)?
- jak dodać Home Assistant na Banana Pi (na istniejącym serwerze na Banana Pi, bez resetowania całego systemu)?
- jak zainstalować Mosquitto MQTT broker dla Home Assistant?
- jak podłączyć urządzenie Tasmoty (na ESP8266 lub podobnym) poprzez MQTT do Home Assistant?
- jak zainstalować zigbee2mqtt na Home Assistant?
- jak używać Zigbee USB dongle CC2531 wraz z Home Assistant?
- jak podłączyć urządzenie Aqara do Home Assistant poprzez Zigbee?
- jak utworzyć prosty scenariusz automatyzacji na Home Assistant, przykładowo coś w stylu "włącz światło gdy w pokoju jest ciemno"?
- jak ustawić stałe IP dla urządzenia z Home Assistant?
- jak podpiąć Home Assistant do naszego konta Tuya/SmartLife i kontrolować ich urządzenia bez potrzeby zmiany firmware?
- jak umożliwić logowanie się poprzez SSH do konsoli Home Assistant?
UWAGA: Temat zakłada, że czytelnik zna podstawy podstaw obycia np. z Raspberry, z routerem, wie jak uruchomić Raspberry, jak zalogować się na swój router, itp. itd.
Co będzie nam potrzebne?
To co będzie potrzebne zależy od tego jaką drogę instalacji obierzemy.
Opiszę tu dwie możliwości:
OPCJA 1 - Wirtualna maszyna
Wirtualną maszynę stawiamy na normalnym komputerze, można użyć do tego VMware lub VirtualBoxa. W tym temacie użyję VMware. Wirtualna maszyna stanowi bardzo wygodne rozwiązanie, bo można ją łatwo w razie czego przenieść, można robić jej kopie zapasowe (a jak mamy kopię, to można eksperymentować do woli, bo nic nie zepsujemy), jednakże wymaga nieco mocniejszego sprzętu. Zwiększa też zużycie prądu, ale jeśli mamy komputer który chodzi cały czas to dzięki VM nie musimy kupować specjalnie Raspberry.
Wirtualną maszynę można też postawić np. na starym laptopie, który jest cały czas podłączony do sieci.
OPCJA 2 - Komputer jednopłytkowy
Drugim rozwiązaniem jest użycie Raspberry Pi, najlepiej Raspberry Pi 3, 3+ oraz 4. Jest to pewien koszt, ale niskie zużycie energii w pewnym stopniu go zwraca, choć nie jest to aż tak uniwersalne rozwiązanie jak maszyna wirtualna.
Można też próbować używać klonów Raspberry takich jak Banana Pi, na nich też da się zainstalować Home Assistant, choć nie są oficjalnie wspierane.
Wtedy potrzebna będzie karta SD.
W obu przypadkach, jeśli chcemy wspierać Zigbee, to potrzebujemy też Zigbee Dongle, są różne, ale tu użyłem CC2531:


I oczywiście przyda się jakieś urządzenie do sterowania przez Home Assistant - tutaj jest naprawdę szeroki wybór, bo możliwości są bardzo duże, Home Assistant wspiera masę urządzeń różnych producentów, polecam zapoznać się z ich listą:
https://www.home-assistant.io/integrations/#all
Moja kolekcja urządzeń wygląda tak:

(ale nie twierdzę, że wszystkie są 100% wspierane przez Home Assistant, to dopiero sprawdzę)
Strona domowa i dokumentacja Home Assistant
Na początek warto zapoznać się ogólnie z dokumentacją Home Assistant, dostępną na jego oficjalnej stronie:
https://www.home-assistant.io/
Opis jak zacząć:
https://www.home-assistant.io/getting-started/
Lista wspieranych urządzeń:
https://www.home-assistant.io/integrations/
Dokumentacja:
https://www.home-assistant.io/docs/
Przykłady automatyzacji:
https://www.home-assistant.io/cookbook/
Raspberry Pi - instalacja Home Assistant 'na czysto'
Raspberry Pi, a dokładniej Raspberry Pi 3, 3+ oraz 4 są oficjalnie wspierane przez Home Assistant i pozwalają na łatwą i szybką instalację całości wraz z gotowym systemem operacyjnym na czystej karcie SD, którą potem wkładamy do 'Malinki'.
Raspberry Pi Zero i Pi 2 są również wspierane, lecz użycie ich jest odradzane ze względu na kłopoty z wydajnością.
Najpierw pobieramy odpowiedni obraz stąd:
https://www.home-assistant.io/hassio/installation/
Następnie używamy Balena Etcher, stąd:
https://www.balena.io/etcher/
do nagrania tego obrazu na kartę SD (co najmniej o rozmiarze 32GB).
Polecam 64GB:


Do tego przejściówka na USB:

Proces wgrywania obrazu przez Balena Etcher:




Tak przygotowaną kartą SD (z kompatybilnym obrazem systemu) wkładamy do Raspberry, które potem uruchamiamy. Tyle wystarczy - potem trzeba tylko podpiąć klawiaturę i monitor bądź podłączyć się przez UART by mieć dostęp do linii komend.
Jeśli nie mamy wolnego monitora itp. i chcemy od razu podpiąć się przez sieć do Raspberry, to do tego potrzebna będzie znajomość IP jakie to Raspberry dostało, a te IP możemy znaleźć np. w logach w routera jakie IP ostatnio przydzielił DHCP.
Banana Pi - dodawanie Home Assistant do gotowego serwera
Drugim sposobem instalacji jest dodanie Home Assistant do już gotowego systemu postawionego na np. Banana Pi. W oficjalnej dokumentacji nie ma nic o Banana Pi, ale po zastosowaniu kilku drobnych trików można go też na tej platformie łatwo postawić.
Gotowy serwer na Banana Pi mam już od jakiegoś czasu, jest to mój OpenMediaVault opisany tutaj:
Bezgłośny, energooszczędny serwer plików 480GB na Banana Pi - OpenMediaVault

Serwer ten chodzi u mnie cały czas już od prawie roku, więc jest idealnym kandydatem do ubogacenia o kontrolę urządzeń Smart.
Pokażę tutaj, jak można doinstalować na taki serwer Home Assistant.
Operację wykonujemy przez SSH, używam do tego Putty:

Trzeba zalogować się jako root:

Następnie pobierzemy skrypt instalujący, komenda:
curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh
Curl był u mnie już zainstalowany, w razie czego trzeba go zainstalować przez apt-get.
Rezultat:

Potem uruchamiamy instalator (ale pewnie za pierwszym razem nie wyjdzie, o tym za chwilę). Komenda bash installer.sh:

Instalacja się nie powiodła - [error] missing: network-manager apparmor. Brakuje nam paczki.
Trzeba ją zainstalować.
Komenda apt-get install network-manager apparmor-utils:

Wykonanie potwierdzamy wpisując Y:

Pobieranie trochę czasu zajmie:

UWAGA: w zależności od tego na czym instalujecie, może Wam brakować jeszcze innych paczek, m. in. bash, jq, curl, avahi-daemon, dbus, software-properties-common. Instalujemy je analogicznie tak jak apparmor-utils, poprzez apt-get.
Potem ponownie próbujemy zainstalować, bash installer.sh:

Potwierdzamy (jeśli mamy coś w /etc/network/interfaces to warto sobie zrobić kopię).
Teraz niestety znów pojawi się błąd. [error] Please set machine for armv71 Wynika on z tego, że banana pi ma inną architekturę, armv71, która oficjalnie jest wspierana przez Home Assistant.
To też można naprawić.
Uruchamiamy instalator tak:
bash installer.sh -m raspberrypi3
wtedy skrypt potraktuje nasze Banana tak jak Raspberry.
Instalacja trwa:

Po jakimś czasie:

Instalacja gotowa, ale to nie koniec!
W tym momencie Home Assistant się jeszcze instaluje w tle.
Jego strona WWW (adres IP naszej maszyny, port 8123, np. 192.168.0.128:8123) w ogóle nie działa:

W tym momencie czekamy cierpliwie, nie wykonujemy żadnych zmian. Nie wyłączamy, nie restartujemy maszyny.
Po jakimś czasie dopiero będzie wyświetlać się tymczasowa strona z prośbą o poczekanie:

Ta strona może jeszcze znikać. Dopiero po jakimś czasie otrzymamy:

i wtedy dopiero instalacja jest naprawdę gotowa
Wirtualna maszyna - instalacja Home Assistant
Trzecim sposobem na Home Assistant jest uruchomienie go na maszynie wirtualnej, np. w VMware, które chodzi na normalnym komputerze klasy PC.
Zakładam, że VMware mamy już zainstalowane.
Oczywiście podobny proces można wykonać na VirtualBoxie.
Najpierw ściągamy odpowiedni obraz:
https://www.home-assistant.io/hassio/installation/
W tym przypadku hassos_ova-5.10.vmdk.xz.
Pamiętamy, by wypakować obraz z paczki:

Uruchamiamy VMware (pewnie macie inną wersję, ale proces będzie podobny):

Wybieramy Create New, tryb Custom:

Hardware compatibility - wybrałem najnowszy:

Potem wybieramy "I will install the operating system later", gdyż nie będzie instalować normalnie systemu operacyjnego z nośnika, tylko podepniemy już gotowy obraz dysku VMDK z systemem.

Wybieramy rodzaj systemu. W zależności od pobranej wersji Other 32-bit lub Other 64-bit, ale raczej 64-bit. Tutaj też wybierałem wcześniej "Linux" i również działało.

Nazwa i lokacja maszyny wirtualnej. Polecam umieścić ją na dysku SSD. U mnie dysk C to SSD.

Ilość rdzeni procesora - zależy jaki mamy sprzęt hostujący VM, ale co najmniej 2 rdzenie warto dać.

Ilość pamięci RAM - jak wyżej, zależy ile możemy poświęcić, 1GB to minimum, polecam 2GB lub więcej.

Konfiguracja sieci - wybieramy 'bridged', by VM był podłączony bezpośrednio do naszego LANu.

Rodzaj SCSI Controller - LSI Logic (Recommended).

Rodzaj wirtualnego dysku - wybieramy SATA.

Wybór dysku - "Use an external virtual disk" - bo mamy już dysk gotowy w postaci VMDK.

Podajemy ścieżkę do pobranego VMDK:

Wykonujemy Convert (zamiana dysku na nowy format wspierany przez tą wersję VMware co mamy):

Teraz jeśli chcemy to możemy jeszcze wykonać kilka zmian jak klikniemy Customize, a jak nie to VM zostanie dodane:

VM gotowe - ale jeszcze wejdziemy w VM->Settings by coś zmienić:

Usuwamy Sound Card - jest zbędna. Zaznaczamy i klikamy Remove.

Jeśli rozmiar dysku tutaj (przy 'Hard Disk') jest nienaturalnie mały, np. 6GB, to możemy go powiększyć np. do 32 lub 64GB. U mnie od razu było 32GB.
W zakładce Options, wybieramy Advanced i włączamy 'Boot with EFI instead of BIOS' (w innych wersjach tu może zamiast pojedynczego checkboxa być pole wyboru radio button, ale i tak wybieramy wtedy EFI).

Pora uruchomić nasze VM:

System operacyjny startuje:

Logujemy się na root (bez hasła domyślnie, potem je warto zmienić). Gotowe - teraz jesteśmy w linii komend Home Assistant. Można też z niej wyjść wpisując 'login'.

Informacje sieciowe z konsoli Home Assistant
Normalnie wszystkie operacje dokonuje się tutaj poprzez panel WWW, ale warto wiedzieć np. jak sprawdzić działanie sieci przez konsolę Home Assistant, na przykład z VMware lub po zalogowaniu się poprzez UART lub SSH (jeśli mamy je zainstalowane).
Możliwe, że trzeba będzie wpisać wcześniej 'login' by dostać się do linii komend systemu:

Do wyświetlenia informacji o sieci służy komenda nmcli:

Można do tego też użyć ip a.
Oczywiście można też sprawdzić, czy możemy pingować sieć (np. ping elektroda.pl, albo ping 8.8.8.8, albo można się pobawić nslookup elektroda.pl):

Wszystko powinno działać.
Wirtualna maszyna - konfiguracja IP
Jeśli stawiamy Home Assistant na maszynie wirtualnej, to warto ustawić jej konfigurację IP w trybie Bridged.
Ten tryb sprawia, że maszyna wirtualna ma inne IP niż komputer na którym chodzi, lecz jest widoczna w sieci LAN.
Jeśli pominęliśmy to przy tworzeniu VM, to zmienia się to w Settings maszyny, w ustawianiach sieci, tutaj:

Poniżej zrzut ekranu jednocześnie z VMware, z konsoli Windowsa z konfiguracją IP oraz z przeglądarki która widzi stronę Home Assistant:

i oczywiście inne urządzenia w tej sieci LAN też widzą Home Assistant. Zrzut ekranu z telefonu:

Wirtualna maszyna - rozwiązanie problemów z IP
Jeśli korzystamy z VMware i używamy tryb 'Bridged' dla karty sieciowej, a mimo to nie mamy podłączenia do sieci - ping 8.8.8.8 wyświetla unreachable network, a nmcli pokazuje "connecting (getting IP configuration) to HassOS default" jak na zrzucie ekranu poniżej:

To musimy poprawić konfigurację sieci od VMware. Uruchamiamy Virtual Network Editor, można go znaleźć przez Start na Windowsie:

Tam włączamy tryb administratora (jak trzeba), znajdujemy VMnet0:

klikamy "Automatic Settings" i wyłączamy wszystkie adaptery oprócz tego, z którego korzystamy (u mnie to było WiFi, bo testowałem tylko jak to działa, ale polecam korzystać normalnie z przewodowego połączenia):

Klikamy Apply, zapisujemy zmiany, i po ponownym uruchomieniu VM powinniśmy już otrzymywać poprawnie IP. Sprawdzamy komendą nmcli:

Stałe IP - poprzez rezerwację MAC na ustawieniach routera
Ten krok ważny jest bez względu na to, gdzie instalujemy Home Assistant - dotyczy zarówno Raspberry, Banana, jak i VM.
Ważne jest, by Home Assistant miał stałe IP w sieci (choć można by też poradzić sobie tu DNSem i po nazwie hostu się do niego odnosić).
Na stałe IP jest kilka sposobów, można je ustawić na sztywno na samej maszynie (wyłączyć DHCP), a można również w DHCP na routerze ustawić tak, że dany MAC będzie mieć zawsze to samo IP. Normalnie DHCP nie daje gwarancji, że zawsze ten sam klient będzie mieć to samo IP.
Tutaj pokażę ten drugi sposób.
Wchodzimy w ustawienia routera przez jego panel WWW, logujemy się (trzeba znać hasło), zaglądamy do ustawień DHCP. Najpierw lista klientów:

Zapamiętujemy MAC naszego Home Assistant.
Potem wybieramy 'Rezerwacja adresów':

Dodajemy nowy wpis:

I jeśli trzeba to restartujemy router:

Od tego momentu klient o ustawionym przez nas MAC będzie mieć zawsze to jedno wybrane przez nas IP.
Pierwsze uruchomienie Home Assistant
Poprawnie skonfigurowany Home Assistant powinien być widoczny w naszej sieci lokalnej pod swoim adresem IP lub (jeśli ogarniemy DNS) nazwą domenową.
U mnie to było:
http://192.168.233.183:8123/
Otwieramy ten adres w przeglądarce.
(UWAGA: Jeśli się nie otwiera, a jesteśmy świeżo po instalacji, to warto poczekać jeszcze z kwadrans, bo w tle serwer może wciąż się uruchamiać)
Pora dokonać pierwszej konfiguracji:

Bez zewnętrznego IP/przekierowania portów ta strona nie będzie dostępna poza naszą siecią LAN, ale i tak warto ustawić sobie mocne hasło. W przyszłości udostępnienie naszego Home Assistant w internecie może się nam przydać.
Następnie musimy skonfigurować nasz Dom. Jest to ważny krok, gdyż Home Assistant jest w stanie nawet bazować akcje na podstawie pogody z internetu, więc lokacja powinna być poprawna:

Następnie Home Assistant podejmie próbę wykrycia urządzeń dostępnych w sieci. U mnie wykrył tylko router:

Potem pokazuje się formularz logowania (choć może też nas bezpośrednio przekierować do panelu). Używamy ustalonego wcześniej loginu i hasła:

W ten sposób docieramy do głównego panelu Home Assistant. Polecam się wstępnie z nim zapoznać, gdyż to tutaj będziemy dokonywać większości operacji i konfiguracji.

Home Assistant - dodajemy broker Mosquitto MQTT
Broker MQTT Mosquitto nie jest automatycznie zainstalowany wraz z Home Assistant. Trzeba zainstalować go osobno, poprzez Addon Store. Niezbędny jest on do połączenia się z urządzeniami poprzez MQTT, czyli np. do podpięcia urządzeń Tasmoty.
Opiszę tutaj krok po kroku jak go zainstalować.
Na głównej stronie WWW Home Assistant, wchodzimy do zakładki 'Supervisor', tutaj:

Jeśli jakimś cudem nie mamy tej zakładki, to znaczy, że zainstalowaliśmy okrojoną wersję Home Assistant bez Hass.IO. W tej sytuacji polecam zweryfikować co zrobiliśmy nie tak przy instalowaniu i zainstalować ponownie pełną wersję (supervised).
Z niej przechodzimy do Addon Store, tutaj:

W Addon Store mamy szeroki wybór różnorodnych dodatków do Home Assistant, które możemy za darmo dodać do naszego domu.

Wyszukujemy Mosquitto:

Klikamy na jego nazwę, a potem na Install:

Instalacja potrwa dosłownie chwilkę. Potem otrzymujemy taki widok (upewniamy się, czy start on boot jest włączone - czyli czy po prostu będzie właczać się z uruchomieniem systemu):

Klikamy Start:

Teraz trzeba skonfigurować Mosquitto. Do konfiguracji przechodzimy z głównego menu:

Następnie wybieramy "Integracje" (tam znajdziemy Mosquitto):

Przycisk "Konfiguruj":

Włączamy wykrywanie:

Potwierdzamy:

Podświetlenie od Mosquitto powinno zniknąć:

Ale klikamy ponownie "Konfiguruj":

Klikamy 'Re-configure', następnie wyświetlamy hasło MQTT i je kopiujemy:

Przykładowe dane:
Quote:
Pośrednik
core-mosquitto
Port
1883
Nazwa użytkownika
homeassistant
Hasło
AiQuahcheethoaL9joo7aa6aaLei9pho1eimee1sel8iewookaijiew3Iechah1n
Po 'zatwierdź':

Po zapisaniu:

Home Assistant - dodajemy urządzenie Tasmoty do MQTT
Teraz dodamy urządzenie Tasmoty (z ESP8266, z wgranym wsadem Tasmoty) do Home Assistant poprzez MQTT.
Tasmotę można łatwo wgrać na wiele różnych urządzeń od różnych producentów, SmartLife, Tuya, BlitzWolf, eWeLinkIt, itp.
Sposób wgrywania Tasmoty opisywałem kilkukrotnie.
Tutaj wgrywanie przez tuya-convert:
Włącznik SC3-01 SmartLife i wgrywanie firmware ESP przez WIFI (tuya-convert/OTA)
Tutaj przez UART (i lutowanie kabelków):
SmartLife switch - test, wnętrze i programowanie włącznika światła na WiFi
Urządzenie Tasmoty powinno być już podpięte do naszej sieci WiFi i powinniśmy znać jego IP.
Polecam też prześledzić proces stąd:
ESP8266 i Tasmota - sterowanie przekaźnikiem WiFi krok po kroku
(swoją drogą, w przypadku wielu urządzeń dałoby się je sparować z Home Assistant w ogóle bez zmiany firmware, ale o tym innym razem)
Więc, wchodzimy na stronę urządzenia:

Wciskamy 'Configuration'":

Wciskamy 'Configure MQTT':

Na ekranie powyżej podajemy informacje o brokerze MQTT z Home Assistant.


Dodatkowo polecam jeszcze włączyć w konsoli Tasmoty opcję SetOption19 1.

SetOption19 włącza tzw. MQTT discovery, czyli sposób odkrywania nowych urządzeń:

Następnie ponownie wykonujemy restart urządzenia (Restart z głównego menu).
Home Assistant - urządzenie Tasmoty przez MQTT
Urządzenie Tasmoty się restartuje. Odczekujemy chwilkę.
W Home Assistant, w logach (zakładka 'Dziennik') powinniśmy już widzieć, że coś się dzieje i Tasmota jest widoczna:

Możemy wtedy kliknąć na nazwę "Tasmota" i otworzy się takie okienko:

Potem też warto zmienić nazwę z "Tasmota" na coś konkretniejszego.
Polecam zwrócić uwagę, na zielono-czerwony pasek który pokazuje nam kiedy urządzenie było włączone, a kiedy wyłączone:

Po kliknięciu ikony 'trybika' można zmienić jej nazwę:

Można też zmienić jej np. obszar (gdzie się znajduje - kuchnia, sypialnia, itp), utworzyć własny obszar oraz zmienić ikonkę:

No i od tej pory będzie ona widoczna na naszym pulpicie:

Gotowe. Z tego pulpitu można już nią sterować - tutaj włączać i wyłączać światło.
Home Assistant - automatyzacje poprzez MQTT
W tym celu na stronie głównej klikamy przycisk Konfiguracja, a następnie w bloczku MQTT klikamy "1 urządzenie" (wyświetli to nam listę urządzeń):

Wyświetli to nam taką listę urządzeń (ale tym razem filtrowanych wedle MQTT):

Klikamy na interesujący nas wiersz (urządzenie) i otrzymujemy wszystkie możliwości jego konfiguracji w jednym miejscu:

Tutaj można robić automatyzacje, czyli skrypty typu "jak będzie w pokoju ciemno, to zapal lampkę" lub "gdy temperatura spadnie poniżej 18C, to włącz grzejnik", itp.
Tyle, że by zrobić sensowną automatyzację potrzebne będą nam dwa urządzenia - i zaraz też to przedstawię, ale to w następnym akapicie.
Zigbee2mqtt - Wirtualna maszyna - podłączenie Zigbee Dongle
Teraz zajmiemy się tematem Zigbee. Sięgamy po wspomniane wcześniej dongle oparte o CC2531 (choć można by się pokusić o lepsze CC2538 + CC2592, lepszy zasięg):
Jeśli korzystamy z VMware, to upewniamy się, czy jest ono podłączone do naszej maszyny wirtualnej, a nie do głównego komputera. Robi się to w VM -> Removable Devices -> tam znajdujemy CC2531 i upewniamy się, że jest zaznaczone "Connect". Jak na obrazku poniżej:

Obecność urządzenia USB można sprawdzić na Linuxie komendą lsusb, wyświetla ona listę id podłączonych urządzeń. Przed podłaczeniem:

Po podłączeniu:


Pojawiło się nowe urządzenie na liście, jego ID to 0451:16a8. Czy to ZigBee dongle? Oczywiście, że tak - krótkie wyszukiwanie to potwierdza:

W tym momencie mamy już pewność, że maszyna z Home Assistant widzi nasze CC2531 i możemy przejść do następnego etapu.
Zigbee2mqtt - instalacja poprzez Addony z Home Assistant
Najpierw musimy dać Home Assistantowi namiary na repozytorium wtyczki od zigbee2mqtt. Na głównej stronie klikamy na Supervisor:

Tam klikamy w 'Addon Store', a potem wchodzimy w ustawienia poprzez kliknięcie ikonki trzech kropek, skąd wybieramy przycisk 'Respositories':

Otworzy się okno dialogowe:

Zigbee2mqtt znajduje się na githubie, tutaj:
https://github.com/danielwelch/hassio-zigbee2mqtt
I ten adres tam wklejamy.
Po dodaniu powinny pojawić się nam nowe wpisy w Store:

Na tym etapie Store wie już o istnieniu takiego dodatku jak zigbee2mqtt, ale jeszcze go nie zainstalowaliśmy.
Klikamy na zigbee2mqtt z listy, instalujemy go tutaj:

Ta instalacja zajęła u mnie dłuższy moment.
Po instalacji trzeba jeszcze kliknąć 'Start':


Warto jeszcze włączyć "Show in sidebar", byśmy mogli wygodnie je znaleźć. Wtedy zigbee2mqtt pojawi się na pasku po lewej:

Zigbee2mqtt - konfiguracja Zigbee dongle
Teraz musimy określić jaki port szeregowy ma nasze dongle. Porty można podejrzeć w Supervisor -> System -> (trzy kropki) -> Hardware:

Na samym końcu mamy:

Po nazwach i ID widać, że to nasze dongle:
Quote:
/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0014D9A7B2-if00
attributes:
DEVLINKS: >-
/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0014D9A7B2-if00
/dev/serial/by-path/pci-0000:02:00.0-usb-0:2.2:1.0
DEVNAME: /dev/ttyACM0
DEVPATH: >-
/devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-2/2-2.2/2-2.2:1.0/tty/ttyACM0
ID_BUS: usb
ID_MODEL: TI_CC2531_USB_CDC
ID_MODEL_ENC: TI\x20CC2531\x20USB\x20CDC
ID_MODEL_ID: 16a8
ID_PATH: 'pci-0000:02:00.0-usb-0:2.2:1.0'
ID_PATH_TAG: pci-0000_02_00_0-usb-0_2_2_1_0
ID_REVISION: 0009
ID_SERIAL: Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0014D9A7B2
Zapamiętujemy /dev/ttyACM0. Musimy wpisać to w konfiguracji zigbee2mqtt. Wchodzimy w Supervisor, a potem w Zigbee2mqtt:

Następnie 'Configuration':

Tutaj musimy zmienić kilka rzeczy. Wszystko zaznaczone na obrazku:

- grupa mqtt, pola user i password
- grupa serial, pole port (na ten port co my mamy, możliwe że nie trzeba będzie nic zmieniać),
- grupa advanced pole network_key (pozmieniać cyfry tak byśmy mieli inne hasło niż domyślne)
- permit_join na true
Po zmianach:

Zapisujemy:

Potwierdzamy restart dodatku:

Zigbee2mqtt - podłączamy pierwsze urządzenie
Teraz potrzebne będzie nam coś co korzysta z Zigbee. Dla przykładu wybrałem czujnik ruchu z serii Aqara:


Więcej informacji na temat tego czujnika dam w osobnym temacie.
Wcisnąłem jego przycisk na obudowie (choć może nie było to konieczne):

i po chwili czujnik został wykryty w zakładce Konfiguracja -> Integracje -> MQTT:

Klikniemy w jego nazwę by wyświetlić więcej informacji:

Tu można utworzyć też automatyzacje (np. automatycznie włączać lampkę jak będzie ciemno w pokoju).
Jeśli włączyliśmy Zigbee2mqtt na sidebar, to widoczny on będzie również tutaj:

Po kliknięciu nazwy:

Można tu np. sprawdzić wartości zmiennych eksportowanych przez ten czujnik:

Troszkę tego jest, czujnik wyświetla swój poziom baterii, temperaturę, poziom oświetlenia a nawet określa, czy w pokoju wykrył ruch.
Home Assistant - automatyzacje (czyli scenariusze, skrypty)
Teraz mamy już dwa urządzenia - czujnik oświetlenia (nie tylko) i przekaźnik.
Pora je w jakiś sprytny sposób połączyć, czyli zrobić automatyzację.
Brak światła w pokoju będzie zapalać lampkę.
Otwieramy Konfiguracja -> Urządzenia -> (wybieramy i klikamy dla którego urządzenia robimy automatyzację).
Na przykład, dla czujnika Aqara mamy tam:

Przy 'Automatyzacje' klikamy ikonkę plusika. Pojawi nam się takie okienko:

tu wybieramy, co wywoła zdarzenie. Jak widać, wybór jest szeroki.
Wybierzmy, że zdarzenie wyzwoli zmiana poziomu oświetlenia. Po kliknięciu zostajemy przeniesieni do bardziej złożonego formularza:

Wpisujemy nazwę oraz opis (opcjonalny) akcji, a potem ustawiamy parametry zdarzenia które je wyzwoli.
Dla przykładu, ta akcja będzie wyzwalać się gdy wartość oświetlenia z czujnika spadnie poniżej 5 lux:

Poniżej dodać możemy warunki akcji (dodatkowe, nie trzeba ich ustawiać) oraz to, czym będzie skutkować akcja:

Akcje mogą być różnego typu, ale ja wybiorę typ "urządzenie":

Na liście "urządzenie" mamy dostępne w systemie urządzenia (jest też tam przekaźnik z Tasmotą który dodałem wcześniej):

Dla tego przekaźnika są dostępne trzy operacje - włączenie, wyłączenie i przełączenie (zmiana stanu na przeciwny). Wybrałem tutaj włączenie (gdy jest ciemno, lampka się włącza):

Potem trzeba jeszcze kliknąć 'Zapisz' i od tego czasu automatyzacja będzie działać.
W ten sam sposób zrobiłem drugą automatyzację, która gasi światło gdy jest jasno.
Wszystkie automatyzację mamy też w zakładce Konfiguracja -> Automatyzacje, tutaj:

Na filmiku poniżej przedstawiam ich działanie:
(to na filmiku to mój przekaźnik Tasmotowy na ESP8266 wersja DIY, ale równie dobrze może to być urządzenie Smart od Tuyi, czy tam Blitzwolfa, itp. itd)
Wszystko działa, zasłonięcie czujnika zapala lampkę. Warto będzie jeszcze zwiększyć częstotliwość wysyłania stanu przez czujnik Aqara przez MQTT by wszystko było bardziej responsywne, ale to opiszę w innym temacie.
Home Assistant - dodatkowa informacja - automatyzacje jako Yaml
Warto jeszcze wiedzieć, że edycja automatyzacji przez panel WWW Home Assistant pozwala też edytować je jako Yaml (tak są wewnętrznie zapisane).
Przełączamy to tutaj:

Tak wygląda to w trybie Yaml:

Kopia treści jako tekst:
Quote:
alias: wlacz_gdy_ciemno
description: ''
trigger:
- type: illuminance
platform: device
device_id: b3108200a6e6b23fba64eaa38a915edc
entity_id: sensor.0x00158d000586adf6_illuminance_lux
domain: sensor
below: 10
above: -10
condition: []
action:
- type: turn_on
device_id: a9c4515caaa84b116ae8fe99b6dac7e6
entity_id: switch.tasmota
domain: switch
mode: single
Home Assistant - godny uwagi plugin - File Editor
W Addon Store jest wiele mniej lub bardziej przydatnych pluginów. Jednym z nich jest File Editor. Pozwala on (jak sama nazwa wskazuje) wygodnie edytować pliki konfiguracji z poziomu panelu WWW.
https://github.com/home-assistant/addons/blob/master/configurator/README.md
Instalujemy go w podobny sposób jaki omawiałem wcześniej dla pluginu od MQTT. Czyli otwieramy Store, wpisujemy File Editor bądź Configurator:

Klikamy 'Install' by zainstalować:

A potem jeszcze 'Start':

Polecam jeszcze zaznaczyć 'Show in sidebar' by edytor był wygodnie dostępny na pasku z boku:

Od tego momentu w File Editor możemy przeglądać pliki, tworzyć je i edytować:


Dodatkowo ten edytor również sprawdza wstępnie poprawność zapisu skryptów i w razie czego informuje nas w której linii jest błąd:

Home Assistant - wsparcie Tuya bez zmiany firmware
Do Home Assistant można również dodać urządzenia Tuyi (tj. z aplikacji Tuya, Smart Life lub Jimvoo Smart) bezpośrednio. Nie trzeba wcale zmieniać im firmware na Tasmotę. Jest to dość wygodne, choć też ma swoje minusy, chociażby takie, że te urządzenia wtedy dalej będą widoczne też w chmurze producenta, a Home Assistant będzie dobierać się do nich poprzez nasze konto u ich producenta.
Proces ten szczegółowo opisany jest tutaj:
https://www.home-assistant.io/integrations/tuya/
Przedstawię teraz, jak to działa.
Musimy mieć jakieś urządzenie Tuya, konto Tuya (potwierdzone emailem) i dla demonstracji też przyda się aplikacja Tuya:

Zdjęcie powyżej przedstawia już sparowane urządzenie którym można sterować przez aplikację Tuyi.
W celu podpięcia naszego konta Tuya do Home Assistant otwieramy zakładkę Konfiguracja->Integracje, klikamy ikonę plusika:

Znajdujemy Tuya na liście:

Podajemy dane naszego konta Tuya oraz określamy czy chodzi nam konkretnie o aplikację Tuya, czy też może o Smart Life (też jest wspierana). Kod kraju dla Polski to 48.

Wybór aplikacji wygląda tak:

Jeśli podaliśmy poprawne dane, to po chwili Home Assistant powinien się zalogować na nasze konto:

Nasze konto Tuya pojawi się przy integracjach:

A wszystkie urządzenia z konta Tuya pojawią się na głównym pulpicie:

I to wszystko - teraz można sterować nimi jednocześnie z aplikacji Tuya i z naszego Home Assistant.
Demonstracja poniżej:
Telefon po prawej ma otwartą stronę Home Assistant, a telefon po lewej oryginalną aplikację Tuya. Sterowanie działa z obu telefonów.
(do przekaźnika nie ma podłączonej żarówki, ale widać że niebieska dioda LED się zapala, oraz widać że aplikacja Tuya reaguję na zmianę przez Home Assistant)
Home Assistant - dostęp do terminala przez SSH
Gotowy obraz systemu z Home Assistant nie zawiera wsparcia SSH, więc też wypada je zainstalować. Jeśli jednak instalowaliśmy Home Assistant jako dodatek to istniejącego już serwera, przez skrypt, (tak jak ja to zrobiłem na Banana Pi) to raczej SSH już mamy.
W każdym razie, instalacje SSH można wykonać przez Addon Store:

Klikamy 'Install':

Po zainstalowaniu (warto włączyć 'Show in sidebar'):

Potem możemy kliknąć 'Start', ale jeszcze wtedy nie zadziała. Odpowiedź na to czemu znajdziemy w zakładce tuż obok, w 'Logs':

Błąd to WARNING: SSH port is disabled. Prevent start of SSH server..
Z tego powodu musimy przejść do Configuration (zakładka obok) i ustawić tam w Network numer portu:

Tutaj trzeba też ustawić hasło logowania:

(inaczej otrzymamy w logach błąd 'FATAL: You need to setup a login!')
Tu macie do skopiowania:
Quote:
authorized_keys: []
password: test123
server:
tcp_forwarding: false
Klikamy 'Save' (po prawej, dwa razy to trzeba zrobić, raz dla portu a raz dla configu).
Restartujemy:

Próbujemy połączyć się poprzez Putty:

Sukces:

Logowanie (wedle ustalonych danych):

Gotowe, w ten sposób możemy dostać się do konsoli Home Assistant poprzez SSH.
Podsumowanie
Oczywiście to jest dopiero początek przygody z Home Assistant. Cały system oferuje bardzo dużo funkcjonalności i pluginów których nie da się opisać w jednym temacie, a długa lista wspieranych urządzeń jest naprawdę imponująca i pokazuje nam, że jednak da się zrobić Smart Home w oparciu o sprzęty od różnych producentów.
Sam trochę tych sprzętów zebrałem i wkrótce zamierzam przedstawić osobno konfigurację i wnętrza kilku z nich. Zobaczymy jak Home Assistant sobie poradzi.
W kolejce mam m. in.:
- seria Aqara na Zigbee (tu już jeden z niej czujnik przedstawiłem; ale mam też inne urządzenia z tej serii, np. czujnik otwarcia drzwi)
- czujniki dymu, wody, oświetlenia na WiFi producentów SmartHome/Tuya/eWeLinkIt
- odświeżacz powietrza AlfaWise P2
A na razie to tyle, choć ten temat będzie jeszcze aktualizowany.
Czy macie jakieś doświadczenia z Home Assistant, co sadzicie o tej platformie? Zapraszam do dyskusji.
Cool? Ranking DIY