Docker i Domoticz – pierwsze kroki.

Na Raspberry Pi przerobiłem już kilka systemów: Domoticza, Homeassistant, OpenHub, Volumio i pewnie jeszcze kilka innych pomniejszych. Pomimo tego, iż mam 5 malinek, do różnych testów jest to zdecydowanie za mało. Jako, iż Domoticz jest moim tzw. systemem produkcyjnym i zależy mi na jego stabilności,  pokusa ciągłej zmiany i ulepszania systemu jest tak wielka, że szukałem rozwiązania, które zapewni mi możliwość eksperymentowania i  jeżeli się sprawdzi uwolni mnie od nieszczęścia padniętej karty SD. Oczywiście jest możliwość ograniczenia strat ( o regularnych kopiach nawet nie wspominam ) poprzez instalacje systemu na pamięci USB, o czym pisałem w poście Instalacaja DOMOTICZ – na USB . Z Raspberry Pi 3 B+ sprawa jest jeszcze łatwiejsza ponieważ ma juz możliwość bootowania bezpośrednio z USB, jednakże z przyczyn przytoczonych powyżej szukałem innego rozwiązania i znalazłem DOCKER.

Próbowałem iść w instalację maszyn wirtualnych na VirtualBox, ale nie mam tak mocnego sprzętu aby pociągnął kilkanaście na raz, a takie aktualnie mam potrzeby. Docker rozwiązuje ten problem. Pozwala umieścić program oraz jego zależności w lekkim, przenośnym, wirtualnym kontenerze, który można uruchomić na prawie każdym serwerze z systemem Linux. Nie będę rozpisywał się o specyfikacji i filozofii konteneryzacji ponieważ są ludzie którzy na pewno mają wiekszą wiedzę na ten temat i w razie potrzeby sprostują moje amatorskie instrukcje. Łopatologicznie rzecz biorąc Doker to takie wirtualne środowisko w systemie Linux, w którym instalujemy inne programy i systemy trochę jak aplikacje. Możemy postawić sobie kilka Domoticzów jednocześnie, na każdym z nich mieć inne urządzenia, co innego testować i z czym innym walczyć i po udanych testach przenieść to do głównego systemu.

Czego będziemy potrzebować. Oczywiście jakiejś maszyny na serwer. Ja mam stary, pasywny nettop ( takie coś jak poniżej ). Ważne aby procesor miał 64bit architekturę ponieważ Docker nie obsługuje 32bit.

Dell OptiPlex FX160 Intel 1.6GHz Flash 2GB RAM 1GB

Na takim czymś ( do wyboru do koloru – od 150 zł ) instalujemy najlepiej Ubuntu Server ( u mnie wersja 16.04 ), chociaż dystrybucja typu Desktop będzie równie dobra. Po wszystkim przechodzimy do instalacji Dockera.

Aktualizujemy oczywiście bazę pakietów.

sudo apt-get update

Dodajemy klucz do repozytorium.

sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

Następnie dodajemy repozytorium.

echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list

Ponownie aktualizujemy bazę pakietów

sudo apt-get update

Sprawdzamy, czy instalujemy Dockera z oficjalnego repozytorium.

apt-cache policy docker-engine

Jeżeli zobaczymy nr wersji kandydującej do instalacji np.

 Kandydująca:   17.05.0~ce-0~ubuntu-xenial

instalujemy Dockera.

sudo apt-get install -y docker-engine

I tyle. Mamy postawionego Dockera. I teraz najfajniejsze. Zarządzanie nim z poziomu wiersza poleceń jest jednak niewygodne, więc bez zbędnego wdawania się w magię poleceń w konsoli od razu instalujemy program do zarządzania kontenerami. Jest ich kilka. Ja wybrałem Portainer. Instalujemy go jako klasyczny kontener. Wydajemy  2 polecenia:

 
sudo docker volume create portainer_data
sudo docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

Trochę potrwa zanim zostaną poprane i rozpakowane wymagane pakiety. Po zakończonej operacji wpisujemy w przeglądarkę adres IP naszego serwera i port: 9000. Tworzymy użytkownika, login i hasło.

FireShot Capture 38 - Portainer - http___192.168.2.167_9000_#_init_admin.png

FireShot Capture 36 - Portainer - http___192.168.2.101_9000_#_auth.png

I mamy pogląd naszych zainstalowanych systemów. Łączymy się lokalnie

fireshot capture 40 - portainer - http___192.168.2.167_9000_#_init_endpoint

I widzimy, że zainstalował się jeden kontener ( to oczywiście Portainer )

fireshot capture 41 - portainer - http___192.168.2.167_9000_#_home

Przechodzimy dalej i możemy już zarządzać naszym kontenerem.

fireshot capture 42 - portainer - http___192.168.2.167_9000_#_containers

Ale nie ma na co czekać. Instalujemy DOMOTICZA. Nic prostrzego. W konsoli wklejamy:

docker pull joshuacox/mkdomoticz

I teraz jako jedno polecenie

docker run --name=domoticz \
        --privileged \
        -d \
        -p 8080:8080 \
        -t joshuacox/mkdomoticz

I to wszystko. Zainstaluje nam się gotowy kontener Domoticza i wystawi usługę na porcie 8080. Jeżeli chcemy możemy zmienić port modyfikując linię na np:

