
Witajcie moi drodzy.
Przedstawię tu wnętrze i programowanie nietypowego włącznika światła, który otrzymałem w paczce z USA od Jennifer w celu uruchomienia na nim mojego OpenBeken. Tego typu włączników nie widuje się raczej w naszym kraju, a dodatkowo w jego wnętrzu znajduje się nietypowy moduł z BK7231T. Wcześniej takiego nie widziałem. Z ciekawości wylutuję go za pomocą gorącego powietrza. Czy uda się mu zmienić firmware? Przekonajmy się.
Przesyłka od Jennifer
Paczka została do mnie wysłana z USA 22 marca poprzez USPS (US Postal Service). Oznaczona była jako "Gifts", zadeklarowana wartość 0.5$.
Pani listonosz przyniosła ją do mnie 4 maja, musiałem zapłacić 8.5 zł opłaty pocztowej:






To nie pierwszy raz taka opłata. W ogrodowej podwójnej wtyczce z BK7231T od @strigona też musiałem płacić właśnie 8.5zł.
Bez zbędnej zwłoki wziąłem się za rozkręcanie.
Wnętrze Gosund Smart Switch SW5-A-V2.1
Obudowę trzymają cztery śrubki. Potem można już wyjąć płytkę.

Tu widzimy coś nietypowego, zewnętrzna antena do WiFi 2.4GHz. Normalnie jej nie stosuję, moduły takie jak ESP12F (TYWE3S), TYWE2S, WB2S czy WB3S (zwykły) jej nie mają.



Rezystor bezpiecznikowy, filtr z dwóch kondensatorów 400V 3.3uF (swoją drogą - 400V w przełączniku na 120V?) i dławika (ten zielony), duży dławik (czarny) od beztransformatorowego zasilacza...

Ciekawostka - ten bezpiecznik 16A, dokładniej 16A250V, ochrania cały układ i też podłączoną lampkę przez przekaźnik, jest bezpośrednio wpięty za L-in. Nie widuję takich rzeczy w innych smart przełącznikach, tam z reguły jest tylko rezystor bezpiecznikowy ochraniający sam układ sterownika.


Tu widać mostek prostowniczy MB10F, za nim wspomniany już filtr Pi, a nieco dalej kontroler przetwornicy beztransformatorowej na drobnym układzie montowanym powierzchniowo IADGN:

Niby można kupić taki w sieci, ale co kryje się za kodem IADGN to nie wiem:

Dalej mamy regulator LDO AMS 1117 3.3V (zapewnia 3.3V dla modułu z WiFi) i widać też wyprowadzone pady do programowania i debugowania układu. To się nam przyda:

Z drugiej strony widać jeszcze tranzystor oznaczony 1AM (pewnie MMBT3904) załączający przekaźnik wraz z "free-wheeling diode" diodą o kodzie SMD 7A podłączoną równolegle do cewki przekaźnika usuwającą nagłe skoki napięć przy przełączaniu.

Jest tu miejsce na alternatywny moduł WiFi. Czy ktoś wie, jaki moduł tu pasuje?

Programowanie Gosund Smart Switch SW5-A-V2.1
Procedura okazała się bardzo prosta.
Analogicznie jak tutaj:
Ogrodowy podwójny przekaźnik Tuya CCWFIO232PK - BK7231T - programowanie
5V na wejście AMS1117-3.3V z osobnego zasilacza by móc zrobić reboot układu (odcięcie na chwilę zasilania) bez przeładowywania portu USB, RX i TX z konwertera USB na UART opartego o CH340 w trybie 3.3V i wspólna masa.
Do podpięcia drugiego 5V użyłem kabelka od USB (to było micro USB, ale złącze się uszkodziło):

Lutowanie zasilania 5V (dzięki zasileniu z 5V będzie działać też przekaźnik, co pozwoli nam od razu określenie na jakim pinie jest on podłączony, poprzez kolejne testowanie pinów):

Lutowanie RX i TX:

Procedura programowania jest następująca:
1. w bkWriter 1.60 uruchomić read bądź write
2. odłączyć zasilanie 5V na chwilę, podłączyć je ponownie
3. bkWriter powinien zacząć odczytywać bądź nagrywać wsad
Poszło bez problemów.
Konfiguracja w OpenBK
Ten włącznik ma dość bogate możliwości konfiguracji pinów. Mamy osobno diodę zieloną od stanu WiFi, diodę czerwoną, przycisk i przekaźnik. Inni producenci łączą razem sygnał sterujący jedną diodą i przekaźnikiem, ale tu tak nie jest. Możemy sobie zatem wybrać, czy np. dioda czerwona będzie się świecić przy wyłączonym przekaźniku czy też może przy włączonym. Sam preferują by świeciła się przy wyłączonym, gdyż wtedy w nocy łatwiej jest znaleźć włącznik.
Ostateczna konfiguracja pinów:

