Integracja gniazdka współpracującego z Tuya Smart z Domoticzem

Swego czasu, za pośrednictwem sklepu houseiq.pl wpadła mi w ręce fajna wtyczka WIFI. Aż wstyd byłoby nie spróbować dodać jej do systemu. Sprawa na pierwszy rzut oka wydawała się prosta. Na forum Domoticza znalazłem skrypt, który obiecywał bezproblemowe podłączenie. U mnie jednak nie było tak różowo. Po wielu bojach udało mi się dodać gniazdko do Domoticza, jednakże skrypt nie obsługiwał monitoringu zużycia prądu, a o to głównie chodziło. Ponadto są duże problemy z biblotekami Pythona i ścieżkami ( jeżeli ktoś, tak ja, ma system nie na Raspberry Pi tylko np. w dockerze ). Dla chcących spróbować link do skryptu jest tutaj. Po konsultacji z programistą ze sklepu otrzymałem skrypt wyciągający dane o zużyciu prądu. Dało się to złożyć do kupy ale pracy było przy tym dość sporo.

Próbowałem dalej. Jako, że gniazdko zbudowane jest w oparciu o esp8266, kolejnym pomysłem była Tasmota. Instrukcja flashowania jest tu.  Rozkręciłem wtyczkę, namierzyłem piny, ale próba dostania się do nich skończyła się tak.

IMG-20190205-WA0001.jpg

Niestety piny są zalutowane, wyjęcie gniazdka z obudowy to koszmar a podejście z lutownicą jest bardzo słabe. Czyli na razie 2:0 dla gniazdka. Ale nie ma co się poddawać.

Kolejne odkrycie to TuyOTA czyli wgranie Tasmoty do urządzeń pracujących pod kontrola Tuya  bezpośrednio poprzez WIFI. Nie trzeba rozbierać gniazdka, lutować, pisać karkołomnych pluginów i skryptów. I tu, uprzedzając fakty, pełen sukces. Działa jak złoto, ale po kolei.

Testowe podłączenie zrobiłem na Rasberry Pi  z najnowszym Raspbianem. Na Ubuntu brakowało zależności, ale po aktualizacji też poszło jak należy.

Na początku dodajemy gniazdko do aplikacji np. SmartLife i sprawdzamy jakie ma IP. Następnie instalujemy pakiet hostapad

sudo apt install hostapd

I dalej. Na końcu pliku dhcpcd.conf wstawiamy denyinterfaces wlan0. Możemy użyć komendy jak poniżej.

sudo sed -i '3idenyinterfaces wlan0' /etc/dhcpcd.conf

Sprawdzamy.

head -3 /etc/dhcpcd.conf

I powinno być jak poniżej.

pi@raspberrypi:~ $ head -3 /etc/dhcpcd.conf
# A sample configuration for dhcpcd.
# See dhcpcd.conf(5) for details.
denyinterfaces wlan0

Teraz zatrzymujemy wpa_supplicant, restartujemy dhcpcd i ponownie zatrzymujemy wpa_supplicant. Jest to niezbędne do nadpisania ustawień.

ps -fu root | grep wpa_supplicant
sudo systemctl restart dhcpcd
ps -fu root | grep wpa_supplicant

I teraz już z górki. Dodajemy repozytorium.

git clone https://github.com/SynAckFin/TuyOTA

Przechodzimy do katalogu /TuyOTA i wydajemy polecenie, gdzie podajemy IP naszego gniazdka, MyHomeNet to nasza sieć WIFI a MySecret to hasło do niej.

sudo ./tuyota.pl -ip 192.168.xx.xx -s MyHomeNet -p MySecret

I tyle. Trochę to potrwa, czasami proces zatrzyma się na dłużej lub wyrzuci ostrzeżenia. Skrypt sam pobierze niezbędne pliki, ustawi Access Pointa i wgra Tasmotę. Jeżeli coś pójdzie nie tak, proponuje się nie zrażać, tylko puścić skrypt od nowa. Zacznie tam gdzie skończył i spróbuje dokończyć instalację. U mnie poszło za drugim razem. Na stronie projektu w szczegółach wyjaśniono co po kolei robi skrypt. Warto rzucić okiem w razie problemów.

