Odczyt danych z licznika prądu Eastron SDM630 Modbus.

Sposobów na monitoring zużycia prądu w domu jest na prawdę wiele. Kilka z nich opisywałem już na blogu. Można to zrobić poprzez odczyt z migającej diody np. wykorzystując INODE lub przy użyciu klamer zapinanych na przewodach jak w systemie OWL Micro +. Cały czas jednak chciałem uzyskać wiarygodne dane prosto z licznika prądu. Jako, że ma w domu istalacje 3-fazową problem był bardziej skomplikowany, raz ze względu na koszty zakupu odpowiedniego podlicznika, dwa ciężko było mi znaleźć odpowiednie skrypty i biblioteki do obsługi tego typu liczników. Dla liczników jednofazowych np. SDM120 poradników, łącznie z filmami na youtube jest cała masa, słusznie jednak podejrzewałem, że mogą być nieprzydatne dla liczników trójfazowych. Przepisanie kodu jak dla mnie to za wysokie progi. Aktualnie pracuje nad tematem związanym z monitoringiem zużycia energii  i powyższy problem stał się elementem większego projektu, ale o tym pewnie będzie za jakiś czas. Stałem się więc posiadaczem owego licznika i zmuszony byłem do podjęcia walki z nim. Uprzedzając pytanie, dlaczego wybrałem protokół Modbus zamiast analizy z wyjścia impulsowego. Założenie jest takie, aby odczyty były jak najbardziej wiarygodne i cały projekt został oparty na tym protokole. Nie będę oczywiście rozpisywał się o charakterystyce protokołu komunikacji, jego wadach i zaletach, oraz wklejał linków do Wikipedii. Ma być praktycznie, czyli jak najszybciej do celu.

Przygotowanie środowiska pracy.

Co było potrzebne:

  1. Licznik prądu Eastron SDM630 Modbus
  2. Raspberry Pi B+
  3. Konwerter USB/RS485
  4. … trochę kabli i żarówka

Na Raspberry Pi zainstalowałem czystego, najnowszego Raspiana i wgrałem na nim Domoticza, klasyczna komendą:

 sudo curl -L install.domoticz.com | bash 

Podłączenie licznika do Rasberry Pi

Na początek podłączamy licznik zgodnie z instrukcją. U mnie do testów wykorzystywana jest jedna faza. Jako odbiornik prądu posłużyła żarówka. Przy podłączeniu trójfazowym, w rozdzielni skorzystam z pomocy elektryka i to wszystkim polecam.

FireShot Capture 11 - - https___cemm.nl_wp-content_uploads_2017_12_Eastron-SDM630D-Modbus.pdf

 

Podłączyłem tak.

1- Zasilanie, przewód fazowy – L1

4- Zasilanie, przewód neutralny – N

5- Wyjście na żarówkę, przewód fazowy – L1

8- Wyjście na żarówkę, przewód neutralny – N

Do portu USB Raspberry podłączamy konwerter USB/RS485 i łączymy go z wyjściem danych licznika.

  • A+ licznika z D+ konwertera
  • B- licznika z D- konwertera

IMG_20181028_111528.jpg

Instalacja oprogramowania.

Wychodzą z założenia, iż wszystko czego mi do szczęścia, w temacie elektroniki potrzeba zostało już dawno odkryte przekopałem fora i znalazłem kilka skryptów w pythonie, które powinny obsłużyć ten licznik. Okazało się, że jest też plugin do Domoticza, więc na nim się skupiłem. W najnowszy Raspbianie mamy już Pythona w wersji 3, lecz niezbędne jest doinstalowanie python3-dev.

sudo apt-get install -y python-dev 

Instalujemy plugin i restartujemy Domoticza

 cd ~/domoticz/plugins git clone https://github.com/MFxMF/SDM630-Modbus 

Po restarcie pojawił się nam nowy /Sprzęt

FireShot Capture 12 - Domoticz - http___192.168.2.130_8080_#_Hardware.png

I tu sprawa bardzo ważna. Należy ustawić prawidłową szybkości transmisji danych – Baud rate. Domyślnie jest 9600, natomiast mój licznik pracuje z prędkością 4800. W instrukcji licznik można znaleźć informację jak i gdzie ją ustawić.

W zakładce /Urządzenia pojawia nam się kilka – dokładnie 86 odczytów

FireShot Capture 13 - Domoticz - http___192.168.2.130_8080_#_Devices.png

a w logach ( jeżeli ustawimy szybkości Debug: True ). Nie polecam ustawiać na stałe debugowania. Po jakimś czasie zaczyna się dusić.

FireShot Capture 14 - Domoticz - http___192.168.2.130_8080_#_Log.png

Dla mnie praktycznie potrzebne są jest tylko dwa odczyty.

FireShot Capture 15 - Domoticz - http___192.168.2.130_8080_#_Utility.png

I to byłoby na tyle. Wygląda banalnie prosto, ale rozgryzienie tego zajęło kilka wieczorów. Jeżeli coś poszłoby nie tak warto doinstalować

