Home Assistant – dodajemy kolejne komponenty i konfigurujemy!

Dobry wieczór. Pozwolę sobie kontynuować serię artykułów o Home Assistant, a dokładnie rzecz biorąc to poprzez instalację Hass.io.

Home Assistant różni się od Domoticz wieloma elementami.

Podejście do komponentów umożliwiających komunikację z urządzeniami, serwisami pogodowymi, itp. jest zrealizowane inaczej niż w Domoticz. Jest oficjalna strona z setkami dodatków, które po prostu konfiguruje się w systemie. To była dla mnie największa bariera (nadmieniam, że raczej mentalna) w konfigurowaniu systemu. Można dodawać nieoficjalne repozytoria, ale na to mam jeszcze zbyt mało wiedzy, ale ilość dostępnych i tak przytłacza!

Muszę też powiedzieć jedno – łatwiej mi jest się przestawiać na Home Assistant głównie dlatego, że większość problemów, poszukiwań rozwiązań, elementów systemu miałem już skonfigurowane po stronie Domoticz. W takim wypadku wystarczyło je po prostu dodać. Nie otwierałem drzwi ponownie, nie walczyłem z materią. Widać, że czas poświęcony na naukę 'nie poszedł w las’. Nie musiałem szukać klucza do Xiaomi Gateway ani Air Purifier. Nie musiałem flashować sprzętów Sonoff – już to miałem zrobione. Pozyskanie obrazu z kamery również już przećwiczyłem.

Nadal nie wiem jak programować automatykę, ale wszelkie elementy to tego potrzebne mam już działające. To będzie kolejny krok.

Zacznijmy od prostego przykładu:

https://www.home-assistant.io/components/moon/

Fazy księżyca. W Domoticz pisaliśmy skrypty, przypisywaliśmy w nich wartości do konkretnych IDX, wstawialiśmy w CRON albo w skrypty uruchamiane przez Domoticz. Tu jest inaczej.

W sekcji sensor dodajemy wpis – platform: moon

# Sensors
sensor:
  – platform: moon

UWAŻAJCIE NA WCIĘCIA W TEKŚCIE! Jest to niezmiernie ważne w procesie konfiguracji i dodawania nowych elementów systemu.

Restart konfiguracji i możemy zacząć dodawanie.

Teraz ważny temat. Hassio (trochę podobnie jak Dashticz) może opierać się na automatycznym dodawaniu elementów na pulpit. Ale akurat to wyłączyłem dość szybko, bo przecież wszystko chcemy zrobić sami tak jak nam się podoba, a nie powierzyć automatom.

W tym celu musicie wybrać 'trzy kropki’ po prawej stronie, Configure UI i przestawić system w tryb manualnej edycji wyglądu interfejsu. Zostaniecie poproszeni o potwierdzenie tej operacji stosownym komunikatem.

Kolejną przydatną funkcją jest 'Unused entities’. Pokaże Wam jakie elementy skonfigurowaliście już, ale nie wrzuciliście na pulpit.

Pomarańczowym 'Plusem’ w prawym dolnym rogu (pokazanym na kolejnych ekranach) wywołujemy menu z dostępnymi opcjami. Zwróćcie uwagę, że są logicznie podzielone na pewne sekcje – Entity, Gauge (czyli wskaźnik, miernik), Glance (podgląd na przykład kamer), Light, Map, Media Control, Plant status, Sensor, Weather forecast, itp. W znakomitej większości Home Assistant rozpozna odpowiedni typ i będzie mogli wybierać z przypisanych elementów po prostu z 'Drop down listy’.

Na ten moment udajmy się do ENTITIES.

Tam zobaczycie opcje konfiguracji karty. Po lewej konfiguracja, po prawej efekt.

Wybieramy nasze Entity – sensor.moon i po chwili widzimy podgląd po prawej.

Po zapisaniu karta została dodana do systemu. Zrobione na szybko, bez tytułu, ale chodzi o efekt.

Podobnie trzeba zrobić z innymi komponentami, jak na przykład: haveibeenpwned, pogoda, dane systemowe, szybkość połączenia internetowego, itp. Budujecie z klocków.

Jeżeli chcecie klocki przesunąć, możecie to zrobić strzałkami, albo dodać kolejny element menu na górze i tam przesunąć swój komponent.

