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 ?

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.