sudo apt-get install python-pip
pip install pyserial 
pip install minimalmodbus

ponieważ skrypt korzysta z tych bibliotek.

Projekt w zamyśle ma być rozbudowany o odczyty z innych liczników więc zachęcam do śledzenia wątku. Będę starał się go na bieżąco aktualizować.

Jeszcze tańsza wersja odtwarzacza sieciowego mediów na bazie Raspberry Pi.

Na moim blogu coraz rzadziej pojawiają się wpisy dotyczące bezpośrednio RasberryPi. Wynika to z tego, że dosyć mocno poszedłem w rozwój automatyki domowej i Domoticza i malinka jest dla mnie tylko bazą do dalszego rozwoju mojego systemu. Nadal zajmuje eksponowane miejsce i z ochotą wracam do zaniechanych z braku czas projektów. Jeden z nich, o roboczej nazwie „Muzyka w każdym pokoju” cały czas rozwijam. W poprzednich wpisach o Volumio i HiFiBerry już pisałem. Jak można w nich przeczytać wyjście dźwięku z mini jack w raspberry jest za słabe i potrzebne są aktywne głośniki, a dobry DAC kosztuje od 100 zł w górę. Dla kilku pokoi robią się nie małe pieniądze. Ceny raspberrypi nie liczę ponieważ przez poprzedni rok nazbierałem ich „kilka” i czekają na wykorzystanie. Po kilku nieudanych próbach znalezienia tańszego wzmacniacza znalazłem w końcu coś takiego.

htb1nwt1zkcwbunjy0faq6xulxxaj.jpg

Jest to dwukanałowy 6W wzmacniacz z wyjściem mini jack. Kupiłem go tu. Cena poraża. Nie wierzyłem szczerze powiedziawszy że zadziała. Podłączenie jest dziecinnie proste. Zasilanie 5V i GDN z RaspberryPi do gniazda obok czerwonej diody, głośniki do zacisków z lewej i wyjście dźwięku z malinki do wejścia w urządzeniu. Musi działać. Potencjometr reaguje bardzo płynnie, nie słychać trzasków i przeskoków. Miałem stare głośniki od wieży i doczekały się w końcu swojej drugiej szansy. Wersja na roboczo wygląda tak.

Do budowy mojego projektu wykorzystałem Logitech Media Server z odtwarzaczami  piCorePlayer. Jako że miałem już 2 odtwarzacze na bazie RaspberryPi Zero i HiFiBerry MiniAmp działające w oparciu o Volumio postanowiłem ten najnowszy wpiąć w sieć i stworzyć multi-room. Logitech Media Server zainstalowałem na tej samej maszynie na której chodzi Domoticz. Na razie nic się nie gryzie. Zobaczymy jak będzie dalej. Dla tych, którzy stawiają LMS na Raspbianie polecam wpis Cezara . Tam są wszystkie szczegóły. U mnie Domoticz chodzi na Ubuntu Server, więc instalacja Logitech Media Server sprowadzała się do pobrania i zainstalowania paczki ze strony http://downloadsorigin.slimdevices.com/LogitechMediaServer_v7.9.0/ . Po restarcie odpalamy server podając nasze IP i port 9000. Na malinkach, które będą odtwarzaczami wypalamy piCorePlayer. I tyle.

FireShot Capture 4 - Logitech Media Server - http___192.168.2.214_9000_

FireShot Capture 5 - Logitech Media Server - http___192.168.2.214_9000_

Oczywiście możemy użyć aplikacji Squeezer oraz obsłużyć wszystko z Domoticza.

Screenshot_20180909-142451.jpg

FireShot Capture 7 - Domoticz - http___192.168.2.214_9009_#_LightSwitches

Audiofilski system to to nie jest, ale nie taki nie taki miał być. Myślę, że pomysł może się przydać dla tych, u których w szufladzie przewalają się zapomniane malinki a nie ma pomysłu a zwłaszcza funduszy na ich zagospodarowanie. Moim zdaniem zakup tego wzmacniacza to jeden z lepszych pomysłów na wydanie 2.5 $.

 

 

 

 

 

 

 

Czujnik dymu Elro FA20RF w Domoticzu.

Dzisiaj krótki artykuł z serii – „U mnie działa”. Pomyślałem, że takie informacje mogą być przydatne dla osób szukających urządzeń, ale nie są pewni czy znaleziony przez nich sprzęt będzie kompatybilny z Domoticzem.

Ponieważ sezon grzewczy w pełni a ja mam piec na drewno czujnik dymu to niezbędne wyposażenie ( czujnik czadu mam od dawna, ale nie podłączony do Domoticza ). Jakiś czas temu zainwestowałem w bramkę RFLink. Sukcesywnie podłączam do niej kolejne urządzenia. Wybrałem Elro FA20RF. Jego główne zalety to bezprzewodowa komunikacja na częstotliwości 433 MHz, głośność syreny 85 dB oraz możliwość łączenia w sieć ( czujniki będą przekazywać sobie sygnał ) na odległość do 40 m. Oczywiście nie bez znaczenia jest fakt, iż jego cena to ok 30 zł ( znalazłem nawet za 13 zł ).

