Inteligentny Dom #1 - Instalacja Home Assistant
... czyli jak odpalić HA na oDroid XU4 (sprawdzone też na BananaPI).
Może jest to utrudnianie sobie życia ale jakoś tak mam. Nie wybrałem raspberry-pi ponieważ większość by wybrała. Głupie. Posiadam za to na stanie oDroid XU4 i inne (np. bananapi).
oDroid XU4 jak na tą chwilę dysponuje dość dużymi możliwościami:
- ośmio rdzeniowy procesor Samsung Exynos5422 z grafiką Mali-T628
- 2 GB pamięci RAM
- HDMI, eMMC, uSD, 2x USB 3.0, 1x USB 2.0
- karta sieciowa 10/100/1000Mbps
to najważniejsze parametry płytki o wymiarach 82 x 58 x 22 mm.
1. Skompletowanie urządzenia.
Zatem mój komplet zawiera:
- oDroid XU4 z obudową
- kartę eMMC 16GB
- Odpowiedni zasilacz 5V/4A
Jest to zestaw mocno przesadzony jak na obsługę tylko HA, ale będzie miał też inne zadania w przyszłości. Plusem jest też to, że wszystkie operacje instalacji idą sprawniej.
2. Instalacja systemu.
Zanim poskładamy ten zestaw warto nagrać obraz systemu na kartę. Można startować też z karty SD, tak robiłem w przypadku BananaPi, ale teraz użyję eMMC.
Jako system wybrałem dietPi, jest to fajnie okrojony i zoptymalizowany linux który przypadł mi do gustu. Z działu download pobieram odpowiednią wersję obrazu na dysk a następnie za pomocą Win32DiskImager wgrywam ją na kartę.
3.Pierwsze uruchomienie.
Po wgraniu obrazu na kartę składamy wszystkie elementy układanki jak na załączonych zdjęciach, pamiętając o przełączniku w przypadku oDroid'a. Należy go ustawić na boot eMMC.
Podłączamy niezbędne minimum kabelków: ethernet oraz zasilanie. Po podłączeniu zasilania system startuje...
4.Logowanie do systemu.
Aby móc się kontaktować z systemem możemy podłączyć dodatkowo monitor przez HDMI oraz klawiaturę na USB. Dla mnie wygodniej jest podłączyć się przez SSH, docelowo urządzenie będzie schowane wysoko na półce i ciężko było by tam siedzieć z monitorem.
Na co dzień korzystam z laptopa w Windowsem 10, do celu połączenia się przez SSH używam chyba najprostszego klienta SSH którym jest putty.
Do połączenia będziemy potrzebować trzech informacji:
- adresu IP który posiada nasz serwer (nasz oDroid z systemem dietPi)
- loginu (standardowy to root)
- hasła (standardowe to dietpi)
Przy świeżej jak nasza instalacji znamy login i hasło, brak nam adresu IP. Zakładam, że większość w Was posiada sieć domową z jakimś routerem, w celu sprawdzenia adresu IP trzeba zalogować się na router i sprawdzić jaki adres został przydzielony do oDroida. Dla tych którzy mają podłączony monitor adres będzie widoczny.
Możemy przy tej okazji na routerze dodać do DHCP stały IP przypisany do tego MAC adresu naszego urządzenia, aby w przyszłości nie uległ on zmianie.
Wracając do pierwszego logowania. Uruchamiamy klienta putty, wpisujemy w pole 'Host Name (or IP address)' adres IP serwera i klikamy przycisk Open. W nowym oknie terminala wpisujemy login a następnie hasło, zatwierdzając enterem. Po pierwszym uruchomieniu system automatycznie przeprowadzi aktualizację i się ponownie uruchomi. Warto zadbać aby miał na routerze udostępniony internet, ale zarazem nie było do niego póki co dostępu z zewnętrznego adresu, pozwoli to uniknąć ataków.
5.Instalacja właściwa Home Assistant
Po restarcie ponownie logujemy się przez putty. W pierwszej kolejności musimy zainstalować pakiety niezbędne do dalszej instalacji HA. Profilaktycznie przed instalacją pakietów sprawdzam czy są może aktualizacje poleceniami:
apt-get update
następnie
apt-get -y upgrade
Pakiety instalujemy poleceniem:
apt-get -y install build-essential checkinstall cython3 git htop libgcrypt11-dev libgnutls28-dev libudev-dev libyaml-dev python3-dev python3-pip python3-setuptools python3-sphinx
i restartujemy serwer poprzez:
reboot
Dalsza instalacja HA powodowała błąd i trzeba na tym etapie zaktualizować cython.
Umówmy się.. pogrubiona kursywa to polecenia które wklepujemy do konsoli, jedno polecenie w jednej linii i wiadomo należy zatwierdzić je enterem.
pip3 install --upgrade cython
I przechodzimy do sedna, instalujemy HA.
pip3 install homeassistant
Tworzymy katalog.
mkdir /opt/homeassistant
Teraz musimy utworzyć plik hass.service aby system mógł uruchamiać HA automatycznie po restarcie.
touch /etc/systemd/system/hass.service
Trzeba teraz wpisać jego zawartość, co wymaga edytora. Jest wiele edytorów, ale ja się przyzwyczaiłem do kombajnu jakim jest Midnight Commander, zawierający przy okazji edytor. Zainstalujmy go:
apt-get -y install mc
Midnight Comandera uruchamiamy poleceniem mc, następnie przechodzimy do katalogu /etc/systemd/system i tam na liście plików widzimy hass.service. Nastawiany na niego kursor i przyciskiem F4 wchodzimy w edycję, wpisujemy zawartość:
[Unit]
Description=Home Assistant (hass) Daemon
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/hass -v -c /opt/homeassistant --daemon --pid-file /var/run/hass.pid
PIDFile=/var/run/hass.pid
[Install]
WantedBy=multi-user.target
Zapisujemy plik (F2) i wychodzimy z edytora (F10).
Zmieniamy właściwości pliku, przeładowujemy daemona HA i dodajemy HA do autostartu.
chmod +x /etc/systemd/system/hass.service && systemctl daemon-reload
systemctl start hass.service && sleep 5 && systemctl stop hass.service
systemctl enable hass.service
Czyścimy system po instalacji.
rm -rf /opt/libmicrohttpd*
Restartujemy całość.
systemctl reboot
GOTOWE. System powinien wystartować bez błędów z już uruchomionym Home Assistant'em.
Aby to sprawdzić w przeglądarce na komputerze wpisujemy:
http://ADRES_IP_NASZEGO_SERWERA:8123 (w moim przypadku było to http://192.168.2.2:8123)
(screen przedstawia HA po częściowej konfiguracji)
Fajny projekt.
Co służy jako urządzenia peryferyjne? ESP?
U mnie akurat ESP oraz Arduino, 90% po MQTT. Jak tylko będzie chwila czasu to będę opisywał sukcesywnie wszystkie części oraz konfigurację. Staram się to robić bardzo łopatologicznie aby każdy mógł się pobawić.
Fajnie wygląda, ale jak widzę płytkę to już wiem, że to nie dla mnie
Na szczęście nie wymaga to składanie wielkich umiejętności. Klik klik i już działa, reszta to program.
Lutownicą pobawimy się w kolejnych postach. :)
Na przyszłość
```
Kod
```
Żeby jeszcze był jakiś sposób na kolorowanie składni. Mała rzecz, a tak by cieszyła.
Dzięki. Spróbuję.