Ja przesunąłem sobie część elementów na zakładkę Użytkowe (Speed test, obciążenie Raspberry, UPS, Xiaomi WiFi Repeater, Have I Been Pwned, Air Purifier, itp.)

A część na Multimedia (Amplituner Denon z HEOS, MiBox3, Spotify z LMS, kamery, graficzna prezentacja pogody, itp.):

Czyli w sumie wszystko to, co potrafił Domoticz w połączeniu z Dashticz. Jest nieźle!

Jeden temat mi trochę krążył po głowie, ale udało się go szybko znaleźć. Standardowe elementy dodawane są na podstawie ID. Mniej lub bardziej jasnego do odczytu. Można te nazwy oczywiście zmieniać. Trzeba wybrać daną nazwę na pulpicie, wybrać ikonę 'trybika’:

Nadpisać i zapisać.

Voila!

W kolejnym kroku zajrzymy dokładniej do configuration.yaml i ukryjemy pewne sekrety.

Dobranoc!

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:doshimem.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 😀

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ł 😀

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 😀

OMV i Docker

Dobry wieczór!

Wiele się słyszy od dłuższego czasu w światku IT, głównie programistów, ale również osób zajmujących się IoT, Home Automation o Dockerze i konteneryzacji. Do tej pory patrzyłem na to z boku, delikatnie śledząc temat, pora jednak najwyższa się w to 'wdrożyć’. Dobrze zrobiłem, bo temat jest nad wyraz ciekawy i (nie tylko) moim zdaniem rewolucyjny.

Docker i kontenery, w przeciwieństwie do maszyn wirtualnych, nie są osobnymi systemami, ale pewnymi 'zbiornikami’ w których w izolacji pracują programy. Co ciekawe – korzystają ze wspólnych zasobów pamięci, odpowiednio nimi zawiadując. Czyli możemy sobie w sumie postawić ich wiele na jednym systemie i korzystać, będąc pewnym, że w razie jakichkolwiek problemów możemy przeinstalować tylko i wyłącznie jeden kontener, nie całość systemu, bez potrzeby 'stawiania’ wszystkiego od nowa.

Nadmieniam, że jestem w tym temacie jeszcze początkujący, ale zafascynowany, wybaczcie więc możliwe błędy w pełnym rozumieniu tematu. Z chęcią również posłucham Waszych rad i korekt, jeżeli potrzeba.

Kilka osób mówiło: 'Docker, tak. Kup QNAP, albo jakiś starszy serwer i tam instaluj’. No ale ja już mam mój 'biedny NAS’ postawiony na Orange Pi Zero Plus z NAS Hat. Głupio by było go nie wykorzystać, chociaż sprawdzić temat, bo jak nie 'zaskoczy’ to wydam 1k PLN bez potrzeby.

Po raz kolejny – warto być upartym, bo mimo że 'szału nie ma’ to działa na nim i Docker. Mimo limitu 512MB RAM. Coraz częściej jednak myślę o Odroid HC1/HC2.

Po pierwsze musimy w Open Media Vault (bo jego używam na moim NAS) zainstalować wtyczkę do Docker’a.

Po instalacji pojawi się nowa opcja w menu Services, do której przechodzimy.

Tam już zobaczymy możliwe do pobrania obrazy kontenerów Docker.

Pora przedstawić cel wpisu: instalujemy graficzny interface do pokazania naszych zdjęć w NAS. Do tego celu użyjemy lychee oraz MariaDB (czyli sewer baz danych tworzony przez zespół MySQL po tym jak zostali kupieni przez Oracle). Lekki, dostępny, ciekawy, ładny.

Zróbmy to jednak trochę inaczej. Na zakładce Overview w wyszukiwarce po prawej wpiszmy na początek linuxserver/mariadb i pobierzmy wybrany obraz. Po zakończeniu zobaczymy go w górnej połowie ekranu. Dobra, pobrany. Co teraz? Teraz trzeba go sparametryzować i uruchomić. Świetną cechą kontenerów jest to, że komunikują się przez konkretny port/porty z całym systemem. Czyli wystawiają pewien port, który później jest przekierowany na wybrany przez nas. W tym przypadku pozostanę przy standardowym dla MariaDB 3306.