Po włożeniu baterii i naciśnięciu przycisku TEST czujnik powinien zostać bez problemy wykryty przez RFLink i dodany do /Urządzeń w Domoticzu.

FireShot Capture 1 - Domoticz - http___192.168.2.81_9090_#_Devices.png

Dodajemy standardowo urządzenie do systemu i możemy już się cieszyć kolejną funkcjonalnością.

Poprzez edycję ustawiamy typ przełącznika – Smoke detector.

FireShot Capture 5 - Domoticz - http___192.168.2.81_9090_#_LightSwitches.png

FireShot Capture 2 - Domoticz - http___192.168.2.81_9090_#_Dashboard.png

Aby przetestować czujnik naciskamy TEST.

Aby powrócić do stanu czuwania naciskamy /Resetuj w zakładce /Przełączniki.

Możemy również wykorzystać czujnik jako syrenę alarmową. Wystarczy napisać tylko proste zdarzenie. U mnie syrena włączy się, jeżeli temperatura wody w piecu przekroczy 80 st. C, co zapobiega jej zagotowaniu.

FireShot Capture 6 - Domoticz - http___192.168.2.81_9090_#_Events

Podsumowanie. Uważam, że wydatek kilkunastu złotych na czujnik dymu i uniwersalną syrenę alarmową to dobrze wydane pieniądze. Oczywiście należy pamiętać o koszcie RFLinka, ale jest to jednorazowy koszt, który będzie procentował w przyszłości.

Obsługa urządzeń 433,92MHz w Domoticzu poprzez RFLink Gateway.

IMG_20171106_145042-1.jpg

W ubiegłym tygodniu, po wielu tygodniach rozważań nad zasadnością tej inwestycji, zamówiłem RFLINK Geteway 433.920 MHZ w Nodo-Shop.nl. Nie ukrywam, że wdrożenie do mojego systemu obsługi urządzeń komunikujących się na częstotliwości 433 Mhz planowałem od dawna. Na początku próbowałem zmierzyć się z modułami do samodzielnego montażu np. RF Link Transmitter & Receiver Module Pair i programowaniem ich ( może jeszcze kiedyś do tego wrócę ) ale brak czasu bardzo opóźniał efekt finalny. W końcu zdecydowałem się na gotowe rozwiązanie i nie żałuje. Uważam, że koszt ok 40 Euro nie jest może mały, ale na pewno wydatek ten zaoszczędzi wiele czasu i nerwów. Idąc po najmniejszej linii oporu domówiłem również usługę lutowania ( koszt 5,5 Euro ) spodziewając się dostać gotowe urządzenie i nie zawiodłem się. 

Po tygodniu dotarła do mnie z Holandii paczka z gotowymi elementami. Pozostało tylko je złożyć, przykręcić antenę i podłączyć do Raspberry Pi.

Nie ukrywam, że spodziewałem się, że wszystko ruszy „od strzału” ale nie może być za łatwo.

Dodanie RFLINK Geteway do DOMOTICZA.

Nic prostszego. W /Ustawieniach dodajemy nowy sprzęt i w zakładce /Urządzenia powinniśmy zobaczyć nasze czujniki. U nie sprzęt został wykryty na porcie /dev/ttyACM0.  U Was może być inaczej.

Screenshot_20171112_164310.png

Ja do testów użyłem termometru do prostej stacji pogodowej AURIOL. Oczywiście coś jednak poszło nie tak. System znalazł i rozpoznał bramę RFLink ale to było na tyle. Urządzenia nie znalazł ( a powinien automatycznie je dodać ). W logach pojawiło się:

2017-11-12 11:17:33.237 RFLink: Using serial port: /dev/ttyACM0

Aktualizacja RFLink firmware (R48).

Po długich poszukiwaniach rozwiązania natknąłem się na informację, że przyczyną może być stary firmware RFLinka. Aktualizacja nie okazała się zbyt trudna.

  1. Ściągamy RFLink Loader. Program jest dla systemu Windows, ale nie bądźmy ortodoksyjni. W powyższym linku jest komplet plików.
  2. Podłączamy Arduino MEGA do komputera. Ja na co dzień nie korzystam z Windowsa, więc sprawa rozbiła się jeszcze o sterowniki. Dla pewności zainstalowałem  całe Arduino IDE ( a nuż się jeszcze przyda ). Po instalacji system wykrył i rozpoznał u mnie płytkę na porcie COM 08.
  3. Teraz w RFLink Loader wybieramy plik rflink.cpp.hex ( jest w paczce z linku powyżej razem zRFLink Loader) i aktualizujemy płytkę.
  4. Po zakończonym procesie podłączamy na nowo RFLinka do Raspberry Pi.

Ponowne dodanie RFLINK Geteway do DOMOTICZA.

