poniedziałek, 29 kwietnia 2019

RetroPie - Aktualizacja emulatora Atari do wersji 4.0

Kolega z grupy FB Malinowa Retromaszyna podjął się zadania zaktualizowania (skompilowania) bazowej wersji emulatora atari800. Wersja dołączona domyślnie do RetroPie numerowana jest jako 3.0 (czyli ponad 5 lat), gdy aktualna to > 4.0 (na moment pisania 4.1). Wersja, którą możemy wykorzystać to 4.0, co w zupełności wystarcza, aby większość oprogramowania działała bez żadnego problemu.

Plik znajdziemy pod adresem https://github.com/pik33/atari800/releases, wystarczy ściągnąć i zastąpić już istniejący.

Przetestowane, działa :)

Przy okazji zagrałem w niektóre nowsze gry jak Laura i Duszpasterz Jan Rzygoń :)

wtorek, 16 kwietnia 2019

Sonoff TH16, wodoodporny DS18B20 oraz Domoticz. No i Gexon...

Dzień dobry!

Dzisiaj kolejna rzecz z tych 'nie jest mi to do niczego potrzebne, ale zrobię'. Tym razem NAPRAWDĘ nie jest mi to do niczego przydatne, ale skoro się da - to zrobię :D

Nabyłem swego czasu kolejny włącznik Sonoff. Tym razem TH16, wraz z wodoodpornym termometrem DS18B20. Miałem ambicję wykorzystać jeden z takich, które posiadam, ale słusznie obawiałem się, że nie poradzę sobie z lutowaniem 'poczwórnego jacka'. Kupiłem więc gotowy.

Tym razem sprawdzenie odbyło się w towarzystwie naszego Bojownika (ochrzczonego przez córkę imieniem Gexon). Akurat ta rybka jest bezproblemowa, nie potrzebuje zbyt wiele opieki i jakoś bardzo stabilnego środowiska, ale jak najbardziej wyobrażam sobie użycie tego rozwiązania w przypadku większych akwariów, terrariów czy jakiegokolwiek innego miejsca wymagającego stabilizacji temperatury.


Wgranie oprogramowania alternatywnego opisałem już w innych postach: http://cezarowy.blogspot.com/2018/08/sonoff-pow-zmieniamy-oprogramowanie-na.html, jedyne co mi przyszło do głowy przy tej operacji to fakt, że nawet nie wiem jak wygląda oryginalne oprogramowanie w Sonoff :D

Konfiguracja również standardowa, jak poniżej.






Teraz pozostaje albo napisać skrypt w dzVents, albo na szybko coś w Blockly. Rozumieć przez to należy, że poprzez monitorowanie temperatury możemy od razu załączać ten sam włącznik, do którego jest podłączony termometr.

DS18B20 nie jest jedynym który można podłączyć, poza tym on mierzy wyłącznie temperaturę. Inne, jak AM2301 oraz Si7021 mierzą również wilgotność.

wtorek, 2 kwietnia 2019

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