Więcej informacji o parametrach, opisie znajdziecie na stronie z repozytorium kontenerów: https://hub.docker.com/r/linuxserver/mariadb. Opis parametrów, folderów do wyboru znajduje się na wymienionej stronie. Tu udajcie się w razie wątpliwości i wiedzy jakie parametry ma jaki kontener.

W przypadku tej konfiguracji musimy podać:
– PUID
– PGID
– TZ – TimeZone
– Hasło root do MySQL

WAŻNE! Każdą wpisaną wartość musicie 'potwierdzić’ i przejść do kolejnej linii aby został zatwierdzony. To był mój główny błąd na początku nauki.

Poniżej również bardzo ważne dane – informacje o folderach z którymi może się komunikować nasz kontener. Wskazujemy folder po stronie kontenera i adekwatny folder na dysku NAS. Ja tworzę dla każdego kontenera osobny folder z konfiguracją, ale to zależy już od Waszych potrzeb i poczucia estetyki.

Lepiej zdefiniować je tak:

Jeżeli wszystko skonfigurowaliście poprawnie, obraz zostanie uruchomiony i od razu zobaczycie jego status.

W identyczny sposób instalujemy lychee. Konfiguracja jest odrobinę inna, jak poniżej:

I teraz ciekawa część. Wskażemy stronę lychee, w celu wstępnej konfiguracji. Tak jak ustawiliśmy, Lychee zgłasza się pod adresem naszego NAS z portem jaki wskazaliśmy przy konfiguracji kontenera, u mnie 192.168.1.124:81, czyli port 81. Ja sobie jak widać na routerze nazwy domen domowych przypisałem do adresów IP.

Lychee poprosi nas o adres IP serwera MariaDB (czyli w moim przypadku adres mojego NAS) i hasło do użytkownika którego chcecie używać. Ja wybrałem root. Niezbyt może bezpiecznie, ale mój NAS 'nie wychodzi na świat’, nie mam do niego dostępu spoza domu. Lychee stworzy swoją bazę jeżeli chcecie, na wypadek 'przenosin’ w inne miejsce macie możliwość wskazania lokalizacji używanej poprzednio bazy. Po założeniu będziemy jeszcze musieli stworzyć użytkownika i hasło, które chcecie używać w programie.

Jesteśmy gotowi do pracy!

Zasada Lychee jest następująca: wskazujemy folder źródłowy oraz docelowy, do którego zostaną przeniesione skatalogowane zdjęcia. Na początku trochę się wahałem, bo mam swój własny sposób na katalogowanie zdjęć, ale operacja (mimo że długotrwała przy kilkudziesięciu gigabajtach zdjęć) zakończyła się sukcesem.

OMV i klucze SSH do łatwiejszej komunikacji pomiędzy różnymi sprzętami

Jak pisałem – zbudowałem sobie NAS. Kopię danych z laptopa załatwiłem sobie prostym xcopy z poziomu Windows (nie chce mi się instalować jakiego wielkiego softu do backupów, chociaż używałem kiedyś Cobian backup), miałem jednak mały zgryz z kopią Domoticz oraz RetroPie.

A miało to wyglądać tak:
– kopia wykonywana z poziomu NAS (czyli OMV) pobierająca foldery z Raspberry Pi na którym jest Domoticz
– kopia wykonywana z poziomu NAS pobierająca foldery z Raspberry Pi na którym jest RetroPie

Wszystko to miał obsłużyć rsync. Aby zrobić to pomiędzy dwoma systemami musiałem użyć połączenia szyfrowanego (SSH), ponieważ tego wymaga rsync.

Chciałem to zautomatyzować na ile się da i w sumie udało mi się bez problemu przez SSH (Secure SHell), ale zawsze stało mi na przeszkodzie hasło, które musiałem podawać przy logowaniu się do serwera. Pora była nauczyć się generowania kluczy SSH, które później można użyć przy bezpośrednim łączeniu się pomiędzy konkretnymi komputerami.

Jak się okazuje – dla chcącego nic trudnego…

Po pierwsze – po stronie systemu NA KTÓRY chciałem się logować bez hasła musiałem wygenerować klucz rsa:

ssh-keygen -t rsa