Jeszcze raz dodajemy nowy sprzęt w Domoticzu. Teraz przy polu /TYPE powinniśmy zobaczyć numer wersji RFLINK Geteway USB Version: ( i tu numer aktualnej wersji systemu ). Świadczy to o tym że jesteśmy na dobrej drodze. 

Screenshot_20171112_171459.png

U mnie po jakimś czasie numer wersji zniknął ale urządzenie działa nadal.

W tej chwili RFLINK Geteway spróbuje wykryć uruchomione urządzenia komunikujące się w paśmie 433,92MHz. Na forach znalazłem informacje, że proces ten za pieszym razem może trwać nawet godzinę, ale u mnie termometr w zakładce / Urządzenia pojawił się w kilka sekund.

Screenshot_20171112_171901.png

Ciekawostką jest, że RFLINK Geteway sczytał jeszcze kilka innych urządzeń, ale wolałem nie drażnić sąsiada dodając jego gniazdka i stacje pogodową do swojego Domoticza.

Efekt końcowy.

Screenshot_20171112_172151.png

Screenshot_20171112_172218.png

Podsumowanie.

Uważam, że pomimo konieczności aktualizacji firmware ( przy takiej cenie jest to ewidentny minus ) urządzenie działa bardzo sprawnie i warte jest zakupu. Jest to na pewno alternatywa dla tańszych  rozwiązań do samodzielnego programowania. Wybór, na którą wersję się zdecydować, pozostawiam Wam.

Przycisk Xiaomi Wireless Switch w Domoticzu.

Znalezione obrazy dla zapytania Xiaomi Wireless Switch

Kolejny element inteligentnego domu od Xiaomi dotarł do mnie z Chin. Urządzenie to nic innego jak trzyfunkcyjny przełącznik służący do sterowania  kompatybilnym sprzętem podłączonym do centrali Gateway poprzez protokół ZigBee. Przełącznik ma trzy funkcje:

  • pojedynczy klik
  • podwójny klik
  • długie przytrzymanie

Po sparowaniu go z aplikacją MiHome ( analogicznie jak przy innych urządzeniach opisanych wcześniej ) postanowiłem dodać go do Domoticza.

Jeżeli nie dodaliśmy jeszcze bramy Gateway to robimy to jak poniżej. W przypadku gdy mamy już podłączone inne elementy systemu Xiaomi przełącznik doda się automatycznie do sekcji /Urządzenia.

Screenshot_20171022_120123.png

Screenshot_20171022_120427.png

Teraz należy ustawić odpowiednią akcję, która wykona się w momencie naciśnięcia przycisku. Przechodzimy do /Konfiguracja/ Więcej opcji/ Zdarzenia i budujemy przykładowy blok.

Screenshot_20171022_120640

Należy pamiętać o zaznaczeniu „Event active:”. U mnie był domyślnie wyłączony i trochę się namęczyłem zanim doszedłem dlaczego nie działa.

Screenshot_20171022_120706.png

Mój przycisk, po długim naciśnięciu włącza bojler. Oczywiście możemy przypisać trzy zdarzenia i sterować pojedynczym klikiem, podwójnym klikiem lub długim przytrzymaniem odpowiednio rozbudowując blok.

Ustawiamy typ przełącznika na /Selector

Screenshot_20171022_122617.png

Od teraz możemy wykorzystać dodatkowe trzy akcje przy użyciu jednego urządzenia.

YeeLight LED Bulb – inteligentne żarówki od Xiaomi w Domoticzu

Mój Domoticz powiększył się ostatnio o kolejne elementy. Jednym z nich są żarówki od Xiaomi – YeeLight LED Bulb. Aktualnie w wersji jednokolorowej, ponieważ paczka z wersją RGB zaginęła po drodze z Chin. Znalezione obrazy dla zapytania YeeLight LED Bulb

Integracja żarówek z systemem okazała się banalnie prosta. Wspomnieć należy, iż obsługa Xiaomi Getaway  awansowała w ostatnim wydaniu sytemu do wersji stabilnej. Oczekuje więc, że od tej pory ilość problemów powinna się zmniejszyć.

Podłączenie YeeLight LED Bulb.

Dodajemy Sprzęt i tyle. System powinien automatycznie wykryć żarówki.

FireShot Capture 006 - Domoticz - http___91.245.83.80_9090_#_Hardware

Znajdujemy je w Urządzeniach.

FireShot Capture 008 - Domoticz - http___91.245.83.80_9090_#_Devices

Jest jednak pewien mały problem. Kupiłem 2 żarówki jednak system wykrywa tylko jedną z nich. Nie umiem go zmusić aby dodał obie. W aplikacji MiHome wszystko działa jak należy.  W oficjalnym Wiki widać, że system obsługuje kilka żarówek. Jeżeli uda mi się to przeskoczyć dodam mały update postu.

Tak to wygląda na gotowo.

FireShot Capture 009 - Domoticz - http___91.245.83.80_9090_#_LightSwitches

