piątek, 24 maja 2019

Home Assistant - zaczynamy! Instalacja za pomocą Hass.io

Jak to mówił w niezapomnianej roli Wacław Kowalski: 'Nadejszła wiekopomna chwila...' żeby spróbować czegoś innego niż Domoticz.

Nie jest to może najmądrzejszy krok, bo jeszcze w Domoticz mam co robić, ale:
- jedno drugiemu nie przeszkadza
- coś tam jednak w Domoticz już wydłubałem, działa, sprawdza się dobrze, chcę spróbować jak można to zrobić w innym systemie
- leżała mi jedna wolna (dosłownie i w przenośni) Malina, na której to wszystko postawiłem

Możliwości instalacji Home Assistant jest kilka.

Jedną z nich, najprostszą dla początkującego (a tak mi się przynajmniej wydaje) jest użycie Hass.io. Jak na mój stan wiedzy jest to obraz Raspbian z zainstalowanym Docker'em i w nim znajduje się komponent Home Assistant.

Dostępny pod adresem https://www.home-assistant.io/hassio/installation/, zawiera obrazy dla różnych SBC. Ja (niestety!) mam w domu do testów tylko Raspberry Pi 1 B. Wolne to jak diabli, ale działa. Mam pewien pomysł w głowie, ale muszę do niego dorosnąć ;)


Ściągnąłem, użyłem balenaEtcher, nagrałem na kartę, włożyłem w Malinę, uruchomiłem - uruchomił się. Komunikat nie jest bezpodstawny. Wydaje mi się, że na tej mojej wolnej RPi1 potrzebował około 30 minut (podłączony kablem sieciowym) aby dokończyć instalację. W tym czasie ściąga najnowszą wersję i konfiguruje środowisko.


Jeżeli Wasz router obsługuje mDNS (multicast DNS) możecie od razu wejść na adres http://hassio.local:8123 i poczekać na odświeżenie strony. Jeżeli nie - musicie znaleźć adres IP Waszego SBC jakimś skanerem adresów IP.


Gdy instalacja zostanie zakończona zostaniecie poproszeni o stworzenie pierwszego i głównego użytkownika systemu oraz podanie hasła do jego konta.


I przechodzicie do dodawania elementów. Tutaj zwanych Integracjami.


W sumie nic tutaj nie dodawałem, przeszedłem po prostu dalej, czyli wcisnąłem Finish.

Co mnie mile zdziwiło (chociaż czytałem o tym wcześniej w dokumentacji), Home Assistant wykrył mi od razu dostępne w domu urządzenia. Yeelight, lokalizacja, Xiaomi Mi Box, wzmacniacz Denon i jego HEOS.

Kolejne miłe zaskoczenie - interface Lovelace (skojarzenie W OGÓLE nie uzasadnione - bardzo proszę się nie dziwić przy wyszukiwaniu go w Google ;) jest już zainstalowany oraz skonfigurowany.

Słowem wyjaśnienia - śledziłem do tej pory postępy Home Assistant wyłącznie pobieżnie. Wiedziałem, że prężnie się rozwija, jeden z dobrych internetowych znajomych będących głęboko w temacie (Maciej - pozdrawiam) polecał go gorąco. Dlatego wiele rzeczy jest dla mnie albo zdziwieniem, że 'tego nie ma', albo 'o, to jednak jest, wbrew temu co czytałem'. Wydaje MI się, że Lovelace dość niedawno wszedł do standardu, pozwolił na o wiele sprawniejsze uruchomienie i skonfigurowanie Home Assistant. Do tej pory HA kojarzył mi się z tekstem 'Bariera wejścia jest dość duża, bez znajomości YAML nie podchodź'. Nie boję się skryptów, tworzenia konfiguracji w tekście (pozdrawiam pamiętających tworzenie kolorowych i interaktywnych Autoexec.bat i Config.sys - device=c:\dos\himem.sys 4EVA RULZ!), ale skoro Domoticz działa, to po co się pakować w kłopoty ;) Dobrze, że sam siebie jednak nie posłuchałem! WARTO poznać Home Assistant, bo podejście do domowej automatyki jest w nim zgoła inne niż w Domoticz. A do tego - jakże miło nauczyć się czegoś nowego.

Wracając jednak do tematu...


Można od razu zacząć sprawdzać możliwości, opcje, itp. Fajne, nie powiem! Bardzo spodobała mi się opcja Text to speak na Xiaomi Mi Box. Dzieci były zdziwione gdy kazałem im zejść po jedzenie :D


Rozpoczęło się dalsze szukanie nowych elementów systemu, poniżej historia zdarzeń powiązana z elementami naszego systemu.


Podłączenie do wzmacniacza i systemu Heos.


Poniżej BARDZO ważna zakładka - Configuration. To tutaj możecie się dostać do wszystkich Waszych:
- Integrations - czyli na przykład połączenie z HEOS, MQTT, PS4
- Users - czyli użytkownicy naszego systemu
- General - jedna z najważniejszych funkcji dla początkujących w HA - sprawdzenie poprawności pliku configuration.yaml. Z tego co czytałem (i sam się w ostatnich dniach przekonałem) niezmiernie ważna jest poprawna edycja tego pliku. Wcięcia o odpowiednich długościach, tabulacje, itp. Na szczęście w tej właśnie sekcji jest Configuration Validation, którą powinno się wykonać po każdej zmianie w pliku. Szczególnie na początku, gdy jeszcze 'błądzimy we mgle'. Widać, że system jest przemyślany - na tej samej stronie, poniżej, znajduje się przeładowanie konfiguracji i serwera Home Assistant. Nie przeładujecie jej, jeżeli w konfiguracji jest błąd. Zapobiega to 'wywaleniu' systemu jeżeli coś źle zrobiliśmy.
- Persons - osoby, które mają zostać odzwierciedlone w systemie. Na przykład do sprawdzania obecności
- Entity Registry - lista naszych czujników, itp.
- Area Registry - lista pomieszczeń
- Automation - automatyka
- Script - skrypty
- Customization - możliwość zmiany

