Inteligentny Dom #1 - Instalacja Home Assistant

in #electronics7 years ago

... 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)

Sort:  

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

```
Kod
```

Żeby jeszcze był jakiś sposób na kolorowanie składni. Mała rzecz, a tak by cieszyła.

Dzięki. Spróbuję.