PS.  Przypominam oczywiście o dodaniu najpierw żarówek do aplikacji MiHome. To pierwsza czynność przy podłączaniu wszystkich urządzeń Xiaomi.

Uwaga. Należy również ustawić w żarówkach tryb developerski. W wersji 3.0 aplikacji Yeelight nazywa się on „LAN control”. Ustawiamy do jak poniżej:

  1. Naciskamy żarówkę, której tryb chcemy przestawić i przechodzimy do ustawień ( prawy górny róg )

    2. Następnie naciskamy przycisk w prawym dolnym rogu, wybieramy „LAN control” i zmieniamy położenie przełącznika.

    Od tej chwili żarówki będą dostępne dla innych systemów sterowania.

Wzmacniacz HiFiBerry MiniAmp i Volumio – radio prawie idealne

68747470733a2f2f766f6c756d696f2e6f72672f77702d636f6e74656e742f75706c6f6164732f323031362f30322f566f6c756d696f5f6c6f676f5f4844323030302e6a7067

Wzmacniacz HiFiBerry MiniAmp klasy D 3W do Raspberry Pi 3/2/B+/A+/Zero kupiłem już kilka miesięcy temu. Znalazłem stare, niewykorzystywane głośniki od wieży SHARP i postanowiłem zrobić z tego internetowe radio na zbywającej mi malince. Oczywiście można użyć wyjścia mini Jack, ale pojawia się problem podłączenia pasywnych głośników i jakość dźwięku jest dosyć niska.  Nie chcąc inwestować w drogie nakładki typu Hat do Raspberry zdecydowałem się na najtańszy model ze wzmacniaczem. 

Jak zainstalować i skonfigurować  Volumnio pisałem tu. Problem pojawił się w momencie zmuszenia maliny aby wykorzystała wzmacniacz HiFiBerry MiniAmp. Okazało się, że Volumio w wersji powyżej 2.0 nie radzi sobie z softwarowym mikserem dźwięku. Po przejściu na wersje 1.5 było OK, ale nie po to jest nowa wersja, żeby cofać się do starszej. Po przekopaniu wielu wątków na forum jedyna rada była – „Czekać, prace trwają”. Co jakiś czas wypróbowywałem nowe wersje, ale problem nie był rozwiązany. Polegał na tym, iż system uruchamiał się z maksymalną głośnością i nie było możliwości jej regulacji. Od wersji  : VERSION: 2.285 RELEASE DATE: 07-10-2017 problem z dźwiękiem został naprawiony.

Konfiguracja odtwarzacza

Wpinamy nakładkę do Raspberry PI i podłączamy głośniki.

IMG_20171008_160916

Po uruchomieniu systemu, w Ustawieniach/ Opcje odtwarzania wybieramy Urządzanie Audio : HiFiBerry DAC. Ciekawostką jest, że wybór HiFiBerry Amp ( taką przecież kupiłem ) nie działa.

FireShot Capture 4 - Antyradio Warszaw_ - http___192.168.2.41_plugin_audio_interface-alsa_controller.png

Poniżej w opcjach głośności wybieramy.

FireShot Capture 5 - Antyradio Warszaw_ - http___192.168.2.41_plugin_audio_interface-alsa_controller.png

Po restarcie wszystko powinno na reszcie działać jak należy.

Monitoring wilgotności roślin doniczkowych przy pomocy Xiaomi Mi Plant Flowers Tester i DOMOTICZA.

Original-for-Xiaomi-Mi-Flora-Monitor-Digital-Plants-Grass-Flowers-Soil-Water-Light-Smart-Tester-Sensor

Jakiś czas temu skutecznie udało mi się zintegrować Xiaomi Mi Smart Home Gateway 2 z DOMOTICZEM. Zapraszam do lektury wpisu pod linkiem. W zamówionej paczce przyszedł także czujnik wilgotności gleby, natężenia światła, temperatury i przewodności elektrycznej gleby – Xiaomi Mi Plant Flowers Tester. Długo nie miałem zacięcia, aby się do nie go zabrać. Wynikało to głównie z tego powodu, iż czujnik komunikuje się przez Bluetooth Low Energy a na moim Rassberry Pi 2 nie był skonfigurowany Bluetooth. W końcu jednak podjąłem wyzwanie i zadanie okazało się w miarę proste w realizacji.

Na początku kilka słów o samym urządzeniu. Jest to tani czujnik Bluetooth Low Energy mierzący jak napisałem powyżej poziom wilgotności gleby, natężenia światła, temperatury i przewodności elektrycznej gleby w doniczce. Zasilany jest standardową baterią zegarkową 2032, która powinna wystarczyć na rok pracy przy ustawieniu codziennych odczytów. Znalazłem informacje, że na Raspberry Pi 3 powinien działać bez problemu, dla wersji Raspberry Pi 2 wszystko zależy od użytego adaptera. Zanim się napracujemy proponuje ( ja tak zrobiłem ) przeprowadzić instalacje na czystym Raspbianie i w trybie graficznym sprawdzić czy działa adapter Bluetooth i czy prawidłowo wykrywany jest czujnik. Poniżej pokaże jednak jak przeprowadzić instalacje krok, po kroku. Warto nie iść na skróty. U mnie ten sposób zadziałał bez żadnych problemów. Są dwa sposoby integracji czujnika – poprzez skrypt w Pythonie oraz serwer MQTT. Ja skorzystałem z pierwszego sposobu.