Robiłem to dla standardowego użytkownika 'pi’, dlatego klucz publiczny znajduje się w folderze /home/pi/.ssh/id_rsa.pub. Klucz prywatny (identyfikator) znajduje się w /home/pi/.ssh/id_rsa.

TERAZ WAŻNE: trzeba nakazać skopiowanie klucza serwerowi KTÓRY będzie się logował na inny, gdzie jest klucz. Poleceniem ssh-copy-id, jak poniżej

ssh-copy-id pi@192.168.1.200 

Z POZIOMU SERWERA który ma się dostać do danych, czyli z OMV.

Podajemy hasło do konta, jednorazowo.

Teraz już bez problemu działają polecenia:

sudo rsync -avz -e ssh pi@192.168.1.200:/var/www/html/dashboard /sharedfolders/Sobczaki/Dane/Backup/Domoticz

sudo rsync -avz -e ssh pi@192.168.1.200:/home/pi/habridge /sharedfolders/Sobczaki/Dane/Backup/Domoticz

sudo rsync -avz -e ssh pi@192.168.1.200:/home/pi/domoticz /sharedfolders/Sobczaki/Dane/Backup/Domoticz

sudo rsync -avz -e ssh pi@192.168.1.126:/etc/emulationstation /sharedfolders/Sobczaki/Dane/Backup/RetroPie/

Wpakuję sobie to wszystko do CRON i backup 'będzie się robił sam’.

Świetna dokumentacja instalacji, konfiguracji Domoticz w PDF jest dostępna!

Dzień dobry. Patrząc na datę ostatniego wpisu zastanowiłem się gdzie mi tak szybko uciekł miesiąc. Ale, biorąc pod uwagę sezon narciarski i ferie – nie jest tak źle…

Przeglądając rano forum Domoticz napotkałem na świetną ciekawostkę.

Użytkownik Robert Linn opracował świetną dokumentację instalacji, konfiguracji, dostrajania systemu. Do tego opis MQTT, skrypty dzVents, Volumio i mnóstwo innych. Dopiero się do niego dorwałem, nie zdążyłem przeczytać, ale czym prędzej pragnę się tym z Wami podzielić.

Zapraszam do pobierania i czytania pod adresem:
https://github.com/rwbl/domoticz-homeautomation-workbook

ESP8266, aktualizacja oprogramowania Tasmota

Oj, jak ja lubię aktualizować… Oprogramowanie tu, tam, jakoś tak zawsze staram się mieć zainstalowane najnowsze wersje. Dobrze to czy źle – kwestia osobista, 
Dotarło do mnie, że Sonoff Pow ma starszą wersję. Zmian jest mnóstwo (poprawki, dodane nowe obsługiwane sprzęty), do poczytania między innymi tutaj: https://github.com/arendst/Sonoff-Tasmota/wiki/What’s-New.
Tak w ogóle podjąłem decyzję, że na wszystkie Sonoff’y (oprócz, jak na razie, czujnika smogu) wgram oprogramowanie Tasmota.
Czyli do gniazdek, Basic, Pow – zamiast ESPEasy – Tasmota.
Aby zaktualizować, przechodzimy do Firmware Upgrade.
Najnowsze wersje oprogramowania znajdziecie zawsze na stronie: https://github.com/arendst/Sonoff-Tasmota/releases. Z ciekawości – człowiek zawsze jakąś głupotę walnie… Nie wiem co mną kierowało, ale flashując Sonoff Basic, wybrałem również taką wersję Tasmota (no, trochę to logiczne i bardzo się później zdziwiłem, że nie mam zakładki do konfiguracji Domoticz. Jak się okazało – to obcięta, minimalna wersja oprogramowania. Po wgraniu Classic wszystko powróciło do stanu poprzedniego.
Kontynuując, wybieramy odpowiednią wersję:
I po kilku sekundach możemy się cieszyć nową wersją oprogramowania.

I to by było na tyle, cytując klasyka.

Dashticz ponownie na tapecie! Tym razem rozwiązanie problemu z kalendarzami i RSS.

