Gniazdka Blitzwolf – wgrywamy Tasmota za pomocą Tuya Convert

Usssssss… Powitać… To były ciężkie dwa dni. Mentalnie, bo miałem dużo myślenia przez pierdołę… Ale po kolei…
Z serwisu BuyMeACoffee dostałem dwie wpłaty od czytelników (za co bardzo dziękuję), od razu więc kupiłem dwie wtyczki WiFi Blitzwolf BW-SHP6 z pomiarem energii. Od razu rzuca się w oczy mały rozmiar w stosunku do wtyczek na przykład Sonoff oraz innych na 433MHz – niezmiernie mnie w nich drażniło to, że zajmują dwa miejsca w gniazdku, przez co podwójne stawało się pojedyncze.
Te są małe, śliczne, kolorowo mrugają i komunikują się po WiFi – fantastycznie.
Jest oczywiście aplikacja firmowa Blitzwolf, ale kto by na nią patrzył… Zresztą – lepiej jej nie używać aby nie zaktualizować firmware, które może już wykluczyć Tuya-convert, którego użyłem do wgrania alternatywnego oprogramowania Tasmota.
Zasada jest taka – aktualnie praktycznie każde urządzenie aktualizuje oprogramowanie przez OTA (Over-The-Air programming). Wtyczki również. Tak samo jak czajniki, żarówki, oczyszczacze, itp. Takich czasów dożyliśmy. Kontaktują się serwerami tu i tam (przeważnie 'tam', czyli w Chinach) wysyłając i odbierając dane. Cały trik polega na tym, aby zasymulować taki serwer i wgrać swoje oprogramowanie. Do tego przyda nam się Tuya-Convert, która umożliwia wgrania na przykład Tasmota.
Potrzebować będziemy:
– jakiekolwiek Raspberry Pi z WiFi na pokładzie lub donglem USB WiFi (albo podobne urządzenie na którym możemy uruchomić Tuya-Convert). U mnie zawsze wala się gdzieś wolna Malina
– urządzenie, które podłączymy do naszego 'serwera' – na przykład telefon
– urządzenie, które chcemy przeprogramować – tu gniazdko SHP6
Zacząłem od instalacji Raspberry Pi OS (wcześniej Raspbian) – https://www.raspberrypi.org/downloads/raspberry-pi-os/ – wystarczy wersja Lite. Szybki flash karty SD (używając balenaEtcher lub Win32DiskImager), wrzucenie pustego pliku ssh na partycję boot (od razu przez ssh będziemy pracować, monitor nam nie jest potrzebny, ale oczywiście wedle gustu) i jesteśmy gotowi do rozpoczęcia prac.
WAŻNE jeżeli pracujemy przez ssh – Raspberry musi być podłączone po kablu, dlatego że Tuya-Convert stworzy hot-spot WiFi do którego podłączy się gniazdko, ergo – stracilibyśmy połączenie z naszym terminalem.
Polecam przestudiować stronę projektu: https://github.com/ct-Open-Source/tuya-convert
Komendy po kolei to:
– aktualizacja repozytorium i instalacja git
– pobranie kodu tuya-convert
– instalacja niezbędnego oprogramowania (dość długa)
– flash!
sudo apt-get update && sudo apt-get install git
git clone https://github.com/ct-Open-Source/tuya-convert
cd tuya-convert
./install_prereq.sh
 