Przygotowanie DOMOTICZA.

Na początku tworzymy w DOMOTICZU 4 wirtualne ( dummy ) sensory.

  1. typ procent (wilgotność)
  2. typ temperatura
  3. typ natężenie światła
  4. typ custom sensor (przewodności elektrycznej gleby ), jednostka µs/cm

Screenshot_20170726_093240

Instalacja Bluetooth

Do obsługi czujnik potrzebujemy Bluez przynajmniej w wersji 5.3. Najlepiej jednak skompilować Bluez w wersji 5.44, które ma poprawione błędy z obsługą Bluetooth Low Energy. Brzmi groźnie ale poszło bez problemów. Na początku instalujemy zależności:

sudo apt-get install libglib2.0-dev libdbus-1-dev libical-dev libreadline-dev libudev-dev

Kompilujemy Bluez-5.44

cd /home/pi
wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.44.tar.gz
tar -xvf bluez-5.44.tar.gz
cd bluez-5.44
sudo ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-tools --disable-test --disable-systemd --enable-deprecated
sudo make all
sudo apt-get install python-bluez python-requests

Następnie kopiujemy Gatttool do odpowiedniego katalogu.

sudo cp attrib/gatttool /usr/bin/

U mnie ( na najnowszym Raspbianie ) do katalogu /usr/bin. Podobno, w zależności od dystrybucji może być konieczność skopiowania Gatttools do

sudo cp attrib/gatttool /usr/bin/

Wykonujemy restart.

Integracja czujnika z DOMOTICZEM przy pomocy skryptu Pythona.

Na wszelki wypadek sprawdzamy, czy mamy zainstalowanego git-a.

sudo apt-get install -y git-core

Pobieramy skrypt obsługujący czujnik i kopiujemy go do odpowiedniej lokalizacji.

cd ~ && git clone https://github.com/Tristan79/miflora.git
cp -R ~/miflora/ ~/domoticz/scripts/python/miflora

Pobieramy Python3 i  instalujemy wymagane biblioteki do obsługi Bluetooth.
sudo aptitude install python3 python3-pip
sudo pip3 install pygatt
sudo pip3 install requests

Znajdujemy MAC adres czujnika.

Uruchamiamy  Bluetooth LE wykonując po kolei

sudo tools/btmgmt le on
sudo tools/btmgmt connectable on
sudo tools/btmgmt power on

i skanujemy w poszukiwaniu urządzeń

sudo hciconfig hci0 down 
sudo hciconfig hci0 up
hciconfig
sudo hcitool lescan

efekt poniżej:

Screenshot_20170802_162228.png

Zapisujemy adres, który wykorzystamy do edycji pliku domoticz.py

Edytujemy skrypt domotic.py

Otwieramy pobrany wcześniej skrypt.

~/domoticz/scripts/python/miflora $ sudo nano domoticz.py

Edytujemy w dwóch miejscach ( wstawiamy swój adres DOMOTICZA i port ):

Screenshot_20170802_162846.png

oraz na samym końcu pliku:

Screenshot_20170802_162915.png

adres urządzenia zwrócony przez komendę sudo hcitool lescan oraz numery wirtualnych czujników DOMOTICZA utworzonych na poczatku.

Testujemy czy wszystko działa:

~/domoticz/scripts/python/miflora $ sudo python3 domoticz.py

Screenshot_20170802_163552.png

Efekt końcowy

Screenshot_20170802_163823.png

Ustawienie odczytów co 12 godzin

Producent obiecuje, iż przy odczytach co 12 godzin bateria wytrzyma przynajmniej rok. Sprawdźmy. Otwieramy Crona : sudo crontab -e i na koncu dodajemy wpis.

0 0,12 * * * /usr/bin/python3 /home/pi/domoticz/scripts/python/miflora/domoticz.py

Po restarcie możemy spać spokojnie. Kwiatki zawsze będą miały mokro. Miłej zabawy.

RaspberryPi jako emulator starych konsoli – RetroPie

Znalezione obrazy dla zapytania retropie

Nigdy nie byłem fanem gier komputerowych. Moja przygoda rozpoczęła się i zakończyła na Commodore 64. Nie mam jednak możliwości odświeżenia wspomnień, gdyż czas nie obszedł się zbyt łaskawie z tym sprzętem i nie dotrwał on do dzisiejszego dnia. Wspomnień czar można jednak przywrócić przy pomocy Raspberry Pi. Deszczowa majówka w pełni, więc chętnie sprawdzę czy jeszcze pamiętam gry z młodości.

