logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU

p.kaczmarek2 07 Sty 2024 13:49 453 0
  • [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU
    Pokażę tutaj dziwny przekaźnik sterowany przez WiFi zbudowany w oparciu o zewnętrzny MCU komunikający się z modułem WiFi przez protokół TuyaMCU. W przypadku tak prostego przekaźnika jest to dla mnie zupełna nowość i wcześniej się z tym nie spotkałem. Z tego powodu najpierw przetestuję ten produkt z aplikacją Tuya, potem przechwycę komunikacje MCU z BK7231 a na koniec dopiero zmienię mu wsad na OpenBeken.

    Zakup WL-SW1
    Przy zakupie gadżetu nic nie wskazuje na to, że ma on tak nietypową budowę, chociaż cena jest dość duża:
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU
    Sprzedawca chwali się załączaniem światła o danej godzinie bądź porze, ale czy to nie jest obecne w każdym urządzeniu Tuya?
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU
    Nawet w OpenBeken też mamy zdarzenia wschodu i zachodu słońca...
    Zobaczmy zatem co dostajemy w praktyce:
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU
    Zawartość zestawu:
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU
    Kod QR do instrukcji:
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU


    Wnętrze WL-SW1
    Podważamy obudowę i zaglądamy do środka:
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU
    Początkowo wygląda normalnie, ale po chwili....
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU
    Widać, żę tu jest osobno moduł WiFi - CB2S (oparty na BK7231N) oraz osobno jest mikrokontroler i chyba też układ od kontroli RF.
    To by tłumaczyło, czemu tu zastosowano zewnętrzny MCU.
    Pewnie komunikują się one przez protokół TuyaMCU, opisywany tutaj:
    TuyaMCU - komunikacja pomiędzy mikrokontrolerem a modułem WiFi
    Reszta fotek:
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU
    Układ zwyczajowo zasila step down oparty na BP2525:
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU


    Podsłuchiwanie komunikacji WL-SW1
    TuyaMCU, tak jak opisane jest to w poświęconym temu protokołowi temacie, opiera się o UART. Mamy do tego gotowy analizator który jest w stanie podsłuchać pakiety i wyświetlić je w czytelny dla człowieka sposób:
    Analizator TuyaMCU - dekoder pakietów UART dla urządzeń Tuya - dpID detektor
    Repozytorium: https://github.com/openshwprojects/TuyaMCUAnalyzer
    Idea cała polega na tym, że wykonuje się w aplikacji Tuya jakąś operację i jednocześnie podsłuchuje się wysyłane pakiety.
    Zatem trzeba najpierw sparować produkt z chmurą:
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU
    Ok, sparowane, zobaczmy co tu mamy z opcji dostępne:
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU
    Troszkę tego jset, mamy m. in:
    - konfigurację przełącznika (bistabilny, monostabilny, itd)
    - stan przekaźnika - nie wiem co to jest, opcje są wpisane jako "Option1", potem "Option2" itd...?
    - tryb pracy LED - albo świeci wtedy co przekaźnik jest załączony, albo odwrotnie...
    Jest też child lock, czyli blokada przed dziećmi, odblokowywana specjalną sekwencją operacji:
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU
    Oczywiście są też powiadomienia offline, itd:
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU
    Wersja firmware:
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU
    No i mój układ do przechwytywania dpID:
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU


    Zebrane informacje - komunikacja TuyaMCU
    Zgodnie z zapowiedzią. Najpierw log z parowania, a potem poszczególne dpID. Parowanie:
    
    
    Received by WiFi module:
    55 AA	03	01		00 2A	7B2270223A22666B6B31646732317678676D6B6B6E30222C2276223A22312E302E31222C226D223A307D	C1	
    HEADER	VER=03	Product		LEN	{"p":"fkk1dg21vxgmkkn0","v":"1.0.1","m":0}	CHK	
    
    Received by WiFi module:
    55 AA	03	02		00 00		04	
    HEADER	VER=03	McuConf		LEN		CHK	
    
    Received by WiFi module:
    55 AA	03	03		00 00		05	
    HEADER	VER=03	WifiState		LEN		CHK	
    
    Received by WiFi module:
    55 AA	03	00		00 01	01	04	
    HEADER	VER=03	Heartbeat		LEN	01	CHK	
    
    Received by WiFi module:
    55 AA	03	00		00 01	01	04	
    HEADER	VER=03	Heartbeat		LEN	01	CHK	
    
    after pair
    
    Received by WiFi module:
    55 AA	03	00		00 01	01	04	
    HEADER	VER=03	Heartbeat		LEN	01	CHK	
    
    Received by WiFi module:
    55 AA	03	1C		00 00		1E	
    HEADER	VER=03	Date		LEN		CHK	
    
    Received by WiFi module:
    55 AA	03	00		00 01	01	04	
    HEADER	VER=03	Heartbeat		LEN	01	CHK	
    
    Received by WiFi module:
    55 AA	03	00		00 01	01	04	
    HEADER	VER=03	Heartbeat		LEN	01	CHK	
    
    Received by WiFi module:
    55 AA	03	03		00 00		05	
    HEADER	VER=03	WifiState		LEN		CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 05	01 01 00 01 00 		11	
    HEADER	VER=03	State		LEN	fnId=1 Bool V=0	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 05	26 04 00 01 00 		39	
    HEADER	VER=03	State		LEN	fnId=38 Enum V=0	CHK	
    
    Received by WiFi module:
    55 AA	03	03		00 00		05	
    HEADER	VER=03	WifiState		LEN		CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 05	2F 04 00 01 00 		42	
    HEADER	VER=03	State		LEN	fnId=47 Enum V=0	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 05	27 04 00 01 01 		3B	
    HEADER	VER=03	State		LEN	fnId=39 Enum V=1	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 05	28 01 00 01 00 		38	
    HEADER	VER=03	State		LEN	fnId=40 Bool V=0	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 04	29 03 00 00  		39	
    HEADER	VER=03	State		LEN	fnId=41 Str V=	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 04	2A 03 00 00  		3A	
    HEADER	VER=03	State		LEN	fnId=42 Str V=	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 04	2B 03 00 00  		3B	
    HEADER	VER=03	State		LEN	fnId=43 Str V=	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 05	01 01 00 01 00 		11	
    HEADER	VER=03	State		LEN	fnId=1 Bool V=0	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 05	26 04 00 01 00 		39	
    HEADER	VER=03	State		LEN	fnId=38 Enum V=0	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 05	2F 04 00 01 00 		42	
    HEADER	VER=03	State		LEN	fnId=47 Enum V=0	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 05	27 04 00 01 01 		3B	
    HEADER	VER=03	State		LEN	fnId=39 Enum V=1	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 05	28 01 00 01 00 		38	
    HEADER	VER=03	State		LEN	fnId=40 Bool V=0	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 04	29 03 00 00  		39	
    HEADER	VER=03	State		LEN	fnId=41 Str V=	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 04	2A 03 00 00  		3A	
    HEADER	VER=03	State		LEN	fnId=42 Str V=	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 04	2B 03 00 00  		3B	
    HEADER	VER=03	State		LEN	fnId=43 Str V=	CHK	
    
    Received by WiFi module:
    55 AA	03	03		00 00		05	
    HEADER	VER=03	WifiState		LEN		CHK	
    
    Received by WiFi module:
    55 AA	03	00		00 01	01	04	
    HEADER	VER=03	Heartbeat		LEN	01	CHK	
    
    Received by WiFi module:
    55 AA	03	00		00 01	01	04	
    HEADER	VER=03	Heartbeat		LEN	01	CHK	
    

    Zmiana on/off w apce:
    
    Received by WiFi module:
    55 AA	03	00		00 01	01	04	
    HEADER	VER=03	Heartbeat		LEN	01	CHK	
    
    Received by WiFi module:
    55 AA	03	00		00 01	01	04	
    HEADER	VER=03	Heartbeat		LEN	01	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 05	01 01 00 01 01 		12	
    HEADER	VER=03	State		LEN	fnId=1 Bool V=1	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 05	01 01 00 01 00 		11	
    HEADER	VER=03	State		LEN	fnId=1 Bool V=0	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 05	01 01 00 01 01 		12	
    HEADER	VER=03	State		LEN	fnId=1 Bool V=1	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 05	01 01 00 01 00 		11	
    HEADER	VER=03	State		LEN	fnId=1 Bool V=0	CHK	
    
    

    Rocker switch - ustawiam state synchronous:
    
    Received by WiFi module:
    55 AA	03	07		00 05	2F 04 00 01 01 		43	
    HEADER	VER=03	State		LEN	fnId=47 Enum V=1	CHK	
    
    Received by WiFi module:
    55 AA	03	00		00 01	01	04	
    HEADER	VER=03	Heartbeat		LEN	01	CHK	
    

    Rocker switch - ustawiam button switch:
    Received by WiFi module:
    55 AA	03	07		00 05	2F 04 00 01 02 		44	
    HEADER	VER=03	State		LEN	fnId=47 Enum V=2	CHK	

    Rocker switch - flip to state change:
    Received by WiFi module:
    55 AA	03	00		00 01	01	04	
    HEADER	VER=03	Heartbeat		LEN	01	CHK	
    Received by WiFi module:
    55 AA	03	07		00 05	2F 04 00 01 00 		42	
    HEADER	VER=03	State		LEN	fnId=47 Enum V=0	CHK	

    Relay status - ustawiam option 2:
    Received by WiFi module:
    55 AA	03	07		00 05	26 04 00 01 01 		3A	
    HEADER	VER=03	State		LEN	fnId=38 Enum V=1	CHK	

    Relay status - ustawiam option 3:
    Received by WiFi module:
    55 AA	03	07		00 05	26 04 00 01 02 		3B	
    HEADER	VER=03	State		LEN	fnId=38 Enum V=2	CHK	

    Relay status - ustawiam option 1:
    Received by WiFi module:
    55 AA	03	07		00 05	26 04 00 01 00 		39	
    HEADER	VER=03	State		LEN	fnId=38 Enum V=0	CHK	
    
    Received by WiFi module:
    55 AA	03	00		00 01	01	04	
    HEADER	VER=03	Heartbeat		LEN	01	CHK	


    Light mode - ustawiam option 3:
    
    55 AA	03	07		00 05	27 04 00 01 00 		3A	
    HEADER	VER=03	State		LEN	fnId=39 Enum V=0	CHK	


    Light mode - ustawiam option 1:
    
    55 AA	03	07		00 05	27 04 00 01 01 		3B	
    HEADER	VER=03	State		LEN	fnId=39 Enum V=1	CHK	

    Child lock on:
    Received by WiFi module:
    55 AA	03	00		00 01	01	04	
    HEADER	VER=03	Heartbeat		LEN	01	CHK	
    
    Received by WiFi module:
    55 AA	03	07		00 05	28 01 00 01 01 		39	
    HEADER	VER=03	State		LEN	fnId=40 Bool V=1	CHK	

    Child lock off:
    55 AA	03	07		00 05	28 01 00 01 00 		38	
    HEADER	VER=03	State		LEN	fnId=40 Bool V=0	CHK	

    Countdown - 13h:
    Received by WiFi module:
    55 AA	03	07		00 08	09 02 00 04 0000B6D0 		A6	
    HEADER	VER=03	State		LEN	fnId=9 Val V=46800	CHK	

    Countdown usunięty:
    55 AA	03	07		00 08	09 02 00 04 00000000 		20	
    HEADER	VER=03	State		LEN	fnId=9 Val V=0	CHK	

    Countdown - 1h:
    55 AA	03	07		00 08	09 02 00 04 00000000 		20	
    HEADER	VER=03	State		LEN	fnId=9 Val V=0	CHK	



    Wgrywanie i konfiguracja OBK
    BK7231 komunikuje się z TuyaMCU na tym samym porcie UART który służy do programowania, więc trzeba usunąć spoiwo, by zerwać połączenie:
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU
    Potem lutujemy przewody do nóżek CB2S ale nie zwieramy ich do płytki-matki:
    [CB2S/BK7231N] Miboxer moduł przekaźnik WL-SW1 oparty na TuyaMCU
    Wsad wgrywamy standardowo naszym flasherem:
    https://github.com/openshwprojects/BK7231GUIFlashTool
    Nie ma tu GPIO do konfigurowania, tylko trzeba napisać autoexec.bat:
    https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/autoexecExamples.md
    Powyższa dokumentacja linkuje do tematów Elektrody powiązanych z danym przykładem autoexec.
    Oto podstawowy, przykładowy autoexec.bat dla tego urządzenia:
    
    startDriver TuyaMCU
    // set TuyaMCU baud rate
    //tuyaMcu_setBaudRate 115200
    // set TuyaMCU default wifi state 0x04, which means "paired",
    // because some TuyaMCU MCUs will not report all data
    // unless they think they are connected to cloud
    tuyaMcu_defWiFiState 4
    // dpID 1 is relay
    setChannelType 1 Toggle
    linkTuyaMCUOutputToChannel 1 bool 1
    

    Powyższy autoexec.bat mapuje dpID 1 czyli stan przekaźnika (boolean, on lub off) na kanał pierwszy OBK i ustawia mu typ jako toggle. Po wykonaniu Home Assistant Discovery nawet nasz HA będzie w stanie wykryć tak skonfigurowane urządzenie:



    W razie potrzeby można analogicznie zmapować pozostałe dpID, więcej info w dokumentacji:
    https://github.com/openshwprojects/OpenBK7231T_App/tree/main/docs

    Podsumowanie
    To urządzenie wspiera również komunikację RF, pewnie właśnie te piloty Milight z opisu od sprzedawcy. To wyjaśnia też troszkę jego cenę oraz to czemu jest zrealizowane ono w oparciu o dodatkowy MCU - Tuya jakoś nie lubi podłączać odbiornika RF bezpośrednio do modułu WiFi, nie wiem czemu tak jest, ale każde urządzenie z RF jakie rozbierałem do tej pory było albo oparte o TuyaMCU, albo o zwykły MCU obsługują przyciski i odbiornik RF (była o tym już mowa na forum, ale wtedy ten MCU po odebraniu sygnału RF "symuluje" wciśnięcie przycisku, więc RF działa dalej po zmianie firmware modułu WiFi).
    Oprócz tego moją uwagę przykuł childlock, po utracie instrukcji mógłby być problem z jego zdjęciem, ale wszystko dla Was udokumentowałem, więc może nie będzie aż tak źle....
    Podsumowując, wyjaśniło się nieco czemu ten produkt jest taki drogi, ale i tak chyba bym się skłaniał ku tańszym odpowiednikom, ale każdy zdecyduje wedle uznania. Na pewno można go uwolnić od chmury i połączyć z HA, co pokazałem w tym temacie.

    Fajne? Ranking DIY
    Pomogłem? Kup mi kawę.
    O autorze
    p.kaczmarek2
    Moderator Smart Home
    Offline 
REKLAMA