./start_flash.sh
Na początku wytłumaczenie zasady działania oraz informacje o bezpieczeństwie.
Zamykanie używanych portów, w kolejnym kroku musimy:
– podłączyć na przykład telefon do sieci vtrust-flash (taką stworzy Raspberry Pi)
– wprowadzić urządzenie w tryb parowania – w gniazdku trzeba przytrzymać włącznik przez kilka sekund aż zacznie migać
Po poprawnym połączeniu mamy pytanie co chcemy wgrać, tutaj wybór pomiędzy powrotem do oryginalnego softu, espurna lub tasmota. Ja wgrywam tasmota.bin.
Kilka chwil, tadam!
Na laptopie podłączam się do wykrytego hot-spot tasmota.
Pod adresem 192.168.4.1 będzie już nasze nowe oprogramowanie 🙂 Podajemy naszą nazwę połączenie WiFi oraz hasło.
Po zmianie (jeżeli mamy włączone DHCP na routerze) adres zostanie przyznany automatycznie. Ja używam Advanced IP Scanner aby znaleźć adres IP nowego gniazdka.
Po połączeniu możemy zabrać się za konfigurację. Na początku mamy po prostu Generic Module, podstawowy.
Configuration -> Configure Module i zmieniamy na BlitzWolf SHP.
Możemy już włączyć i wyłączyć gniazdko. Pierwszy sukces.
I teraz ciekawostka. Jako że towar pochodzi z Chin, to bardzo często praktycznie te same wtyczki, gniazdka, czujniki są 'brandowane' różnymi firmami. Podstawa jest ta sama, różni się czasem szczegółami. Z tego to oto powodu pojawiły się Template – czyli pewne 'sposoby' wykorzystania GPIO (General Purpose Input/Output) w sprzętach różnych firm.
Dla mnie ważne było: https://templates.blakadder.com/blitzwolf_SHP6-15A.html. Ważne, bo na przykład dla gniazdka 10A jest inny template 😉
TERAZ WAŻNY MOMENT, który mnie wstrzymał na dwa dni :/ To, że podałem template NIE ZNACZY wcale, że on już działa. Teraz musimy wejść w Configuration -> Configure Other i ZAZNACZYĆ Activate. Bez tego przed dwa dni mogłem sterować gniazdkiem, ale nie miałem podanych odczytów poboru mocy i innych.
Taki template można również wpisać ręcznie pobierając go ze strony podanej wyżej – https://templates.blakadder.com/blitzwolf_SHP6-15A.html
Sprawa następna. Kalibracja. Na wymienionej stronie podany jest również link to kalibracji gniazdka, ponieważ czasem odczyty mogą się różnić po zakupie. Jak? Podłączyć coś, co ma stałe, pewne obciążenie. Ja kupiłem żarówkę 60 Watt i podłączyłem do gniazdka. Z tego co wiem nie warto stosować LEDów i ECO żarówek – mają zbyt mały pobór mocy aby miało to sens. A żarówka i tak mi się przydaje na strychu.
W konsoli wpisujemy PowerSet wartość i VoltageSet wartość.
Jak widzicie domyślnie załadowana jest dość stara wersja Tasmota – 8.1.0.2. Warto zaktualizować. Jak? Zawsze świeże są na stronie projektu: https://github.com/arendst/Tasmota/releases/
Trzeba sobie uświadomić, że gniazdka mają ograniczoną pojemność i muszą podczas aktualizacji przechować wersję aktualną softu, ponieważ w przypadku błędu ładowania nowego muszą ją podmienić, aby nie 'uceglić' sprzętu. Dlatego zaczynamy od ładowania tasmota-lite.bin (mała, kompaktowa wersja), a dopiero później tasmota.bin/
Jeżeli wybierzemy od razu tasmota.bin wystąpi błąd.
Najpierw Minimal,
Później główna tasmota.
Gotowe.
W kolejnym kroku zajmiemy się automatyzacją i powiadomieniami na przykład w zmywarce czy pralce.
Aktualizacja. Odpowiadając na pytanie czytelnika: Aby wyłączyć czerwone światło LED wystarczy zmienić Template z:
na:

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

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://blog.asobczak.pl/2018/08/12/sonoff-pow-zmieniamy-oprogramowanie-na-alternatywne-i-przy-okazji-przekonujemy-sie-ze-warto-byc-upartym/, jedyne co mi przyszło do głowy przy tej operacji to fakt, że nawet nie wiem jak wygląda oryginalne oprogramowanie w Sonoff 😀

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

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.

Nowe gadżety do okiełznania ! Sonoff POW, Sonoff S26, OLED

Urlop chwilę trwał. A podczas niego poczta nie próżnowała! Możecie się wkrótce spodziewać opisów następujących urządzeń:

– czujniki odległości
– Geekcreit NodeMcu Lua ESP8266
– Geekcreit OLED 0.96 cala, rozdzielczość 128 x 64 pixele

– nowe gniazdka Sonoff  S26

– Sonoff POW V1

Czeka mnie lutowanie, flashowanie, wgrywanie, kasowanie, testowanie, sprawdzanie. Czyli to, co tygrysy lubią najbardziej 😀

Tasmota i MQTT w Domoticz

Dzień dobry. A może dobry wieczór?

W jednym z poprzednich wpisów opisałem sposób załadowania alternatywnego (albo głównego – zależy od podejścia) oprogramowania do sprzętów Sonoff. Piszę sprzętów, ponieważ ich oferta jest dość bogata i stale się powiększa. Sonoff Basic, Sonoff TH (z termometrem), Sonoff Pow (z pomiarem energii), Sonoff G1 (z miejscem na kartę SIM, dla kontaktu w miejscach bez WiFi), gniazda Sonoff S20, Sonoff Touch (naścienne włączniki zdalne), sterowane uchwyty do żarówek – 'żyć, nie umierać', jak to mówią.