Dashticz to ciekawy temat. Jak zresztą często bywa z oprogramowaniem – ktoś tworzy coś dla siebie, później zaczyna korzystać z niego coraz więcej osób. Z tym spotkał się również autor Dashticz – miał tam kawałek kodu, który przetwarzał kalendarze na jego stronie. Zapewne dlatego, że tak mu było wygodniej, ale z czasem ilość użytkowników zaczęła przerastać wydajność serwera, postanowił ją więc wyłączyć. No i trach – wszystkie kalendarze aktualnych użytkowników przestały się pojawiać.

Przetwarzanie danych kalendarzy musi być teraz po naszej stronie. Potrzebujemy do tego serwer Apache i PHP.

Od razu piszę, że opieram się tutaj na Raspbian w wersji Jessie!

Aby zainstalować PHP w wersji 7.0 musiałem dodać niestandardowe repozytorium, jak poniżej.

Edytujemy plik:

sudo nano /etc/apt/sources.list

deb http://repozytorium.mati75.eu/raspbian jessie-backports main contrib non-free
#deb-src http://repozytorium.mati75.eu/raspbian jessie-backports main contrib non-free

Instalacja certyfikatów zatwierdzających repozytoria:

sudo gpg –keyserver pgpkeys.mit.edu –recv-key CCD91D6111A06851

sudo gpg –armor –export CCD91D6111A06851 | sudo apt-key add –

I później już standardowo:

sudo apt-get update
sudo apt-get install apache2
sudo apt-get install php7.0
sudo apt-get install php7.0-xml php7.0-curl

Nie wiem jak u Was, ale u mnie Domoticz jest na porcie 80, na którym standardowo instaluje się Apache, musiałem więc zmienić:

sudo nano /etc/apache2/sites-available/000-default.conf

Na:

<VirtualHost *:82>
DocumentRoot /var/www/html
</VirtualHost>

Do tego jeszcze:

sudo nano /etc/apache2/ports.conf

Listen 82

Restart Apache
sudo systemctl restart apache2

I możemy ruszać z Dasthicz, tym razem w wersji Beta. Nie chciałem robić żadnych symlinków, dlatego zainstalowałem go w folderze Apache:

cd /var/www/html

Ściągamy repozytorium:

sudo git clone https://github.com/robgeerts/dashticz_v2 –branch beta dashboard

Gdybyście chcieli jednak zrobić symlink, pobierzcie repozytorium do folderu /domoticz/www/ i wykonajcie

sudo ln -s /home/pi/www/dashboard/ /var/www/html

Pozostaje skopiować CONFIG.js i jesteśmy w domu. U mnie na ten moment Dashticz zgłasza się pod adresem 192.168.1.200:82/dashboard/index.html.

Widzę też, że pojawił się parametr dotyczący przetwarzania RSS:
config[’default_cors_url’] = 'http://cors-anywhere.herokuapp.com/’ ;

Wygląda mi na to, że to on zdecydował o tym, że teraz RSS działają bez problemu.

Orange Pi Zero Plus, NAS Hat, Open Media Vault i pierwsza styczność z drukarką 3D

Sprzęt dotarł, testy wcześniej zrobione, warto postawić system 'na poważnie’.

Od razu ostrzegam – Orange Pi (w moim przypadku) Zero Plus jest dość specyficznym sprzętem. Z jednej strony świetnym – sieć 1Gigabit (prawdziwa, nie jak w Raspberry Pi, nawet 3B+), bez wewnętrznego huba USB, bez dzielenia przepustowości z Ethernet. Wsparcie w porównaniu do Raspberry Pi jest jednak małe, przez brak zgodności producentów ze standardami wielu twórców wycofuje się ze wsparcia oprogramowania (np. DietPi). Od razu widać, że samym sprzętem rynku się nie wygra.

Mnie osobiście zależało na oszczędności prądowej oraz dobrej nakładce SATA przy zachowaniu niskiej ceny – pod tym kątem sprzęt sprawdza się bardzo dobrze, ale wyłącznie do jednego celu – OpenMediaVault. W sumie można pracować z Armbianem, ale to mnie akurat nie interesowało. Najlepszą alternatywą byłby ODROID-HC1/HC2, ale koszt jest kilka razy większy. Dla sprawdzenia, czy się przyjmie w domu jest to już dyskusyjne.

