-> Go to english version of this post / Przejdź do angielskiej wersji tego wpisu
W poprzednim wpisie pokazałem jak od zera zrobić smart oświetlenie w swoim domu w oparciu o produkty firmy Shelly. W moim przypadku był to pierwszy krok w tworzeniu systemu „inteligentnego” domu, w którym mam plan zintegrować znacznie więcej rozwiązań pozwalający na automatyzację różnych aspektów. Jednakże, aby to wszystko miało sens potrzebny jest mózg systemu, czyli serwer, który będzie pozwalał na zarządzanie tymi wszystkimi smart urządzeniami z jednego miejsca. Na rynku jest wiele rozwiązań tego typu, ale dla mnie wybór był oczywisty. Postawiłem na oprogramowanie o nazwie Home Assistant. Dlaczego? Oto moje argumenty:
- jest to oprogramowanie otwartoźródłowe (open source),
- może działać w zupełności offline (no może pomijając aktualizację) i zarządzać urządzeniami odciętymi od Internetu, tj. bez konieczności narażania swojej sieci domowej poprzez wpuszczanie urządzeń, które łączą się z podejrzanymi domenami zewnętrznymi,
- jest darmowe,
- do tego bardzo popularne, więc nie ma problemu ze znalezieniem poradników dotyczących dosłownie wszystkiego,
- na dodatek działa praktycznie na każdym urządzeniu,
- i co więcej współpracuje z naprawdę ogromną bazą urządzeń, które wspierają HA natywnie lub poprzez dodatki pisane przez entuzjastów,
- nie zamyka nas w żadnym ekosystemie, co sprawia, iż nie jesteśmy uwiązani do urządzeń jednej marki.
Czego chcieć więcej?
Sprzęt
Tak jak napisałem wyżej, Home Assistant może zostać uruchomiony na naprawdę wielu różnych urządzeniach. Może to być stary komputer PC, kontener Dockera czy ten maszyna wirtualna uruchomiona na jakimś większym serwerze lub po prostu minikomputer pokroju Raspberry Pi czy Odroid. Ja postanowiłem swój serwer domowy uruchomić na płytce Odroid C4, bo akurat taką już wcześniej zakupiłem i okazało się, iż na ten moment jest to rekomendowany hardware. Na pewno nie jest to przyszłościowe rozwiązanie, bo wraz z czasem będą zwiększały się wymagania systemu HA jak i moja domowa sieć urządzeń smart będzie się rozrastać i wymagać większej mocy obliczeniowej do sprawnego zarządzania nią. Natomiast uważam, że na początek w zupełności wystarczy, a z czasem sprawię sobie jakiś mocniejszy serwer. Przeniesienie konfiguracji z jednego urządzenia na drugie to dosłownie kilka kliknięć, więc mogę to zrobić w każdym momencie.
Niech nie będzie żadnym wyznacznikiem to, iż wybrałem akurat Odroid C4, bo może to być równie dobrze Raspberry Pi 4 lub 5. Myślę jednak, iż powinno się brać pod uwagę tylko wersje z 4GB RAM (lub więcej).
Nie możemy też zapomnieć o odpowiednim nośniku w postaci karty microSD. Istotne, aby wybrać kartę z oznaczeniem AC2, bo jest to rozwiązanie dedykowane do zapisu i odczytu dużej ilości małych plików i przechowywania aplikacji.
Instalacja
Osobiście uważam, iż tak istotna rzecz jak domowy serwer smart home powinien być zupełnie niezależnym systemem działającym na urządzeniu dedykowanym tylko do tego. Dlatego właśnie taki wariant będę omawiał. o ile komuś to nie odpowiada i chciałby uruchomić HA np. na maszynie wirtualnej jakiegoś większego serwera to wierzę, iż posiadając taki serwer jest na tyle zaawansowanym użytkownikiem, iż da sobie radę z instalacją HA bez mojego poradnika.
Polecam rozpocząć od odwiedzenia strony home-assistant.io/installation, na której można zorientować się jakie są możliwości.
Wszystkie obrazy systemu Home Assistant OS są dostępne na GitHub pod adresem github.com/home-assistant/operating-system/releases. Od razu uczulę, aby pominąć wszystkie wersje otagowane Pre-release i znaleźć tą podpisaną Latest. Dla ułatwienia podam specjalny link, który od razu powinien przenieść do najnowszej wersji. Gdy namierzymy już najnowszą wersję HAOS to musimy znaleźć obraz odpowiedni dla naszego urządzenia. Na moment pisania tego wpisu najnowsza wersja HAOS to 14.1. Wybieram zatem do pobrania plik o nazwie:
haos_odroid-c4-14.1.img.xz 276 MB Dec 19, 2024Jeżeli masz inny sprzęt niż ja to nie przejmuj się i na spokojnie przejrzyj listę dostępnych obrazów. Jak widzisz są tam dedykowane obrazy w wielu różnych wariantach:
- generic aarch64 – ogólny obraz dla urządzeń opartych o architekturę ARM, które nie mają dedykowanego obrazu,
- generic x86 – ogólny obraz dla urządzeń opartych o architekturę AMD, które nie mają dedykowanego obrazu,
- green – dla posiadaczy gotowego urządzenia Home Assistant Green, który można kupić od twórców HA,
- khadas – dla posiadaczy płytek Khadas VIM3,
- odroid – dla posiadaczy płytek Odroid C2, C4, M1, M1S, N2 i XU4,
- ova – obraz dedykowany do uruchamiania jako maszyna wirtualna,
- rpi – dla posiadaczy płytek Raspberry Pi 3, 4 i 5,
- tinker – dla posiadaczy płytek Tinker (ASUS),
- yellow – dla posiadaczy gotowego urządzenia Home Assistant Yellow, który można kupić od twórców HA.
Bez względu na to co wybierzemy interesuje nas plik z rozszerzeniem „.img.xz”. Jest to archiwum, które należy rozpakować np. przy pomocy programu 7-zip.
Mając już obraz i kartę pamięci przyszedł czas na stworzenie bootowalnego nośnika. Jak zwykle zarekomenduję użycie do tego narzędzia balenaEther. Cały proces jest szalenie prosty i zdaje się, iż już go kiedyś opisywałem na tym blogu. Niemniej jednak dla przypomnienia, na szybko:
- Flash from file – wybieramy ściągnięty obraz,
- Select target – wybieramy kartę SD,
- Flash! – przycisk, który uruchamia proces.
Cały proces podzielony jest na dwa etapy:
- Flashing – część adekwatna tworzenia bootowalnego nośnika,
- Validating – sprawdzenie jego integralności i ogólnej poprawności wykonania procesu.
Karta gotowa! Można ją wypiąć z czytnika i wsunąć do odpowiedniego portu w urządzeniu docelowym, które już za moment stanie się naszym domowym serwerem smart home. Gdy urządzenie jest gotowe podpinamy je do kabla sieciowego i zasilania.
Pierwsze uruchomienie
Zaczynamy od odpalenia przeglądarki i wpisania w pasek adresu http://homeassistant.local:8123 lub ewentualnie możemy skorzystać z adresu:
http://X.X.X.X:8123gdzie X.X.X.X to adres naszego nowego serwera w sieci lokalnej. Jak widzisz Home Assistant pracuje na wystawionym porcie 8123, zapamiętajmy to, bo później się to przyda. Ekran, który nas przywita powinien wyglądać mniej więcej tak:
Jest to pierwszy krok w procesie konfiguracji nowej instancji HA, w którym pobierany jest Home Assistant Core. Niestety długość trwania tego etapu zależy od specyfikacji naszego sprzętu i przede wszystkim jak szybki mamy Internet, bo do pobrania jest przynajmniej jakieś 700 MB. Gdy zostanie już zakończony to ukaże się strona powitalna, na której możemy zdecydować czy chcemy utworzyć system od zera, czy też może mamy kopię zapasową, z której chcielibyśmy go przywrócić. My dopiero zaczynamy przygodę z HA, więc wybieramy Create my smart home.
Zaczynamy oczywiście od utworzenia konta administratora. Musimy poddać nazwę, login i dwa razy hasło. Gdy wszystko się zgadza potwierdzamy przyciskiem Create account.
W następnym kroku zostaniemy poproszeni o wskazanie lokalizacji swojego domu. Możesz się zastanawia „ale po co?”, dlatego spieszę z wyjaśnieniem, iż jest to istotna informacja w kontekście:
- prognozy pogody, którą można sobie wyświetlić na stronie głównym panelu sterowania,
- godziny świtu i zmierzchu, co jest przydatne np. przy sterowaniu oświetleniem zewnętrznym,
- miliona innych automatyzacji, które można stworzyć np. w oparciu o warunek pokroju „gdy jestem poza domem” itp.
W tym kroku ustawiamy także system jednostek jaki chcemy używać (metryczny) i walutę. Zaraz zaraz, walutę…? Tak, chodzi o to, iż HA ma funkcje, które przeliczają nam np. zużycie prądu i inne tego typu dane na realne kwoty.
Na koniec jeszcze prośba o udostępnienie danych diagnostycznych. Oczywiście nie ma obowiązku zgadzania się na przekazywanie czegokolwiek.
Podstawowa konfiguracja zakończona. W ostatnim oknie jakie zostanie nam wyświetlona Home Assistant wylistuje nam kompatybilne urządzenia, które odnalazł w sieci i może się z nimi zintegrować. Oczywiście o ile takie w ogóle w danym momencie istnieją w sieci. Na tym etapie nie ma potrzeby się tym zajmować, bo można to zrobić na spokojnie później, więc naciskamy przycisk Finish.
Podstawowa konfiguracja
Home Assistant ma naprawdę sporo funkcji, więc omówienie wszystkich w ramach jednego wpisu jest raczej niemożliwe. Z uwagi na to skupię się tylko na dwóch rzeczach – aktualizacjach i dodawaniu nowych urządzeń. Pozostałe funkcje będą przeze mnie omawiane przy okazji kolejnych wpisów, w których na pewno wielokrotnie będę wracał do HA.
Aktualizacje
Home Assistant OS sam ogarnia sobie czy istnieją nowe aktualizacje czy nie i informuje nas o tym. Mowa tutaj nie tylko o aktualizacjach samego systemu, ale także poszczególnych urządzeń o ile ta funkcja jest dla nich obsługiwana. o ile HAOS wykryje, iż jest nowa aktualizacja to informacja o tym pojawi się w dwóch miejscach. Pierwsze miejsce to sam szczyt Ustawień, gdzie wyświetlona zostanie lista komponentów, które można zaktualizować. Drugie miejsce jest nieco głębiej, bo aby się tam dostać trzeba pokonać następującą ścieżkę – Ustawienia -> System -> Aktualizacje.
Jeżeli chodzi o sam proces aktualizacji to w zasadzie konieczne jest tylko naciśnięcie przycisku Aktualizuj i odrobina cierpliwości. Oczywiście to ile tej cierpliwości musi być zależy od mocy sprzętu i prędkości połączenia internetowego.
Dodawanie nowych urządzeń
Home Assistant co jakiś czas skanuje sieć lokalną w poszukiwaniu nowych urządzeń. Gdy wykryje takowe to wysyła Powiadomienie, w którym daje skrót do dodania go do swojego systemu smart home.
Niestety nie zawsze to działa lub nie działa od razu po połączeniu nowego urządzenia, więc pokażę jak to zrobić od początku zgodnie ze sztuką, tj. w taki sposób, który zadziała zawsze. Przechodzimy do listy wszystkich urządzeń podłączonych do naszego Home Assistant. Dostępna jest ona w Ustawienia -> Urządzenia oraz usługi -> zakładka (na górze) Urządzenia. W prawym dolnym rogu znajduje się przycisk Dodaj urządzenie. Pojawi nam się okienko, w którym musimy wyszukać nowe urządzenie po nazwie marki. W prezentowanym przypadku wyszukuję frazę „shelly”.
Od tego momentu są dwie możliwości. o ile HA da radę sam odkryć nowe urządzenie to od razu pojawi się propozycja, którą wystarczy jedynie wybrać z listy i potwierdzić swój wybór.
Jeżeli HA jednak nie wykryje nowego urządzenia to zostaniemy poproszeni o wskazanie jego adresu IP i portu, pod którym znajduje się interfejs do jego zarządzania. Po podaniu tych danych naciskamy przycisk Zatwierdź.
Jeżeli wszystko przebiegło pomyślnie to dostaniemy potwierdzenie, iż utworzono konfigurację dla nowego urządzenia. Ostatni krok to wskazanie do jakiego obszaru ma ono zostać przypisane. Obszary są w pełni definiowane przez użytkownika. Niektórzy dzielą cały system na pokoje, czyli np. na obszary salon, kuchnia, sypialnia itd. Ja podszedłem do tematu trochę inaczej i dla mnie wszystkie moduły przekaźnikowe Shelly są w obszarze Oświetlenie, bo chcę nimi zarządzać jako jedną grupą. Kończymy cały proces naciśnięciem przycisku Zakończ.
Gotowe! Nowe urządzenie dodane.
Podsumowanie
Jak pewnie już udało Ci się zauważyć Home Assistant to naprawdę potężne narzędzie. Do tego ma wiele zalet, z których najważniejszą dla mnie jesy nakierowanie na prywatność i bezpieczeństwo danych użytkownika. Nie ma drugiego takiego produktu na rynku, a przynajmniej ja nic nie wiem o istnieniu takiego.