Do roboty!

Po pierwsze, jak zawsze, aktualizujmy nasz system. Ja ciągle opieram się na raspbian Jessie, w tym przypadku różnic jednak nie powinno być.

sudo apt-get update
sudo apt-get upgrade

I teraz chwila wstępu. Czym jest MQTT i czemu jest używany? Cytując Wikipedię : 'oparty o wzorzec publikacja/subskrypcja, ekstremalnie prosty, lekki protokół transmisji danych. Przeznaczony jest do transmisji dla urządzeń niewymagających dużej przepustowości. Poprzez ograniczenie prędkości transmisji, protokół zapewnia większą niezawodność. Protokół ten idealnie sprawdza się przy połączeniach maszyna-maszyna, w internecie rzeczy (IoT), w urządzeniach mobilnych, oraz tam, gdzie wymagana jest oszczędność przepustowości, oraz energii.'

Tasmota korzysta akurat z MQTT.

Czyli jest serwis, który nasłuchuje, oczekuje i wysyła pewne komunikaty. W Domoticz obsługa tego protokołu jest zaimplementowana w szczątkowy sposób, ale jest. Jeżeli chcielibyśmy z niego korzystać w większym stopniu, musimy się przygotować do przejścia na Home Assistant.

Przystępujemy do instalacji Mosquitto, najpopularniejszego brokera na Raspberry Pi.

sudo apt-get install mosquitto mosquitto-clients

W sumie tyle – już działa 🙂
Wystarczy skonfigurować użytkownika, nadać mu hasło za pomocą komendy:
sudo mosquitto_passwd -c /etc/mosquitto/passwd [username]
I możemy 'podsłuchiwać' co się dzieje na naszym kanale.
Komenda która podsłucha wszystkie kanały to:
mosquitto_sub -h localhost -t „#” -u „username” -P „password” -v
’#' Oznacza wszystkie w tym przypadku.
Przy okazji – ponownie podziękowania dla Macieja za pomoc przy ogarnięciu tematu.
Jak widać – komunikaty już sobie 'latają'. Obrazek trochę wyprzedza późniejszą konfigurację – bez skonfigurowania MQTT na Sonoff żaden komunikat oczywiście nie zostanie wysłany…
Skonfigurujmy Domoticz, aby obsługiwał MQTT.
Zaczynamy od Hardware, dodajemy 'MQTT Client Gateway with LAN interface', podając tam dane brokera MQTT. Podajemy IP, port (domyślnie 1883), wcześniej założonego użytkownika i hasło. Publish Topic zostawiamy na Out.
Następnie tworzymy Virtual Switch i zapamiętujemy jego IDX.
Jak widać, Domoticz już wysyła komunikaty:
Teraz skupimy się na naszym włączniku Sonoff i wgranym sofcie Tasmota.
Wchodzimy, przez stronę, w konfigurację i wybieramy Configure MQTT.

Podajemy nasze parametry MQTT.

Następnie Configure Domoticz i w Idx 1 podajemy IDX naszego Switcha. Jeżeli macie inne wersje Sonoff (z termometrem, licznikiem zużycia energii, itp.) musicie podać Wasze IDX odpowiednich czujników w Domoticz.

Po zapisaniu od razu można użyć przełącznika w Domoticz, będzie współpracował z MQTT.
Mission accomplished!
Ku pamięci (bardziej mojej). Można stworzyć pliki konfiguracyjne, jeżeli ich potrzebujecie.
sudo nano /etc/mosquitto/conf.d/mosquitto.conf

I kopiujemy:

# Config file for mosquitto
#
# See mosquitto.conf(5) for more information.

user mosquitto
max_queued_messages 200
message_size_limit 0
allow_zero_length_clientid true
allow_duplicate_messages false

listener 1883
autosave_interval 900
autosave_on_changes false
persistence true
persistence_file mosquitto.db
allow_anonymous true
password_file /etc/mosquitto/passwd

Gniazdko Sonoff S20 i Tasmota – na dzień dobry rozwiązanie problemu

Blogowanie ma wiele plusów. Raz, że można przelać własne myśli na 'papier', a dwa – poznaje się fajnych i ambitnych ludzi. I jedna taka osoba (Maciej – Ty wiesz ;)) zmotywowała mnie do wypróbowania innego softu do ESP8266, który jest wykorzystywany w urządzeniach firmy Sonoff. Czy to Sonoff Basic, czy też Sonoff S20. Wcześniej opierałem się głównie na na ESPEasy, teraz Maciej zasugerował Tasmota. To będzie również przyczynkiem do skonfigurowania i zapoznania się z MQTT, który – było nie było – jest standardem w IoT.
UWAGA. Jak się sam na swojej skórze przekonałem – są różne gniazdka dedykowane na Europę. W Polsce trzeba wybrać typ https://www.worldstandards.eu/electricity/plugs-and-sockets/e/. Ja, żeby było zabawniej i niezbyt prosto – kupiłem oczywiście wersję F – czyli wtyczka nie pasuje do gniazdek z bolcem. Cóż… Człowiek się czasem uczy na własnych błędach…