Dla jasności – nie przekonuję tutaj, że sprzęt za 80 PLN jest lepszy niż QNAP czy Synology, lepiej spełnia swoje zadania, itp., itd. Bo na pewno nie jest z wielu względów. DLA MNIE jest wystarczający do celów, które sobie założyłem, czyli:
– dostęp do muzyki, filmów i zdjęć rodzinnych w sieci domowej w możliwie najszybszy sposób
– skonfiguruj raz i zapomnij
– energooszczędny

W przypadku Orange Pi okazało się, że ważne jest jedno. KARTA SD! Powtarzam – karta SD. A jakbym zapomniał – KARTA SD! Nie pamiętam abym AŻ takie problemu miał na Raspberry Pi, ale tutaj szczególnie. Wolne działanie, problemy – minęły gdy włożyłem ciut lepszą kartę SD.

Robiąc wszystko na Raspberry z podłączonym dyskiem HDD zapomniałem jak to jest działać na karcie SD…

Do tego – trzeba szczególnie uważać jakie obrazy pobieramy, ponieważ odmian Orange Pi jest wiele.

Zgrywamy obraz na kartę za pomocą Etcher i od razu mamy postawiony i dostępny OpenMediaVault.

I, podobnie jak w przypadku OMV na Raspberry Pi, miałem problem z aktualizacją systemu i OMV. Teraz już wiem dlaczego apt-get update && omv-update skutkuje błędem jak poniżej przy pierwszym uruchomieniu.

W tle pojawia się demon aktualizujący system, ale z jakichś powodów nie chciał się zakończyć. Albo byłem mało cierpliwy.

Pomogło:

ps aux | grep apt

kill processnumber

dpkg –configure -a

Czyli 'ubicie’ procesu aktualizacji (raz w sumie zadziałał mi prosty restart systemu) i naprawienie repozytorium aktualizacji.

Później już wszystko poszło poprawnie.

System zaczął stabilnie i szybko działać.

Osobiście zainstalowałem kilka dodatków do OMV:
– shellinabox – możliwość zalogowania SSH bezpośrednio przez stronę OMV
– backup – kopia OMV (samej konfiguracji) w razie awarii
– duplicati – możliwość robienia kopii na serwisy chmurowe
– usbbackup – automatyczna kopia zadanych folderów w przypadku włożenia dysku USB
– minidlna – DLNA (Digital Living Network Alliance) – aby nasze zasoby były widoczne dla Smart TV (nie mam osobiście), media boxów (mam Xiaomi), telefonów, VLC, konsol, itp.
– domoticz – nie wiem jeszcze co robi ten plugin ale nazwa taka, że musiałem zainstalować 😀
– nut – do zarządzania w przypadku braku zasilania i komunikatów z UPS do zamknięcia systemu
Konfiguracją poszczególnych wtyczek zajmę się w osobnym wpisie.
Zainstalowałem również serwer Plex, ale nie wiem jak długo z nim zostanę, bo strasznie mnie denerwują nachalne reklamy i limitacje w aplikacjach na telefony (film tylko przez jedną minutę, itp.). Aplikacja na PS4 nie ma takich problemów i w sumie zobaczymy jak się to będzie sprawdzać w akcji.
Poniżej wartości poboru prądu dla podłączonego zasilacza do NAS (5V, 2A) oraz zasilania Orange Pi Zero Plus wraz z działającym dyskiem 2.5 cala. Znikomy – około 5 Watt. A z tego co czytałem na forum OMV i tak za duży – gdy tylko skończę konfigurację zabiorę się za 'tuning’. Dla czystej zabawy i chęci nauki.
Aha, niech Was nie zmyli nazwa wtyczki – zapomniałem zmienić z TV na inną.
Teraz obudowa. Skorzystałem z gotowego projektu dostępnego na stronie https://www.thingiverse.com/thing:2765840. Bardzo prosty, a jednocześnie funkcjonalny. Jak się okazało po wydruku – do tego bardzo ładny i estetyczny! Bardzo się zdziwiłem niesamowitą dokładnością tego wydruku. Wszystko co do milimetra spasowane, w odpowiednim miejscu. Wybaczcie emocje, ale pierwszy raz miałem osobiście w rękach potrzebny mi wydruk 3D. Owszem, wcześniej z dziećmi robiliśmy jakieś małe rzeczy na warsztatach w różnych miejscach, to jednak jakby nie to samo 🙂
Bez wstydu można postawić sprzęt obok amplitunera czy innych elementów.
Dla własnej informacji bardziej, poniżej Armbian.
Użytkownik: root, hasło: 1234