Jeżeli wszystko poszło bez błędów dalej postępujemy tak jak we wpisie Sonoff POW R2 – Tasmota i Domoticz. Jedyna zmiana to wybór odpowiedniego urządzenia. Dla wtyczki TUYA najlepiej wybrać BlitzWolf SHP2 Module.

 

 

W Domoticzu efekt jest taki.

FireShot Capture 51 - Domoticz - http___192.168.2.101_9009_#_Dashboard.png

FireShot Capture 53 - Domoticz - http___192.168.2.101_9009_#_Dashboard.png

Podsumowując. Pomimo tego, że na pierwszy rzut oka sprawa wygląda na skomplikowaną to po wydaniu kilku komend mamy w pełni zintegrowana wtyczkę.  Powodzenia.

PS. Zauważyłem, że w ofercie jest też gniazdko podwójne, bez pomiaru prądu. Powinno dać się zintegrować tym sposobem, ale próby jeszcze przede mną. Ponadto do wyboru są gniazdka 10A i 16A , z tzw „bolcem” o bez. Może ktoś się zmierzy ?

Reklamy

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.

Przełącznik Blue50 w Domoticzu.

Dzięki uprzejmości sklepu houseiq otrzymałem do przetestowania ciekawy przełącznik marki Blue50. Urządzenie to posiada wszystkie zalety sytemu Sonoff i jest z nim w 100 % kompatybilne, zapewniając kompaktowe gabaryty i równie łatwą integrację z Domoticzem. Wymiary urządzenia 7.6*5.2*2.4 cm. Do wyboru mamy różne wersje maksymalnego natężenia prądu – od 10A do nawet 30A. Możemy wybrać też model z dodatkowa obsługą  RF 433 MHz. Przełącznik wyposażony jest w skręcane śrubą złącza, diodę stanu oraz przycisk sterowania/resetowania/ustawiania. Podłączenie urządzenia jest banalnie proste.

 

Możemy tym przełącznikiem sterować przy pomocy dedykowanej do Sonoff aplikacji eWelink, jednak  można też wgrać inne oprogramowanie lecz nie jest to takie proste jak w przypadku SonoffPOW. Polecam zamówić urządzenie z wgraną np. Tasmotą aby dodać je do Domoticza. Usługą taka można zamówić od ręki w houseiq Jakby ktoś chciał spróbować samodzielnego falshowania, wygląda to mniej więcej tak.

image001

Tasmotę konfigurujemy w standardowy sposób ( jak tu ). Wybieramy Sonoff Basic i cieszymy kolejnym urządzeniem w systemie.

Programowanie przełączników Sonoff POW

Z uwagi na to, iż coraz częściej dostaje pytania jak wgrać alternatywne oprogramowanie do Sonoff POW, postanowiłem opisać to w jednym miejscu jako przewodnik, oraz ściągę dla siebie na przyszłość. Sprawa jest bardzo łatwa, jednakże zawsze przychodzi chwila zawahania, który kolor kabelka, do którego podłączyć pinu. Oczywiście można zamówić gotowy produkt, z wgranym już wybranym oprogramowaniem np. w sklepie https://www.houseiq.pl , z którym od jakiegoś czasu współpracuje testując różne zabawki. Dla tych, którzy nie chcą iść na na łatwiznę powstał poniższy tekst.

Na początku powstaje problem wybory odpowiedniego programatora. Wersji i możliwości jest kilka. Ja przetestowałem dwa urządzenia:

Znalezione obrazy dla zapytania CP2102

Oba działają bez zarzutu. HW-417-V1.2 oprócz kabelków wymaga także przejściówki mini USB. Poza tym proces flashowania jest taki sam dla obu urządzeń. W instrukcji skupię się na tym pierwszym.

Podłączamy kabelki go odpowiednich pinów. Wykorzystujemy 4 z nich: 5V ( VCC), GND, RX, TX.

Znalezione obrazy dla zapytania hw-417 pin

Analogicznie podpinamy piny do Sonoff POW jak na obrazkach poniżej.

IMG_20181202_105734.jpg

 

W przypadku Sonoff POW nie ma konieczności lutowania. Piny są otwarte. Wystarczy włożyć do nich przewody i podczas wgrywania softu lekko pochylić na zewnątrz aby być pewnym, że dobrze przylegają do krawędzi.