-p 8009:8009 \

oraz strefę czasową na Warszawę

-e TZ=Europe/Warsaw \

Linijka –privileged \ odpowiada za prawidłowe wykrywanie urządzeń np. RFLink do portów USB. Po wszystkim w Portinerze widzimy naszego kontenerowego Domoticza.

FireShot Capture 43 - Portainer - http___192.168.2.167_9000_#_containers.png

I po wpisaniu adresu i portu w przeglądarkę możemy już zaczynać zabawę.

fireshot capture 44 - domoticz - http___192.168.2.167_8080_#_dashboard

Po naciśnięciu ikony dokumentu ( na poprzednim zdjęciu ) możemy zobaczyć logi Domoticza.

FireShot Capture 46 - Portainer_ - http___192.168.2.167_9000_#_contai.png

Kłopotliwe może być znalezienie ścieżki instalacji jeżeli byśmy chcieli np ręcznie dodawać własne pluginy czy skrypy. Ja po prostu wyszukuje plik domoticz.sh na serwerze i zapisuje sobie ścieżkę. U mnie wygląda tak:

/var/lib/docker/overlay2/01202460d31e7587f06edf80ed293633c25849f9e26dd94d6a8b0eda81c9c8a6/merge/src/domoticz

Następnie w mc ( Midnight Commander ) robię dowiązanie symboliczne do dowolnego katalogu i nie muszę dalej grzebać.

Jeżeli ktoś chciałby pobawić się Docker-em na Raspberry Pi sprawę załatwi jedno polecenie, uważam to jednak za „masło maślane”

curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh

Nieprzebrana bazę kontenerów znajdziemy w oficjalnym repozytorium – DockerHub .

Zdaję sobie sprawę, że tylko liznąłem temat, ale miało być praktycznie. U mnie działa. W kolejnych wpisach pokaże jak bawić się Homeasstantem, OpenHub, monitorować systemy, robić kopię czy postawić Logitech Media Server. I to oczywiście wszystko w Dockerze.

Kamera UniFi Video Camera G3 w Domoticzu

Obsługa kamer nie jest priorytetem w rozwoju Domoticza, jednak w szczątkowy sposób da się z nich jako tako korzystać. Jak skonfigurować kamerę USB pisałem w  poście Obsługa kamer USB w Domoticzu. Przetestowałem już jedną z kamer, o której pisałem w artykule Obsługa kamery FOSCAM FI8918W w Domoticzu. Jest też coś dla prawdziwych majsterkowiczów, czyli jak wykorzystać stary telefon z Androidem jako kamerę. Szczegóły można znaleźć w poście Kamera z telefonu jako narzędzie do monitoringu mieszkania w Domoticzu.

Dzisiaj instrukcja dodania kolejnej kamery do Domoticza. UniFi Video Camera G3 jest bardzo dobrym urządzeniem w rozsądnej cenie. Warto było się jej bliżej przyjrzeć. Byłem posiadaczem jedynie kamery, bez rejestratora, ale nie było to problemem a jeżeli chodzi o koszty to nawet zaletą. Użytkowanie kamery w Domoticzu nie wymaga dodatkowego urządzenia lub oprogramowania aby mieć z niej podgląd.

Po podłączeniu do sieci i zasilania poprzez Poe możemy praktycznie już z niej korzystać. Pomocne będzie tu rozszerzenie do przeglądarki Chrome Ubiquiti Device Discovery Tool, dzięki któremu znajdziemy w sieci naszą kamerę i uzyskamy niezbędne informacje konfiguracyjne do dalszej pracy.

fireshot capture 3 - unifi video - http___192.168.2.152_login

Po zainstalowaniu rozszerzenia i zalogowaniu się ( domyslnie: ubnt/ubnt ) zobaczymy listę naszych kamer w sieci lokalnej.

unnamed-1.png

Po kliknięciu na adres kamery w nowym oknie zobaczymy podgląd obrazu.

FireShot Capture 5 - UniFi Video - http___192.168.2.152_camera_config.png

Ustawiamy Mode: Standalone

fireshot-capture-26-unifi-video-how-to-perform-rtsp-dire_-https___help.ubnt_.com_hc_en-us_art.png

I po prawej stronie widzimy RTSP URL, który potrzebny będzie nam do wstawienia w Domoticzu.

fireshot capture 28 - unifi video - how to perform rtsp dire_ - https___help.ubnt.com_hc_en-us_art

W konfiguracji kamery wstawiamy dane jak poniżej. Najważniejszy jest : Adres URL grafiki.

FireShot Capture 6 - Domoticz - http___192.168.2.101_9009_#_Cam.png

Przy testowaniu połączenia nie pojawia się obraz z kamery ale już w liście kamer mamy go widocznego.

FireShot Capture 8 - Domoticz - http___192.168.2.101_9009_#_Cam.png

I tyle. Klikamy na miniaturkę kamery i mamy podgląd na żywo  z kamery  UniFi Video Camera G3 w Domoticzu.

fireshot capture 9 - domoticz - http___192.168.2.101_9009_#_cam

Ps. Jak wysłać zdjęcie z kamery jako załącznik w mailu pisałem na końcu posta  Obsługa kamery FOSCAM FI8918W w Domoticzu.

Miłego podglądania.