Przykład skryptowania włącznika
Tu można by już zakończyć, ale myślę, że warto jest jeszcze pokazać dodatkową możliwość jaką od niedawna oferuje moje OpenBeken.
Skryptowanie zdarzeń i system komend zostały dodane jako alternatywa do automatyzacji i scenariuszy występujących w Tuya czy tam w Home Assistant. Mój system skryptów cechuje to, że nie wymaga zewnętrznego serwera.
Więc, dla demonstracji, wystarczy nam:
- żarówka Smart WiFi z OpenBeken (ale Tasmota też będzie kompatybilna!) z dokonaną rezerwacją IP na routerze
- włącznik z tego tematu
Najpierw rezerwujemy naszej lampce IP w ustawieniach routera:

Następnie już na włączniku musimy ustawić tzw. "event handler", czyli obsługę zdarzenia na urządzeniu przycisku.
Służy do tego komenda:
setEventHandler [EventName] [Argument] [Command]
Przykładowo, dla kliknięcia przycisku na pinie 8:
addEventHandler OnClick 8 [Command]
(pin 8 musi mieć rolę Button ustawioną)
Jako "command" chcemy wysłać polecenie przełączenia stanu POWER poprzez Tasmota HTTP (OpenBeken wspiera ten protokół) na adres IP lampki.
Wysłanie takiej komendy wygląda tak (można na próbę z konsoli OpenBeken to wywołać):
SendGet http://192.168.0.112/cm?cmnd=Power0%20Toggle
Więc, pełna komenda obsługi zdarzenia z wysłaniem Power Toggle wygląda tak:
addEventHandler OnClick 8 SendGet http://192.168.0.112/cm?cmnd=Power0%20Toggle
Można to wpisać w konsoli, ale wtedy się to nie zapisze i obsługa zdarzenia zostanie utracona po reboocie urządzenia.
Z tego powodu lepiej ustawić to w jednym z dwóch dostępnych miejsc.
1. jako "short startup command" w Config (do 512 znaków, można tam dać wiele komend dzięki użyciu backlog - składnia tak jak w Tasmocie)

2. jako komenda z pliku "autoexec.bat" w LittleFS w panelu JS OpenBK

(aby utworzyć plik, przeciągamy na pole "drop file here". Potem można go edytować z poziomu przeglądarki. LittleFS na ten moment czyści się w trakcie wykonania OTA, więc należy mieć kopie plików)
Demonstracja:
Działa. To taka namiastka "Tasmota Group", które też wkrótce będą przeze mnie wspierane.
Identyfikacja modułu z BK7231T
Tu można by zakończyć, ale uznałem, że jeszcze warto jest zidentyfikować co to za konkretny moduł mamy w tym urządzeniu.
Nie jest on z wierzchu podpisany, nie znamy jego wyprowadzeń.
Wyprowadzenia podpisane są na spodzie, więc postanowiłem odlutować go gorącym powietrzem (GJ-8018LCD):

Najpierw odlutowałem też przycisk, by go nie stopić.
W celu ułatwienia pracy dodałem cyny ołowiowej i topnika:

Gotowe, po długim i równomiernym grzaniu:

Okazuje się, że to Z2-B-V1.0. Oto jego podpisane wyprowadzenia:

Przed przylutowaniem go na miejsce, oczyściłem PCB i pady:

W trakcie przylutowywania:

Po zlutowaniu z powrotem włącznik dalej działa.
Podsumowanie
Dziękuję raz jeszcze @echojjj za wysłanie mi tego włącznika do testów. Było naprawdę ciekawie!
Programowanie okazało się bardzo proste, gdyż wszystkie sygnały są wyprowadzone.
Włącznik okazał się być przydatny nawet w Polsce, gdyż pracuje na 230V (sprawdziłem w praktyce).
Moduł z BK ze środka okazał się być dla mnie nowością, nawet wyszukiwarka milczy gdy wpisuję "Z2-B-V1.0", a dzięki odlutowaniu go od płytki poznałem role jego wyprowadzeń, co przydać się może w przyszłości przy przerabianiu kolejnych urządzeń.
Przy okazji też zaprezentowałem prostą automatyzację w OpenBeken, którą można zrealizować bez potrzeby angażowania do tego zewnętrznego serwera typu Home Assistant.
PS: Czy ten footprint Z2-B-V1.0 nie jest kompatybilny z jakimś modułem z ESP, może z ESP32? Nie miałem jeszcze czasu sprawdzać, ale może ktoś wie?
Cool? Ranking DIY