Projekt RetroPie pozwala na przekształcenie Raspberry Pi ( lub urządzenia podobnej klasy ) w emulator oldskulowych konsoli. Lista obsługiwanych systemów, a co za tym idzie ilość dostępnych gier jest powalająca. Ich listę można znaleźć pod adresem https://github.com/RetroPie/RetroPie-Setup/wiki/Supported-Systems. Na pewno każdy znajdzie tu system, który z racji upływu czasu, darzy szczególnym sentymentem.

Instalacja systemu

RetroPie możemy zainstalować na Rasbianie lub wykorzystać gotowe obrazy systemu. Oczywiście proponuje na początku ta drugą wersję. Jako ciekawostkę dodam, iż jest możliwość instalacji RetroPie razem z Kodi, co tworzy potężny kombajn rozrywkowy z dostępem do multimediów i platform gier. Obraz systemu pobieramy tutaj. Wybieramy odpowiednią wersje i standardowo instalujemy na karcie SD. Jeżeli po uruchomieniu system wstanie w trybie konsoli a na górze zobaczymy komunikat Illegal Instruction oznacza, że pobraliśmy nie ten obraz lub ściągnął się lub wgrał z błędem. U mnie dopiero za drugim razem było OK.

Konfiguracja Pada

Jeżeli instalacja i pierwsze uruchomienie przebiegło bez błędów pierwsza czynnością będzie konfiguracja pada. Jeżeli posiadamy dedykowane kontrolery to po podłączeniu do portu USB system automatycznie je wykryje i umożliwi ich skonfigurowanie. Możemy użyć także klawiatury lub nawet telefonu z Androidem jako pad. Ja postanowiłem podejść do sprawy na poważnie, i z uwagi na to, iż moje kontrolery do C64 nie przetrwały próby czasu zainwestowałem w takie cudo. Uważam, że jest to dobrze wydane 11 zł ( wraz z przesyłką ).

Screenshot_20170504_203704.png

Proces konfiguracji pada jest bardzo intuicyjny. Naciskamy po kolei wszystkie klawisze i system je mapuje.

Ważne. Aby zakończyć proces mapowania przechodzimy na OK i zatwierdzamy tym przyciskiem, którego użyliśmy jako A.

Konfiguracja systemu

Po zakończeniu mapowania pada automatycznie przejdziemy do konfiguracji systemu.

Znalezione obrazy dla zapytania retropie

RetroPie automatycznie rozszerzy partycje, więc mamy to z głowy. W Raspi-config uruchamiamy obsługe SSH i to chyba tyle. Możemy w RetroPie Setup  zaktualizować system lub wgrać dodatkowe emulatory, ale o tym będzie poniżej. Ostatnia pozycja menu pozwala ustawić połączenie bezprzewodowe. Gdy już wszystko ustawimy pod siebie naciskamy B.

Instalacja gier

Po uruchomieniu czystej wersji RetroPie nie mamy zainstalowanej żadnej gry. Jak tego dokonać pokażę na przykładzie Pac-Mana na ATARI 7800 ( wersja łatwa ) oraz Street Fighter II na Commodore C64 ( wersja trudniejsza ). Oczywiście emulatorów i gier jest całe mnóstwo. Emulacja każdego sprzętu wymaga trochę zachodu, ale w tym cały urok.

Jeżeli mamy zarchiwizowane nasze stare gry możemy ich użyć. Jeżeli nie ich kopie możemy znaleźć w sieci.  Kopalnią romów jest http://coolrom.com. Wybieramy interesujący nas system i grę przy pomocy SSH  przenosimy do odpowiedniego folderu RetroPie.  Zastrzegam, iż nie analizowałem zapisów licencyjnych znajdujących się tam gier. Grę wykorzystałem wyłącznie do celów edukacyjnych.

  1. Pac-Man

Logujemy się do RertoPie przez SSH i przechodzimy do katalogu z ROMami dla Atari 2600:

$ cd RetroPie/roms/atari2600/

i tworzymy tam plik

touch Start.txt

Następnie do tego katalogu przekopiowujemy ( proponuje FileZille ) rozpakowany katalog z dana grą np. Ms. Pac-Man.

Po restarcie w meny zobaczymy pozycję Atari2600 a po wejściu w nią naszą grę.

Znalezione obrazy dla zapytania retroPie atari 7800

I tyle. Możemy już oddać się przyjemności grania w kultową pozycję.

Znalezione obrazy dla zapytania retroPie Ms. Pac-Man

2. Street Fighter II na Commodore C64

Tu sprawa jest trochę trudniejsza. Musimy wgrać odpowiedni emulator, gdyż RetroPie nie obsługuje gier na C64 na starcie. Wracamy więc do konfiguracji systemu i wybieramy RetroPie Setup. Naciskamy Basic install

Screenshot_20170508_202542

Następnie wybieramy rodzaj pakietów,

Screenshot_20170508_202612

i instalujemy emulator vice

Screenshot_20170508_202635