WinSCP – wygodna edycja skryptów na Raspberry Pi (i innych). Znalezione na forbot.pl

Na stronie Forbot.pl, a dokładnie w artykule https://forbot.pl/blog/jak-zdalnie-i-wygodnie-edytowac-skrypty-na-raspberry-pi-id27418 pojawił się fajny opis sposobu edycji plików (skryptów, plików do Pythona, konfiguracji) za pomocą WinSCP.

Nie śmiem wklejać nawet kawałka, zachęcam do przeczytania, dowiecie się z niego:
– po co WinSCP
– jak ułatwi edycję plików
– jak skonfigurować, aby współpracował z edytorem, który będzie najbardziej przydatny.

Ja (wstyd się przyznać), przy pracy nad Dashticz edytowałem pliki na PC i wrzucałem je przez FTP. WinSCP ten proces po prostu automatyzuje. Tylko tyle i aż tyle.

UPSa dostałem… Jakbym miał za dużo czasu i się nudził ;)

Pojawił się w domu nowy kolega… Trochę już wiekowy, może niezbyt piękny, ale po wymianie baterii działający bardzo dobrze. UPS APC CS 350. Problematyczne było znalezienie kabla transmisyjnego (specjalna, 10 żyłowa 'RJotka’ -> USB), ale i z tym sobie poradziłem, za co bardzo dziękuję kolegom.

Dążymy do tego:

A sam UPS wygląda tak 🙂

Skoro zadziałał grzechem byłoby:
– pozostawienie go samemu sobie,
– odpuszczenie monitorowania
– i oczywiście dodaniu do naszego Smart home 😉

Co prawda w przypadku Raspberry Pi zmieniłem miejsce systemu na HDD, ale poprawienie bezpieczeństwa i stabilności zawsze jest dobrym pomysłem. A do tego – jeżeli braknie prądu to dzieci zawsze będą mogły lekcje odrobić przy lampce, z czego na pewno będą się bardzo cieszyć. Lampka z żarówką 7W wytrzymuje na nim ponad dwie godziny, także czasu będą miały sporo…

Bez zbędnych dyskusji zabieramy się do pracy.

Najpierw odświeżenie repozytorium i instalacja NUT (Network UPS Tools). NUT jest serwisem monitorującym pracę UPS, dbającym o przesyłanie komunikatów do systemu w przypadku przejścia na zasilanie bateryjne, pozwalającym zamknąć system w przypadku spadku poziomu naładowania baterii, itp.

sudo apt-get update && sudo apt-get install nut nut-client nut-server

Po zainstalowaniu wykonujemy komendę

lsusb

i sprawdzamy czy nasz UPS jest widoczny.

Działa, jest widoczny. Świetnie!

Warto na stronie http://www.networkupstools.org/stable-hcl.html sprawdzić czy nasz UPS jest obsługiwany i jaki jest do niego najlepszy sterownik. Szczerym będąc, z APC problemu nie miałem, ale już UPS firmy Eaton nie udało mi się zmusić do podłączenia i zaraportowania statusu. Chociaż sam UPS działał bez problemu.

Ok, jedziemy dalej. Dobrze by było powiedzieć systemowi jaki to jest ten nasz UPS i jakim sterownikiem się do niego dostaniemy.

W przypadku NUT, pliki które zaraz będziemy edytować są bardzo dobrze udokumentowane. Przy każdej opcji mamy kilka przykładów, wyjaśnienia, itp. W Waszym przypadku UPS zapewne będzie inny, może inny model, musicie wybrać odpowiednie sterowniki i podejście. Z tego co widzę w sieci – APC sprawia najmniej problemów.

W tym celu, edytujemy

sudo nano /etc/nut/ups.conf

Na samym końcu pliku dodajemy/edytujemy:

[apc350]
        driver = usbhid-ups
        port = auto
        desc = „APC”

WAŻNE jest zapamiętanie tego, co wpisaliśmy w nawias kwadratowy, ponieważ tej nazwy będziemy używać w kolejnych krokach.

Jak widać – eksperymentowałem z kilkoma różnymi.

Kolejny krok – deklarujemy w konfiguracji nut jaki będzie nasz sposób pracy UPSa. W moim przypadku serwer i klient NUT jest na tym samym Raspberry Pi, dlatego wybrałem opcję Standalone.

sudo nano /etc/nut/nut.conf

MODE=standalone

Następnie

sudo upsdrvctl start

Dobrze jest – mamy komunikację.

Być może potrzebne będzie wykonanie:

sudo service nut-server restart

sudo service nut-client restart

Przed

sudo service nut-server status

Serwer wystartował, jest w porządku.

Komenda jak poniżej (UWAGA, używamy nazwy, którą zdefiniowaliśmy w konfiguracji!) poda nam parametry i status UPSa.

upsc apc350

So far so good, jak to mówią. Teraz musimy skonfigurować monitor, który w razie braku prądu zamknie komputer, gdy serwer NUT mu rozkaże.

Użytkownicy (tam gdzie XXXXX podajecie swoje hasło. W sumie to i XXXXX możecie zostawić 😉 ):

sudo nano /etc/nut/upsd.users

[admin]
        password = XXXXX
        actions = SET
        instcmds = ALL
[upsmon]
        password  = XXXXX
        upsmon master

I później przechodzimy do wieeeelkiego pliku

sudo nano /etc/nut/upsmon.conf

Ale na szczęście interesują nas w nim wyłącznie dwie sekcje:

MONITOR apc350@localhost 1 upsmon XXXXX master

Zamiast XXXXX oczywiście Wasze hasło

I dla testów możemy włączyć powiadamianie na ekranie. Będziemy widzieć co się dzieje:

NOTIFYFLAG ONLINE      SYSLOG+WALL
NOTIFYFLAG ONBATT      SYSLOG+WALL

A tutaj komenda, która wykona się, gdy będzie już trzeba zamknąć system, ponieważ bateria już ledwo zipie:

Później uprawnienia do plików:

sudo chown nut:nut /etc/nut/*
sudo chmod 640 /etc/nut/upsd.users /etc/nut/upsmon.conf

W sumie jesteśmy już gotowi, z ciekawostek, po wpisaniu komendy jak poniżej dostaniecie listę komend Waszego UPS. Jak widać – wyłączenie głośnika, wyciszenie, restart UPSa, testowanie baterii, itp.

sudo upscmd -l apc350

Na przykład wyłączenie pikania po przejściu na baterię (już rodzinę raz obudził gdy zabrakło prądu) to:

upscmd apc350 beeper.mute

Po tym wszystkim restart serwera i klienta. UWAGA – możliwe, że i wcześniej będziecie musieli wykonać sudo reboot, aby UPS był widoczny i serwisy wstały.

sudo service nut-server restart
sudo service nut-client restart

Po brutalnym wyjęciu kabla zasilającego testy wypadły pozytywnie 🙂

Jeszcze tylko

sudo nano /etc/nut/upsd.conf

Aby serwis wiedział gdzie ma nasłuchiwać:

 LISTEN 127.0.0.1 3493
 LISTEN 192.168.1.200 3493

192.168.1.200 to adres mojego Raspberry Pi.
Cudownie! Wszystko skonfigurowane, działa!

No to teraz Domoticz, żeby jeszcze było wizualnie pięknie (chociaż zdania są podzielone, ale co tam 😉 )

Z poziomu konsoli i folderu Domoticz wykonujemy co następuje:

cd plugins
mkdir NUT_UPS
sudo apt-get update
sudo apt-get install git
git clone https://github.com/999LV/NUT_UPS.git NUT_UPS
cd NUT_UPS
sudo chmod +x plugin.py
sudo /etc/init.d/domoticz.sh restart

W sekcji Hardware pojawił mi się plugin UPS Monitor. Konfigurujemy go podając nasze parametry (IP, port, oraz nazwę w serwerze NUT, którą skonfigurowaliśmy – u mnie apc350)

I mamy:

Po chwili w zakładce Devices zaczną nam się pojawiać dane z UPSa:

I już później w Domoticz:

Kolejna wykonana praca! Teraz mogę spać jeszcze spokojniej, mniej obawiając się o to, że Raspberry Pi nie wstanie przy kolejnym braku/zaniku/chwilowej przerwie prądu.