Pobieramy i instalujemy oprogramowanie. Ja stosuje:

Obsługa SonoffPOW w ESPEasy jest jak na razie w wersji eksperymentalnej i sprawia trochę problemów, zwłaszcza z prawidłowym stworzeniem RULES.

Oprogramowanie wgrywam esptool.py.  Tak w Linuxie jak i w Windowsie powinniśmy mieć zainstalowanego Pythona w wersji Python 2.7 lub Python 3.4 lub nowszej. W aktualnych dystrybucjach Linuxa jest już Python w wymaganej wersji, dla Windowsa możemy ściągnąć go  z tej strony. U mnie w najnowszym Mincie:

$ python3 –version
Python 3.6.6

Ostatnią wersję esptool.py można zainstalować poprzez pip ( dla Linuxa wydajemy polecenia w Terminalu dla Windowsa w Powershell-u, w katalogu gdzie zainstalowaliśmy esptools:

$ sudo pip install esptool

W razie trudności może pomóc:

$ sudo python -m pip install esptool 

$ sudo pip2 install esptool

Po zainstalowaniu esptool, przechodzimy do odpowiedniego katalogu ( u mnie linuxie ~/.local/bin ) i wydajemy polecenie, gdzie /dev/ttyUSB0  to port pod który podpięty jest programator a sonoff-PL.bin to ściągnięta binarka najnowszej Tasmoty.

$ sudo python esptool.py -p /dev/ttyUSB0 write_flash 0x000000 „sonoff-PL.bin”

Jeżeli prawidłowo podpięliśmy kabelki, pochylamy je na zewnątrz i wciskamy biały przycisk aby przestawić urządzenie w tryb flashowania. Wymaga to trochę wprawy ale da się zrobić jedna ręką. Następnie podłączamy programator do portu USB, wydajemy jedno z powyższych poleceń i już. Jeżeli widzimy tak jak poniżej to mamy wgrany wybrany soft.

Zrzut ekranu z 2018-12-02 12-54-23

Odpinamy urządzenie od komputera. Podłączamy do prądu i konfigurujemy Tasomotę. Jak to zrobić opisywałem tu.

Jak flashować, podłączyć i obsłużyć przełączniki Shelly1 w Domoticzu.

Od jakiegoś czasu przełączniki Shelly cieszą się coraz większą popularnością. Na pewno nie bez znaczenia jest ich atrakcyjna cena ( aktualnie 9,90 Euro za wersję 1 ) oraz obietnica i nadzieja, że będą działały w Domoticzu czy HomeAssistant. W portfolio firmy są również przełączniki w wersji 2 obsługujące dodatkowo pomiar zużycia energii ( wersja 1 nie ma tej funkcjonalności ), ale ich cena ( choć nadal atrakcyjna ) to 19.90 Euro plus niewielkie koszty przesyłki. Do testów kupiłem wersję 1 i na niej się skupię.

Od razu zaznaczam, iż nie testowałem oryginalnego oprogramowania Shelly. Staram, się mieć wszystko w jednym Domoticzu, więc przeszedłem od razu do sedna. Sam proces flashowania jest oficjalnie wspierany. Niezbędne informacje można znaleźć na oficjalnej stronie.

shelly1_pinout-800x433.jpg

Zgodnie z zawartą tam informacją wewnątrz urządzenia znajduje się  2 megabajtowy ESP8266. Do całej procedury potrzebujemy adapter USB-UART ( ja wykorzystałem standardowy CP2102 ), płytkę stykową i garść przewodów. Bardzo przydatną informacją jest, że do flashowania nie musimy rozbierać urządzenia. Niezbędne piny wyprowadzone są na zewnątrz obudowy. Aby nie mordować się z podłączeniem proponuje skorzystać ze schematu, który znalazłem w sieci.

shellyuart.jpg

W momencie podania zasilania na urządzenie ( podłączenia adaptera do portu USB ) pin GPIO 0 i GND musza być zwarte ( stąd pomarańczowy mostek ). Pozostałe wyjścia podłączamy zgodnie ze schematem. Pamiętajmy o krzyżowym podłączeniu TX i RX.

Jako soft alternatywny wybrałem Tasmotę. Nic nie stoi na przeszkodzie aby użyć ESPEasy. Działa również doskonale. Jeżeli będą pytania w komentarzach chętnie pomogę, lub uaktualnię posta. Mam na razie jedno urządzenie i jest już w puszcze pod włącznikiem światła, więc musiałem się na coś zdecydować. Ściągamy więc aktualna wersję Tasmota. Do falshowania użyłem esptool. Dla odmiany poszedłem w konsolę i był to strzał w dziesiątkę. Wszystko poszło od strzału. Na początku instalujemy narzędzie:

sudo pip install esptool

U mnie na Ubuntu zainstalowało się w katalogu domowym w loklalizacji /.local/bin. Przechodzimy do rzeczonego katalogu. Przenosimy tam plik z oprogramowaniem sonoff-PL.bin i wydajemy polecenie:

sudo python esptool.py -p /dev/ttyUSB0 write_flash 0x000000 „sonoff-PL.bin”

I tyle. Jeżeli urządzenie zostało rozpoznane na porcie /dev/ttyUSB0 ( a mnie dzieje się tak w 100 % ) proces flashowania przebiega bez zakłóceń. Z jednym małym zastrzeżeniem. Shelly1 nie zadziała prawidłowo. Nie będziemy mieli możliwości sterowania nim przy pomocy włącznika światła, jedynie poprzez Domoticza. Tak być nie może. Okazuje się, że przyczyną takiego stanu rzeczy jest nieprawidłowe ustawienie stanu wysokiego na wyjściu SW. Nie wdając się w szczegóły, aby uruchomić przełącznik, należy edytować plik sonoff.ino i  użyć „input” pinmode zamiast „input_pullup” i przeprogramować oprogramowanie układowe. Brzmi trochę trudno, ale autor bloga TheHookUp na szczęście udostępnił zaktualizowaną binarkę. Najnowsze ESPEasy_mega ma możliwość zmiany tych ustawień z poziomu interface, ale nie zostało to przeze mnie przetestowane. Pobieramy więc zaktualizowaną wersję. Wydajemy jeszcze raz komendę:

sudo python esptool.py -p /dev/ttyUSB0 write_flash 0x000000 „shelly1tasmota.bin”

i mamy wgrana odpowiednią wersję Tasmoty. Przełącznik podpinamy do włącznika zgodnie ze schematem z oryginalnej instrukcji lub dla takich elektryków jak ja z drugiego schematu. Jeszcze raz dziękuję autorowi przytoczonego wcześniej bloga.

 

Następnie konfigurujemy Tasmotę. Logujemy się standardowo do naszej sieci jak było opisane w poście o Sonoff POW2. Ustawiamy odpowiednie wartości. Najważniejsza jest konfiguracja modułu.

FireShot Capture 20 - Sonoff - Configure Module - http___192.168.2.74_md_.png

oraz ustawienia MQTT ( odsyłam jeszcze raz do posta ). W Domoticz konfigurujemy ( jeżeli jeszcze nie mamy)  broker Mosquitto i zakładamy standardowy przełącznik. Zapamietujemy jego idx. Po tym ustawiamy MQTT.

FireShot Capture 21 - Sonoff - Configure MQTT - http___192.168.2.74_mq_.png

oraz integracje z Domoticzem w Tasmocie.

FireShot Capture 22 - Sonoff - Configure Domoticz - http___192.168.2.74_dm_.png

I tyle. Mamy obsługę Shelly 1 poprzez klawisz na ścianie i przełącznik w Domoticzu.

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

Z uwagi na małe rozmiary Shelly wciśnięcie go do puszki jest bardzo łatwe choć tak nie wygląda. Oczywiście instalacja elektryczna musi mieć przewód neutralny N.

IMG_20181031_170714.jpg

Reasumując, jestem bardzo zadowolony z Shelly. Na razie nie potrzebuje monitoringu prądu więc zostanę przy wersji 1. W drodze są już kolejne. Przy tej cenie dodanie ich pod wszystkie włączniki światła w domu nie jest już tak dramatycznym wydatkiem.

PS. Jako, że na boku, od jakiegoś czasu dłubię też w Home Assistant, w którymś z kolejnych postów piszę jak się Shelly 1 sprawuje ( włącznie z innymi sonoffami ) w HA.

 

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