Nie ma znaczenia czy będziemy instalować binarna czy ze źródeł. Proces instalacji trochę trwa. Po jego zakończeniu wrzucamy grę do odpowiedniego katalogu, tak jak w przypadku ATARI, pamiętając aby w katalogu z romami założyć katalog c64 ( domyślnie go nie ma ). Restarujemy system i możemy z menu wybierać Commodore C64. Co ciekawe po uruchomieniu gry zobaczymy cały proces, który pamiętamy z obcowania z C64 ( od ekrany startowego, po słynne migające pasy pojawiające podczas instalacji gry )

geos

image

Gdy wszystko po dłuższej chwili przebiegnie pomyślnie naszym oczom ukaże się to na co czekaliśmy.

Znalezione obrazy dla zapytania street fighter 2 c64

Podsumowując, pomysł moim zdanie jest przedni. Zabawy nie ma końca. Ww wpisie pokazałem tylko dwa przykłady, jak uruchomić stare gry. zachęcam do wypróbowania innych systemów. Zawsze można pokazać dzieciom, w co grał tatuś w epoce przed Playstation.

Volumio – sieciowy odtwarzacz muzyki na Raspberry Pi

W sieci istnieje kilka projektów wykorzystujących Raspberry Pi jako platformę do stworzenie odtwarzacz muzyki. Te popularniejsze to:

  1. Volumio
  2. Pimusicbox
  3. Runeaudio
  4. Mopidy
  5. … i inne. Długą ich listę można znaleźć na stronie.

Z uwagi na to, iż w szufladzie mam już kilka zapasowych urządzeń postanowiłem zbudować sobie internetowe, poranne radio śniadaniowe. Przetestowałem wszystkie przytoczone powyżej systemy i mój wybór padł na VOLUMIO. Jest to subiektywna ocena i zachęcam wszystkich do przetestowania przynajmniej kilku z nich. Różnią się generalnie ilością dodatków, dostępem do serwisów, wyglądem GUI. Moje radyjko ma tylko podawać poranne wiadomości, tak więc dostęp do Spotify nie jest mi konieczny ( Volumio jednak go posiada ).

volumio-audiophile-music-player-ui

Na początku uwaga ogólna. Bardzo zależało mi na tym, aby był to system bezprzewodowy. Nie spodziewałem się problemów z obsługa kart WIFI, a jednak. Posiadam kartę TP-Link TL-WN821N, która odmówiła współpracy z VOLUMIO. Zajrzałem na stronę WIRELESS ADAPTER COMPATIBILITY LIST i wybrałem kompatybilna kartę Generic Ralink Technology, Corp. RT5370 Wireless Adapter, która powinna działać „out of the box”. Niestety. Po wielu próbach się poddałem. Wróciłem do sprawy z nową wersją VOLUMIO  ( VERSION: 2.118 ) i zadziałało od razu, dlatego dopiero teraz postanowiłem podzielić się wrażeniami.

Instalacja i pierwsze uruchomienie systemu.

Pobieramy obraz systemu dla Raspberry Pi i nagrywamy w standardowy sposób. Dla pewności proponuje pierwsze uruchomienie wykonać przy podłączonej sieci przez LAN. Logujemy się do systemu poprzez adres : http://volumio.local. Procesu uruchomienia wszystkich usług chwilę trwa, więc zalecam cierpliwość.

baa8d555-4576-4428-91f2-05279680ffc0.png

Następnie przechodzimy do stawień sieci. Jeżeli nasz adapter wifi ( chyba że mamy Raspberry Pi 3 ) został poprawnie wykryty logujemy się do swojej sieci, odłączamy LAN i robimy restart.

Możemy skorzystać z muzyki lokalnej, radia internetowego lub zainstalować dodatek Spotify. Możemy wybierać z obszernej bazy preinstalowanej listy stacji radiowych ( nie ma jednak wielu polskich ) lub dodać własne.

9bf8a434-4904-4bf6-9790-df60a561e2b6.png

Mając konto premiom Spotify możemy połączyć je z VOLUMIO.
8079d4a2-f3a1-4765-94f2-308e38a4c6f7.png
Pozostało podłączyć głośniki i cieszyć się radyjkiem. Jeżeli ktoś ma zacięcie audiofilskie to zachęcam do zapoznania się z oferta sklepu VOLUMIO, gdzie można kupić karty rozszerzeń ,za pomocą których, zdecydowanie poprawimy jakość dźwięku  i podłączymy Raspberry do profesjonalnych zestawów muzycznych.

Sterowanie systemem.

Oczywiście cała idea opiera się na zdalnym sterowaniu radyjkiem. Możemy to robić przez http://volumio.local lub poprzez aplikacje SOUND@HOME FOR VOLUMIO albo Audioward for Volumio2. Szczególnie polecam tą pierwszą, przy pomocy której możemy zbudować również system multiroom.

 W planie mam wpakowanie Raspberry Pi i głośnika w jakąś fajną obudowę, aby nie straszyło kablami na parapecie w kuchni.
dsc_0043.jpg
Zachęcam do testowania.