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

Prezentacja, test, wnętrze i analiza komunikacji termostatu ogrzewania podłogowego Tuya

p.kaczmarek2 19 Sie 2025 12:12 1146 0

TL;DR

  • Natynkowy termostat ogrzewania podłogowego Tuya z sondą zewnętrzną i sterowaniem Wi‑Fi oferuje tryby auto/manual, program 5+2/6+1 oraz blokadę rodzicielską.
  • W środku zamiast LCD zastosowano wyświetlacz LED, a logikę obsługuje SC92F8547P przez TuyaMCU z modułem Realtek WBR3 i zegarem DS1302Z.
  • Za 140 zł zidentyfikowano dpID dla kluczowych funkcji: temperatura zadana to 16, child lock 40, wybór czujnika 43, a kalibracja 27.
  • Analiza UART wskazuje, że można zmienić firmware na OpenBeken i uwolnić termostat od chmury, a potem połączyć go z Home Assistant.
  • Minusem jest nieprawdziwa specyfikacja sprzedawcy, bo ekran nie jest LCD, tylko oparty na diodach LED.
Wygenerowane przez model językowy.
REKLAMA
📢 Słuchaj (AI):
  • Termostat z podświetlanym panelem LED pokazujący temperaturę i dni tygodnia
    Zaprezentuję tutaj natynkowy termostat z LCD, czujnikiem zewnętrznym oraz bezprzewodowym sterowaniem w oparciu o WiFi. Pokazywany tu produkt jest zgodny z aplikacją Tuya i posiada funkcję programowania 5+2/6+1, która umożliwia ustawienie do 6 różnych ustawień temperatury na każdy dzień tygodnia oraz dodatkowe ustawienie na weekend.
    W temacie uwzględnię również jego analizę komunikacji, co pozwoli zmienić jego firmware i wgrać OpenBeken, dzięki czemu będzie można go uwolnić od chmury i połączyć z Home Assistant.

    Termostat kupiliśmy za 140 zł. Zacznijmy od zawartości zestawu.
    Białe pudełko z etykietą zawierającą kod kreskowy i informacje o produkcie Etykieta boczna pudełka z informacjami producenta i kodem QR Termostat WiFi z instrukcją angielską i ochronną pianką w kartonie
    W zestawie jest urządzenie, sonda oraz instrukcja.
    Zestaw z termostatem WiFi: instrukcja, urządzenie w folii i biały przewód z czujnikiem. Sonda temperatury z przewodem pomiarowym, zwinięta, zakończona dwoma przewodami Zbliżenie na biały czujnik temperatury podłączony do przewodu
    Zdjęcia angielskojęzycznej instrukcji:
    Instrukcja obsługi termostatu z opisem ikon, trybów i ustawień parametrów Instrukcja do termostatu z tabelą ustawień parametrów i schematem instalacyjnym
    Anglojęzyczna instrukcja obsługi termostatu z wykresami podłączeń i kodem QR Instrukcja obsługi termostatu z kodem QR i ekranami aplikacji
    Raczej nie ma sensu tu przepisywać i przekładać instrukcji, więc od razu przejdziemy do prezentacji aplikacji po parowaniu.

    Parowanie przebiega bez problemu - urządzenie jest oparte o BK7231, więc jest już wykrywane po Bluetooth:
    Ekran parowania aplikacji z wykrytym termostatem WiFi Smart thermostats Ekran aplikacji z dodanym termostatem WiFi Smart thermostats
    Panel urządzenia jest dość złożony. Mamy tu przede wszystkim dwa tryby pracy:
    - automatyczny (wg. programu)
    - manualny (sami ustawiamy w danym momencie temperaturę)
    Mamy też opcje takie jak np. child lock (blokada przed dziećmi), która pozwala zdeaktywować panel dotykowy urządzenia.
    Ekran aplikacji z termostatem: tryb manualny, temperatura 27°C, aktywna funkcja antifreeze
    Jest też opcja antifreeze, która automatycznie uruchamia grzanie gdy temperatura jest zdecydowanie za niska.
    Ekran aplikacji sterującej termostatem z wyborem czujników i trybu programowania
    W ustawieniach jest wybór programu oraz sondy - może być zewnętrzna lub wewnętrzna.
    Ekran aplikacji termostatu z ustawieniami kalibracji i jasności podświetlenia
    Kalibracja sondy jest też dostępna, a nawet jest opcja kontroli poziomu podświetlenia.
    Ekran aplikacji termostatu z ustawionymi przedziałami czasowymi i temperaturami Ekran aplikacji termostatu pokazujący harmonogram temperatury na dni robocze i wolne
    Samo tworzenie programu jest dość proste. Dobieramy okresy i temperatury.
    Ekran aplikacji Tuya z ustawieniami termostatu, funkcje sterowania i sieci Ekran ustawień aplikacji mobilnej dla termostatu Wi-Fi z opcjami w języku polskim i angielskim
    Reszta opcji nie wyróżnia się niczym - tak jak zazwyczaj mamy możliwość np. udostępnienia urządzenia.

    Teraz pora na ciekawszy fragment...

    Wnętrze urządzenia
    Urządzenie jest zbudowane tak jak typowy włącznik światła sterowany przez WiFi. Zdejmujemy przedni panel.
    Rozebrany termostat WiFi z widoczną elektroniką i sondą temperatury. Zbliżenie na płytkę PCB termostatu z widocznymi układami SC92F8547P i DS1302Z
    Już widać część elektroniki, ale tu jednak w środku jest dodatkowy plastikowy element. Trzeba więcej zdemontować.
    Zbliżenie na rozkręcony termostat z widoczną obudową i warstwami montażowymi Otwarty termostat ścienny z widocznym panelem LED i elementami elektroniki
    Wygląda na to, że tu jednak nie ma LCD. Ekran jest oparty o diody LED. Sprzedawca podał informację nieprawdziwą.
    Płytka PCB termostatu ME82H-WIFIMBLED-V1.3 z modułem WiFi i baterią
    Główne PCB jest oznaczone ME82H-WIFIMBLED-V1.3. Urządzenie jest zbudowane w oparciu o moduł WiFi WBR3, czyli układ od Realteka. Oprócz modułu WiFi mamy też dodatkowy mikrokontroler który zajmuje się cała logiką urządzenia oraz układ zegara czasu rzeczywistego DS1302Z wraz z kwarcowym rezonatorem zegarkowym oraz podtrzymaniem zasilania na czas utraty energii. Dzięki temu urządzenie może wznowić program nawet jak utraci całkowicie zasilanie a WiFi nie będzie dostępne by pobrać czas z Internetu usługą NTP.
    Moduł WiFi WBR3 zamontowany na zielonej płytce PCB z widocznymi ścieżkami i podzespołami Zbliżenie na płytkę PCB z układami SC92F8547P i DS1302Z oraz złączem Zbliżenie na płytkę PCB z układami SC92F8547P i AMS1117 Zbliżenie na płytkę PCB z układem WiFi WBR3 i mikrokontrolerem SOC SC92F8547P
    Główny MCU to SOC SC92F8547P. Komunikuje się on z modułem WiFi przez protokół TuyaMCU:
    Protokół TuyaMCU - komunikacja pomiędzy mikrokontrolerem a modułem WiFi
    Oznacza to, że przyda się zaraz przechwycić pakiety na linii UART. Pozwoli to nam określić dpID (identyfikatory) zmiennych określających pracę termostatu.

    Została jeszcze płytka z zasilaczem i przekaźnikami - ME86-DY-1.4.
    Płytka drukowana ME86-DY-1.4 z podzespołami elektronicznymi na drewnianym tle Zbliżenie na komponenty elektroniczne na płytce PCB z układem LNK606DG
    Zasilacz w urządzeniu jest zrealizowany w oparciu o LNK606DG.
    Fragment dokumentacji układu LNK603-616 z wykresem aplikacyjnym zasilacza
    GMF2A jest chyba przetwornicą. Pewnie zasilacz daje 12V a coś musi jeszcze generować 5V dla drugiej płytki.
    Zbliżenie na elementy elektroniczne płytki PCB z cewką 220 i układem GMF2A Zbliżenie na płytkę PCB ME86-DY-1.4 z widocznymi elementami GMF2A i cewką 220
    Obecność dużego przekaźnika na 12V (HF115F) potwierdza moje podejrzenia. Mamy tu osobno zasilacz 12V i osobno jakąś przetwornicę step down. Nie sądzę, by te 12V szło bezpośrednio na AMS1117-3.3V.
    Płytka zasilania termostatu z przekaźnikiem HF115F i transformatorem LNK606DG Płytka termostatu z przekaźnikiem HF115F, transformatorem i kondensatorami. Zbliżenie na komponenty elektroniczne: kondensatory, warystor i złącze zielone na PCB
    Płytka jest dość nieźle zbudowana. Na wejściu jest obecny warystor chroniący przed przepięciami, jest też kondensator przeciwzakłóceniowy.
    Zbliżenie na warystor, kondensatory i rezystory na płytce PCB termostatu Zbliżenie na elektronikę z kondensatorami, rezystorem i transformatorem


    Analiza komunikacji UART
    W tej sekcji zakładam znajomość TuyaMCU. Opisywałem go tutaj:
    Protokół TuyaMCU - komunikacja pomiędzy mikrokontrolerem a modułem WiFi
    Do tego przyda się jeszcze moje narzędzie do jego analizy:
    Analizator TuyaMCU - dekoder pakietów UART dla urządzeń Tuya - dpID detektor
    Przechwytywania pakietów należy dokonać w bezpieczny sposób. Urządzenie może mieć na sobie potencjał sieciowy, więc trzeba je albo zasilić z bezpiecznego zasilacza (część tego typu urządzeń zadziała np. uruchomione z zasilaczem 24V DC), albo użyć izolatorów typu ADUM1201. W przeciwnym razie możemy zewrzeć potencjał sieciowy z urządzenia z naszym konwerterem USB na UART i uszkodzić komputer.

    Oto ciekawsze z zebranych pakietów. Każdy z nich przedstawia inną akcję wykonywaną przez aplikacje.

    Wyłączenie przez telefon:
    
    Received by WiFi module:
    55 AA	00	06		00 05	0101000100	0D	
    HEADER	VER=00	SetDP		LEN	dpId=1 Bool V=0		CHK	
    
    Received by WiFi module:
    55 AA	00	00		00 00		FF	
    HEADER	VER=00	Heartbeat		LEN		CHK	
    
    Received by WiFi module:
    55 AA	00	1C		00 08	01180B0A161C3907	C3	
    HEADER	VER=00	Date		LEN	bOk=1 24/11/10 22:28:57	CHK	
    
    Received by WiFi module:
    55 AA	00	20		00 02	0100	22	
    HEADER	VER=00	Unk		LEN	0100	CHK	
    
    Received by WiFi module:
    55 AA	00	00		00 00		FF	
    HEADER	VER=00	Heartbeat		LEN		CHK	
    

    Telefon wysyła zmianę stanu dpID 1 na 0, typ to boolean.

    Włączenie:
    
    Received by WiFi module:
    55 AA	00	06		00 05	0101000101	0E	
    HEADER	VER=00	SetDP		LEN	dpId=1 Bool V=1		CHK	
    

    Analogicznie, stan zmienia się na 1.

    Wyłączenie child lock:
    
    Received by WiFi module:
    55 AA	00	06		00 05	2801000100	34	
    HEADER	VER=00	SetDP		LEN	dpId=40 Bool V=0		CHK	
    

    Child lock to dpID 40, typ bool.

    Ustawienie temperatury docelowej na 26.5:
    
    Received by WiFi module:
    55 AA	00	06		00 08	1002000400000109	2D	
    HEADER	VER=00	SetDP		LEN	dpId=16 Val V=265		CHK	
    
    Received by WiFi module:
    55 AA	00	00		00 00		FF	
    HEADER	VER=00	Heartbeat		LEN		CHK	
    
    Received by WiFi module:
    55 AA	00	1C		00 08	01180B0A161E1B07	A7	
    HEADER	VER=00	Date		LEN	bOk=1 24/11/10 22:30:27	CHK	
    
    Received by WiFi module:
    55 AA	00	20		00 02	0100	22	
    HEADER	VER=00	Unk		LEN	0100	CHK	
    

    dpID 16 to temperatura, wysyłana jest jako typ całkowity, przemnożona przez 10.

    Zmiana czujnika na zewnętrzny:
    
    Received by WiFi module:
    55 AA	00	00		00 00		FF	
    HEADER	VER=00	Heartbeat		LEN		CHK	
    
    Received by WiFi module:
    55 AA	00	1C		00 08	01180B0A161E3907	C5	
    HEADER	VER=00	Date		LEN	bOk=1 24/11/10 22:30:57	CHK	
    
    Received by WiFi module:
    55 AA	00	20		00 02	0100	22	
    HEADER	VER=00	Unk		LEN	0100	CHK	
    
    Received by WiFi module:
    55 AA	00	06		00 05	2B04000101	3B	
    HEADER	VER=00	SetDP		LEN	dpId=43 Enum V=1		CHK	
    

    dpId 43 to enumeracja, wartość 1 oznacza zewnętrzny.

    Zmiana dolnego limitu temperatury na 12:
    
    Received by WiFi module:
    55 AA	00	06		00 08	1A02000400000078	A5	
    HEADER	VER=00	SetDP		LEN	dpId=26 Val V=120		CHK	
    

    Analogicznie tak jak z docelową temperaturą, wartość przemnożona przez 10.

    Górny limit na 55:
    
    Received by WiFi module:
    55 AA	00	06		00 08	1302000400000226	4E	
    HEADER	VER=00	SetDP		LEN	dpId=19 Val V=550		CHK	
    


    Zmiana difference start na 1:
    
    Received by WiFi module:
    55 AA	00	06		00 08	6A0200040000000A	87	
    HEADER	VER=00	SetDP		LEN	dpId=106 Val V=10		CHK	
    


    Kalibracja na -7:
    
    Received by WiFi module:
    55 AA	00	06		00 08	1B020004FFFFFFF9	24	
    HEADER	VER=00	SetDP		LEN	dpId=27 Val V=-7		CHK	
    

    To ciekawe, kalibracja nie pozwala na części dziesiętne.

    Podświetlenie na 50%:
    
    
    \Received by WiFi module:
    55 AA	00	1C		00 08	01180B0A16263707	CB	
    HEADER	VER=00	Date		LEN	bOk=1 24/11/10 22:38:55	CHK	
    
    Received by WiFi module:
    55 AA	00	20		00 02	0100	22	
    HEADER	VER=00	Unk		LEN	0100	CHK	
    
    Received by WiFi module:
    55 AA	00	06		00 05	3404000102	45	
    HEADER	VER=00	SetDP		LEN	dpId=52 Enum V=2		CHK	
    

    Ciekawe, nieznany typ pakietu 0x20?


    Zmiana working day programu:
    
    
    \
    Received by WiFi module:
    55 AA	00	1C		00 08	01180B0A16271907	AE	
    HEADER	VER=00	Date		LEN	bOk=1 24/11/10 22:39:25	CHK	
    
    Received by WiFi module:
    55 AA	00	20		00 02	0100	22	
    HEADER	VER=00	Unk		LEN	0100	CHK	
    
    Received by WiFi module:
    55 AA	00	00		00 00		FF	
    HEADER	VER=00	Heartbeat		LEN		CHK	
    
    Received by WiFi module:
    55 AA	00	06		00 1C	6C00001806001E0800100B1E140C1E10110014160010080014170010	E6	
    HEADER	VER=00	SetDP		LEN	dpId=108 Raw V=06 00 1E 08 00 10 0B 1E 14 0C 1E 10 11 00 14 16 00 10 08 00 14 17 00 10		CHK	
    



    Zmiana trybu na auto:
    
    Received by WiFi module:
    55 AA	00	06		00 05	0204000100	11	
    HEADER	VER=00	SetDP		LEN	dpId=2 Enum V=0		CHK	
    


    Dalsze kroki
    Mamy już zebrane informacje potrzebne do zmiany firmware. Teraz trzeba wykonać dwa kolejne kroki, to pierwszy to wgranie nowego oprogramowania przez UART. Instrukcja poniżej:
    WBR2, WBR3, WBRU, W701-VA2-CG pinout, karta katalogowa, flashowanie dla Home Assistant
    Drugi to konfiguracja TuyaMCU:
    Przewodnik flashowania, instalacji i konfiguracji TuyaMCU - skonfiguruj dpID dla Home Assistant
    Zajmę się tym w osobnej części.

    Podsumowanie
    Pokazany tu produkt jest dość zaawansowany, pozwala na ręczne lub automatyczne sterowanie ogrzewaniem oraz daje też dodatkowe możliwości, takie jak kalibracja, blokada przed dziećmi czy tam regulacja poziomu podświetlenia. Wyświetlacz LED wydaje mi się dość czytelny, na funkcje dotykowe też nie narzekam.
    Wewnętrzna budowa produktu jest nieco lepsza niż zazwyczaj. Tym razem producent nie zapomniał o warystorze, kondensator przeciwzakłóceniowy też jest obecny. Logika jest oparta o TuyaMCU, co osobno już omawiałem na forum.
    Użyty w środku moduł WiFi opiera się o układ Realtek, którego już wspiera OpenBeken. Powinno dać się łatwo zmienić firmware, co pokażę w kolejnej części.
    Czy korzystacie z tego typu termostatów? Zapraszam do komentarzy.

    Fajne? Ranking DIY
    Pomogłem? Kup mi kawę.
    O autorze
    p.kaczmarek2
    Moderator Smart Home
    Offline 
  • REKLAMA
📢 Słuchaj (AI):
REKLAMA