Gniazdko jakie jest – każdy widzi. Tutaj wielkich różnic nie ma w stosunku do gniazdek na RF lub Xiaomi. No, Xiaomi jest mniejsze, ale wymaga przejściówki.

UWAGA 2! Dużo ważniejsza niż poprzednio. Gniazdko pracuje na 230 Volt. Czyli, przy nieodpowiedniej pracy można zginąć albo spalić na ten przykład mieszkanie. Zalecam daleko idącą ostrożność, obserwowanie działania i zachowania – czy zbytnio się nie grzeje, czy nie ma przebić, źle dokręconych lub dolutowanych kabli.

Po rozkręceniu, w lewym dolnym rogu, widać cztery otwory. Teoretycznie wypadałoby tam wlutować piny. Ale akurat w przypadku tego gniazdka nie ma takiej potrzeby. Przy odrobinie sprytu można przeprogramować układ samemu.

Najnowsza wersja Tasmota zawsze pod adresem: https://github.com/arendst/Sonoff-Tasmota/releases. Pobieramy i przygotowujemy się do programowania. Ja napisałem krótki skrypt, wykorzystałem esptool z ESPEasy. Jest nawet polska wersja Tasmota (wtedy musicie zmienić nazwę z sonoff.bin na Waszą, albo odwrotnie ;)).

Połączenia pinów to (w Sonoff S20 liczę od żółtego elementu. Wstyd się przyznać, ale nie wiem co to…):
RXI -> 2
TX0 -> 3
VCC -> 4
GND -> 1

Czyli jakby 'odwrotnie' do tego co jest w Sonoff Basic.

I teraz wymagana odrobina zręczności pawiana. Prawą ręką przytrzymujemy kable oraz wciskamy przycisk. Po podłączeniu programatora to on wprowadzi ESP w tryb programowania. Gdy zaświeci się niebieskie światło – możemy puścić przycisk. Moje kable działają nawet jeżeli ich nie trzymam…

Uruchamiamy nasz przygotowany skrypt. Programowanie przebiega identycznie jak w przypadku ESPEasy.
I teraz kolejny problem. Wgrałem. Drżącymi ręcami włożyłem do przedłużacza. No, jak już znalazłem taki bez bolca…
I nic. Zamrugał na zielono i tyle. Standardowego Access Pointa ani widu, ani słychu. Tyle, że wiedziałem, że dobrze wgrałem, ponieważ przycisk działał, a to znaczyło, że Tasmota od razu zamapowała sobie GPIO. Ogromny plus. Dla przypomnienia, w ESPEasy i Sonoff Basic – musieliśmy pisać kod w Rules, aby obsłużyć GPIO. Tutaj zasada jest taka sama – w przypadku ESPEasy musielibyśmy tak zrobić. Tasmota obsługuje ten przypadek 'od strzału'.
’Spaliłem WiFi' – pomyślałem. 
Dla pewności wgrałem znane mi już ESPEasy. Żadnej sieci ESP, jakiej wersji bym nie wgrywał.
’Cóż, wejdzie w koszty nauki. Ładnie świeci, to chociaż tyle'.
Wzmiankowany tutaj Maciej zasugerował mi coś innego – 'Wbijaj do niego przez COM’a i ustaw sieć WiFi ręcznie. Może się uda'. Podał mi następujący sposób:
– instalujemy Termite (Putty nie podołał – ekran przy tych samych parametrach był 'rozjechany')
– wprowadzamy nasz port COM (u mnie jak widać COM8) i prędkość
– łączymy się z Sonoff
– na samym dole jest pasek z możliwością wpisania komendy
– SSId <WaszeIDSieciBezprzewodowej>, Enter
– Password <WaszeHasłoDoSieciBezprzewodowej>, Enter

ZA DZIA ŁA ŁO! Podłączył się do sieci od razu, włączenie przełącznika również zadziałało. Dobrze posłuchać mądrego.

Na dzisiaj tyle. Dłuższy opis Tasmota w kolejnym wpisie. I przy okazji na pewno MQTT aby dostać się do Domoticz.