Ostatnie pięć wymaga osobnych postów, to po pierwsze. A po drugie - sam ich jeszcze do końca nie rozumiem, więc nie będę cwaniakował :D





Tutaj zakładka z parametrami naszego systemu:


Z tego co widzę system backupów jest realizowany na zasadzie snapshotów aktualnego statusu systemu. Ciekawostka, trzeba doczytać.


Jak widać poniżej - nie mamy żadnych dodatków jeszcze skonfigurowanych. Pora to nadrobić!


Na początku starałem się dodać komponenty z oficjalnego Add-On store, bo po prostu nie wiedziałem jak zrobić to w inny sposób. Samba share, SSH. Niby się zainstalowały, ale cóż z tego, kiedy nie wiedziałem jak je uruchomić...






Bo trzeba umieć czytać dokumentację!



Każdy komponent potrzebuje chociaż wstępnej deklaracji konfiguracji w pliku konfiguracyjnym. Któren to znajduje się w sekcji Hass.io. Oczywiście, jeżeli go wcześniej zainstalowaliście :)


Wybieramy ikonę folderu,


Oraz plik konfiguracyjny


I tam na przykład wstawiacie sekcję speedtestdotnet, jak opisane na stronie: https://www.home-assistant.io/components/speedtestdotnet/. Miałem trochę barierę mentalną związaną z każdym Raspbian, Windows, Domoticz. 

Jak to się, do cholery, instaluje? Otóż, proszę Państwa, wcale. Podaje nazwę, system sam dba, aby dodać kolejne Entity. No, na mój stan wiedzy na ten moment ;)


I po sprawie. Restart jak wcześniej sugerowałem:


I po chwili mamy wynik. Co prawda trzeba go wstawić na stronę, ale o tym już w kolejnym wpisie. Zwróćcie również uwagę na inne komponenty - bez problemu mogę sterować amplitunerem oraz jak widać monitorowanie parametrów systemu jest dostępne bez problemu.

A komponentów jest... Bagatela, prawie 1400!


Aplikacja na telefon również jest dostępna i przedstawia się następująco:



Zaczyna się nowa, arcyciekawa przygoda! Opis dość chaotyczny, pisany na gorąco, bez przemyślenia jeszcze, ale to co zastałem jest po prostu niesamowite! Jakże inne podejście niż w Domoticz! Widzę, że czekają mnie miesiące nauki, ale tym bardziej to motywuje! Modułowa budowa programu, natychmiastowa reakcja, bardzo częste aktualizacje, separacja dodatków od 'core' systemu - to jest coś, co wróży stabilność i bezproblemowe działanie.

Dobranoc, pora ochłonąć przy muzyce Rotting Christ i szklaneczce whisky, skoro rodzina śpi :D

piątek, 17 maja 2019

Backup 3-2-1 w moim domowym NAS

Dzień dobry wszystkim! Sezon biegowy się zaczął, czasu na pisanie mniej...

Kontynuując zapewnienie bezpieczeństwa naszych danych w domu skonfigurowałem sobie połączenia SSH pomiędzy różnymi maszynami i chciałem dodać skrypty kopiujące do CRON. W pewnym momencie jednak doszło do mnie, że robię to zupełnie wbrew logice. Skoro mam OpenMediaVault, to głupotą byłoby nie wykorzystywać jego mechanizmów. A do tego czego potrzebuję idealnie nadaje się rsync i jego obsługa wbudowana w OMV.

Staram się działać zgodnie z zalecanym 3-2-1:
- przynajmniej trzy kopie ważnych danych
- przechowywać je przynajmniej na dwóch różnych nośnikach
- przynajmniej jedna kopia poza domem

U mnie to:
- kopia zdjęć na trzech egzemplarzach danych
- jedna kopia na NAS, druga na zewnętrznym dysku z automatyczną synchronizacją
- kopia w Google Drive

Efekt jest następujący:



Konfiguracja jak poniżej. Wybieramy:
- Typ. Local lub Remote. Czyli z lokalnej partycji na inną, lub zdalna kopia.
- Mode. Push lub Pull. NA INNY serwer/folder lub Z INNEGO folderu na nasz NAS
- wskazujemy folder źródłowy
- później docelowy
- ewentualne potrzebne hasła
- datę uruchomienia. Jak widać - można oczywiście cyklicznie.


Poniżej widać w logach uruchomiony proces.


Zrobiłem to w przypadku kilku moich innych maszyn: RetroPie, Domoticz oraz oczywiście częściowy backup danych z NAS - tutaj szczególnie zdjęcia. RetroPie nie działa 24h, dlatego po prostu gdy go włączam to robię sobie kopię uruchamiając zdefiniowany skrypt.


Śpię spokojniej ;)