logo elektroda
logo elektroda
X
logo elektroda

Room thermostat HY609-WE with WiFi - manual, app, interior, TuyaMCU protocol

p.kaczmarek2  4 4374 Cool? (+2)
📢 Listen (AI):

TL;DR

  • HY609-WE/KHY609 room thermostat with touch buttons, LED temperature display, WiFi control, and Tuya app support was tested and torn down.
  • Inside, a separate WBR3 WiFi module talks to the main MCU over TuyaMCU UART, and UART captures reveal dpID roles.
  • The article logs packet mappings for setpoint, mode, calibration, and protection, including values such as 14.5°C, 30.5°C, and dpID 2/4/112/118.
  • The thermostat costs about 160 zloty, uses a 0.33F 5.5V supercapacitor and HT1381A RTC, but password prompts and low-contrast display are annoying.
Generated by the language model.
White thermostat with LED display and touch buttons.
Today I invite you to a brief analysis of the interior of a rather expensive product - a room thermostat with touch buttons and LED temperature display, also offering control via WiFi. This product can be found in stores under the model name KHY609 or HY609-WE, it is available in two colors (white and black) and a variant with Zigbee communication is also on sale. Here, however, I will focus on its WiFi version, briefly test it in the Tuya application and then analyze its interior, including details of the TuyaMCU protocol used inside. Here I will show examples of the packets it exchanges over the UART and define the roles of the dpIDs used, which are TuyaMCU variables.

Purchase HY609-.EC and contents of the kit
Thermostats of this series were installed at the home of my friend, and I was temporarily given one piece just for a few days to test and play with. The thermostat itself can be purchased from various places on the web, both in our country and directly from China:
White room thermostat with LED display and touch buttons on the panel.
The product is quite expensive, 160 zloty for the WiFi version, and I've seen Zigbee versions even a hundred zloty more expensive. Let's see what the seller himself wrote about them:
White thermostat with LED display and touch buttons.
I wouldn't praise the Tuya cloud so much, if you can change the firmware you will gain even more possibilities, but that's in another topic.
Thermostat with a touch display on a wall in a bright room.
The possibility of connecting an external NTC10K is always a good option.
Offered capabilities, that is, what you can set in the Tuya app:
Room thermostat KHY609 features
Well, the specifications:
White room thermostat with touch buttons and LED display.
That's a lot of theory, now let's see how it looks in practice. Markings on the packaging:
Orange box of the digital thermostat KHY609 with listed features on the front. Box of KHY609 thermostat with function icons and certifications. Packaging of a WiFi Tuya room thermostat.. Photo of HY609 WE thermostat package with label. HY609-WE thermostat packaging with technical information
Contents (thermostat, mounting screws, instructions):
Contents of the HY609-WE thermostat box Open box of the HY609-WE thermostat with visible mounting screws and instructions.
Instructions (I won't rewrite it to the subject, please enlarge the photo if you need to):
User manual for a room thermostat with touch buttons and LED display. Installation and connection manual for the HY609 thermostat on a wooden table. User manual for the HY609-WE room thermostat with programming and protection features.
Manual mode, automatic mode... advanced options, vacation mode ... some of these options are there. I guess you need to keep this manual in a prominent place in the apartment.
Well, and the thermostat itself:
Back of a room thermostat with several labels and wire connectors. White room thermostat with touch buttons on a wooden background.

Tuya app As a rule, I don't describe the Tuya app anymore, because I'm going to cut these devices off from the cloud and change their firmware anyway, but here the device was unusual enough, but I decided to do a short test with what the manufacturer offered us.
We put the device into a pairing state and gave the location of our WiFi, all without problems, details in the instructions:
Screen of an app for adding devices with smart control options App screen adding a thermostat named Smart App screen showing successful addition of a Smart device.
The main panel of the device allows us to view the current temperature (here from the built-in sensor), the one set, and its operating status:
Thermostat app screen showing energy management features. HY609-WE thermostat app interface in manual mode Smartphone app screen showing thermostat settings. Mobile app interface of a room thermostat displaying current temperature and settings. You can select one of three operating modes, it was already mentioned in the manual:
- automatic (according to the schedules we set)
- manual
- holiday (holiday, thermostat completely off)
Screen of a room thermostat app with temperature set to 22.0°C and current temperature at 24.5°C.
It is in the settings that it gets more complicated:
Screenshot of room thermostat KHY609 settings.

There operations must be approved with this password, which was also given by the seller. With each change you have to enter the password. It's very inconvenient...
Device screen prompting for password entry
This is, for example, the temperature calibration:
Thermostat settings screen with temperature calibration.
Yes the program selection (these 5+2, 6+1, 7 days, etc. refers to the days of the week, as someone works, for example. on weekdays, then you can program the thermostat differently for them):
HY609-WE thermostat app settings screen with program type options.
Further settings - there are even notifications that the device becomes offline:
Screenshot from the Tuya app for managing the HY609-WE thermostat

Firmware versions, which reveal the fact that there is a WiFi module and TuyaMCU inside separately:
App screen showing thermostat firmware update status.

Internal of the thermostat
Let's remove the front cover to see how the thermostat is built.
Interior of HY609-WE room thermostat with WiFi module.
Inside is the WBR3 module, my OpenBeken doesn't officially support it yet, but work is underway.
WBR3 module with main board of HY609-WE thermostat
PCB designation: CAT-HY609MB_WE2_V12_NTWIT V4.0_20220808
2022 08 08 is the design date, I think, and production is (according to the sticker next to it) 2023 02 18:
PCB of the HY609-WE thermostat with visible components.
In the 3.3V power block for the WiFi module and MCU, I see that there is both a step-down inverter and an AMS1117-3.3V:
Interior of HY609-WE thermostat with WBR3 module. Close-up of the KHY609/HY609-WE thermostat PCB with visible electronic components. View of the PCB inside the model KHY609 thermostat with visible electronic components. I also see something that looks to me like a supercapacitor for time keeping:
Close-up of the internal circuit board of the HY609 thermostat showing electronic components.
Capacitance 0.33F, voltage 5.5V:
Close-up of a circuit board with a 0.33F 5.5V supercapacitor.
Also visible HT1381A is the RTC clock:
Screenshot of the technical specification for the Holtek HT1380A/HT1381A real-time clock chip.
Block diagram and pin assignment for HT1380A/HT1381A chip. Block diagram and pin assignment for HT1380A/HT1381A chip.
Main MCU, second clock oscillator:
Internal module of the HY609 room thermostat with electronic components Close-up of the PCB board of the HY609 thermostat model.
Temperature sensor (the built-in one):
Close-up of thermostat interior with electronic components on a PCB.

In terms of firmware changes it's less important, but let's also look at the board from the power supply:
Disassembled room thermostat with visible electronic components on a table.
Power supply PCB designation: HY08PW-WE-V220-1R 20200722 V1.3
Interior of the HY609-WE thermostat with visible PCB and electronic components. Interior of the HY608-WE thermostat circuit board Close-up of the PCB model HY08PW-WE-V220-1R from the HY609 thermostat. This is rather standard. There is a visible fuse and varistor. I don't see any additional filters.
Power board with electronic components on a wooden background Close-up of the internal mechanism of the KHY609 thermostat. Close-up of a circuit board module with electronic components. Internal component of the HY609-WE thermostat with electronic elements.
Display readability The display is slightly more readable, than it might appear but there is still some room left for improvement here. Below are pics from me from the table, maybe it looks better on the wall:
Room thermostat with LED screen and touch buttons. HY609-WE room thermostat with LED display. Room thermostat with LED screen and touch buttons.
[size=18] Details of the TuyaMCU protocol used As I mentioned above, this device consists of a WiFi module and a microcontroller, the WiFi module takes care of communication with the cloud and the MCU takes over the rest of the duties.
Schematic of connection between Tuya module and microcontroller with signal level conversion.
The very idea of this protocol I described in this topic:
TuyaMCU protocol - communication between microcontroller and WiFi module The protocol itself on different devices is the same, but the content and roles of variables, so-called. dpID.
To find out about them, I performed UART captures with my analyzer:
https://github.com/openshwprojects/TuyaMCUAnalyzer
TuyaMCU analyzer - UART packet decoder for Tuya devices - dpID detector

Here are some of the more interesting captured packets along with their interpretations.
Moment of pairing:
Received packet:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Received packet:
55 AA	03	07		00 05	01 01 00 01 00 		11	
HEADER	VER=03	State		LEN	fnId=1 Bool V=0	CHK	

Received packet:
55 AA	03	07		00 08	02 02 00 04 00000096 		AF	
HEADER	VER=03	State		LEN	fnId=2 Val V=150	CHK	

Received packet:
55 AA	03	07		00 08	03 02 00 04 000000F5 		0F	
HEADER	VER=03	State		LEN	fnId=3 Val V=245	CHK	

Received packet:
55 AA	03	07		00 05	04 04 00 01 01 		18	
HEADER	VER=03	State		LEN	fnId=4 Enum V=1	CHK	

Received packet:
55 AA	03	07		00 05	06 01 00 01 00 		16	
HEADER	VER=03	State		LEN	fnId=6 Bool V=0	CHK	

Received packet:
55 AA	03	07		00 05	0C 05 00 01 00 		20	
HEADER	VER=03	State		LEN	fnId=12 Bitmap V=0	CHK	

Received packet:
55 AA	03	07		00 05	65 01 00 01 00 		75	
HEADER	VER=03	State		LEN	fnId=101 Bool V=0	CHK	

Received packet:
55 AA	03	07		00 05	66 01 00 01 00 		76	
HEADER	VER=03	State		LEN	fnId=102 Bool V=0	CHK	

Received packet:
55 AA	03	07		00 08	67 02 00 04 00000000 		7E	
HEADER	VER=03	State		LEN	fnId=103 Val V=0	CHK	

Received packet:
55 AA	03	07		00 08	68 02 00 04 00000001 		80	
HEADER	VER=03	State		LEN	fnId=104 Val V=1	CHK	

Received packet:
55 AA	03	07		00 08	69 02 00 04 0000000F 		8F	
HEADER	VER=03	State		LEN	fnId=105 Val V=15	CHK	

Received packet:
55 AA	03	07		00 05	6A 01 00 01 01 		7B	
HEADER	VER=03	State		LEN	fnId=106 Bool V=1	CHK	

Received packet:
55 AA	03	07		00 05	6B 01 00 01 01 		7C	
HEADER	VER=03	State		LEN	fnId=107 Bool V=1	CHK	

Received packet:
55 AA	03	07		00 05	6C 01 00 01 00 		7C	
HEADER	VER=03	State		LEN	fnId=108 Bool V=0	CHK	

Received packet:
55 AA	03	07		00 08	6D 02 00 04 FFFFFFF6 		77	
HEADER	VER=03	State		LEN	fnId=109 Val V=-10	CHK	

Received packet:
55 AA	03	07		00 08	6E 02 00 04 0000000A 		8F	
HEADER	VER=03	State		LEN	fnId=110 Val V=10	CHK	

Received packet:
55 AA	03	07		00 08	6F 02 00 04 00000002 		88	
HEADER	VER=03	State		LEN	fnId=111 Val V=2	CHK	

Received packet:
55 AA	03	07		00 08	70 02 00 04 0000002D 		B4	
HEADER	VER=03	State		LEN	fnId=112 Val V=45	CHK	

Received packet:
55 AA	03	07		00 08	71 02 00 04 00000005 		8D	
HEADER	VER=03	State		LEN	fnId=113 Val V=5	CHK	

Received packet:
55 AA	03	07		00 08	72 02 00 04 00000023 		AC	
HEADER	VER=03	State		LEN	fnId=114 Val V=35	CHK	

Received packet:
55 AA	03	07		00 08	73 02 00 04 00000005 		8F	
HEADER	VER=03	State		LEN	fnId=115 Val V=5	CHK	

Received packet:
55 AA	03	07		00 05	74 04 00 01 00 		87	
HEADER	VER=03	State		LEN	fnId=116 Enum V=0	CHK	

Received packet:
55 AA	03	07		00 05	75 04 00 01 00 		88	
HEADER	VER=03	State		LEN	fnId=117 Enum V=0	CHK	

Received packet:
55 AA	03	07		00 05	76 04 00 01 00 		89	
HEADER	VER=03	State		LEN	fnId=118 Enum V=0	CHK	

Received packet:
55 AA	03	07		00 0D	77 00 00 09 06001408000F0B1E0F 		FF	
HEADER	VER=03	State		LEN	fnId=119 Raw V=06 00 14 08 00 0F 0B 1E 0F	CHK	

Received packet:
55 AA	03	07		00 0D	78 00 00 09 0D1E0F91000F16000F 		96	
HEADER	VER=03	State		LEN	fnId=120 Raw V=0D 1E 0F 91 00 0F 16 00 0F	CHK	

Received packet:
55 AA	03	07		00 0D	79 00 00 09 06001408000F0B1E0F 		01	
HEADER	VER=03	State		LEN	fnId=121 Raw V=06 00 14 08 00 0F 0B 1E 0F	CHK	

Received packet:
55 AA	03	07		00 0D	7A 00 00 09 0D1E0F11000F16000F 		18	
HEADER	VER=03	State		LEN	fnId=122 Raw V=0D 1E 0F 11 00 0F 16 00 0F	CHK	

Received packet:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	
Changing temp calibration to 2:

Received packet:
55 AA	03	07		00 08	03 02 00 04 00000113 		2E	
HEADER	VER=03	State		LEN	fnId=3 Val V=275	CHK	

Received packet:
55 AA	03	07		00 08	67 02 00 04 00000000 		7E	
HEADER	VER=03	State		LEN	fnId=103 Val V=0	CHK	

Received packet:
55 AA	03	07		00 08	6D 02 00 04 00000014 		98	
HEADER	VER=03	State		LEN	fnId=109 Val V=20	CHK	
Changing temp calibration to 3:
Received packet:
55 AA	03	07		00 08	03 02 00 04 0000011D 		38	
HEADER	VER=03	State		LEN	fnId=3 Val V=285	CHK	

Received packet:
55 AA	03	07		00 08	67 02 00 04 00000000 		7E	
HEADER	VER=03	State		LEN	fnId=103 Val V=0	CHK	

Received packet:
55 AA	03	07		00 08	6D 02 00 04 0000001E 		A2	
HEADER	VER=03	State		LEN	fnId=109 Val V=30	CHK	
On the main menu - setting 14.5 temp:
Received packet:
55 AA	03	07		00 08	02 02 00 04 00000091 		AA	
HEADER	VER=03	State		LEN	fnId=2 Val V=145	CHK	

Received packet:
55 AA	03	07		00 05	04 04 00 01 03 		1A	
HEADER	VER=03	State		LEN	fnId=4 Enum V=3	CHK	

Received packet:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	
.
On the main menu - setting 30.5 temp:
Received packet:
55 AA	03	07		00 08	02 02 00 04 00000131 		4B	
HEADER	VER=03	State		LEN	fnId=2 Val V=305	CHK	

Received packet:
55 AA	03	07		00 05	04 04 00 01 03 		1A	
HEADER	VER=03	State		LEN	fnId=4 Enum V=3	CHK	
After a while, the fire icon appears - the heating is turned on:
Received packet:
55 AA	03	07		00 05	66 01 00 01 01 		77	
HEADER	VER=03	State		LEN	fnId=102 Bool V=1	CHK	
Changes power on application (on off):
Received packet:
55 AA	03	07		00 05	01 01 00 01 00 		11	
HEADER	VER=03	State		LEN	fnId=1 Bool V=0	CHK	

Received packet:
55 AA	03	07		00 05	01 01 00 01 01 		12	
HEADER	VER=03	State		LEN	fnId=1 Bool V=1	CHK	

Received packet:
55 AA	03	07		00 05	01 01 00 01 00 		11	
HEADER	VER=03	State		LEN	fnId=1 Bool V=0	CHK	

Received packet:
55 AA	03	07		00 05	01 01 00 01 01 		12	
HEADER	VER=03	State		LEN	fnId=1 Bool V=1	CHK
Changing HighTem Protection to 44:
Received packet:
55 AA	03	07		00 08	70 02 00 04 0000002C 		B3	
HEADER	VER=03	State		LEN	fnId=112 Val V=44	CHK	
Changing LowTemp protection to 6:

55 AA	03	07		00 08	71 02 00 04 00000006 		8E	
HEADER	VER=03	State		LEN	fnId=113 Val V=6	CHK	
Change device power on state to Keep previous state:
55 AA	03	07		00 05	75 04 00 01 00 		88	
HEADER	VER=03	State		LEN	fnId=117 Enum V=0	CHK	
Change program type to 6+1:
Received packet:
55 AA	03	07		00 08	02 02 00 04 00000032 		4B	
HEADER	VER=03	State		LEN	fnId=2 Val V=50	CHK	

Received packet:
55 AA	03	07		00 05	76 04 00 01 01 		8A	
HEADER	VER=03	State		LEN	fnId=118 Enum V=1	CHK	
Changing program type to. 5+2
Received packet:
55 AA	03	07		00 08	02 02 00 04 00000032 		4B	
HEADER	VER=03	State		LEN	fnId=2 Val V=50	CHK	

Received packet:
55 AA	03	07		00 05	76 04 00 01 00 		89	
HEADER	VER=03	State		LEN	fnId=118 Enum V=0	CHK	

Changing program type to 7:
Received packet:
55 AA	03	07		00 08	02 02 00 04 00000032 		4B	
HEADER	VER=03	State		LEN	fnId=2 Val V=50	CHK	

Received packet:
55 AA	03	07		00 05	76 04 00 01 02 		8B	
HEADER	VER=03	State		LEN	fnId=118 Enum V=2	CHK	
Changing indoor temperature difference to 1.5:
Received packet:
55 AA	03	07		00 08	6E 02 00 04 0000000F 		94	
HEADER	VER=03	State		LEN	fnId=110 Val V=15	CHK	
Changing mode to manual:
55 AA	03	07		00 08	02 02 00 04 000000FA 		13	
HEADER	VER=03	State		LEN	fnId=2 Val V=250	CHK	

Received packet:
55 AA	03	07		00 05	04 04 00 01 00 		17	
HEADER	VER=03	State		LEN	fnId=4 Enum V=0	CHK	
Changing mode to Program:
Received packet:
55 AA	03	07		00 08	02 02 00 04 00000096 		AF	
HEADER	VER=03	State		LEN	fnId=2 Val V=150	CHK	

Received packet:
55 AA	03	07		00 05	04 04 00 01 01 		18	
HEADER	VER=03	State		LEN	fnId=4 Enum V=1	CHK	



Changing mode to Holiday:
Received packet: 
55 AA	03	07		00 08	02 02 00 04 00000096 		AF	
HEADER	VER=03	State		LEN	fnId=2 Val V=150	CHK	

Received packet:
55 AA	03	07		00 05	04 04 00 01 02 		19	
HEADER	VER=03	State		LEN	fnId=4 Enum V=2	CHK	
Based on this, you can determine what dpID any variable has and what format it is stored in (e.g. temperature is stored as an integer which has to be multiplied by 0.1 to get the result, i.e. for example 255 is 25.5°C.

I will deal with the firmware change itself only in the future.

Summary

A very interesting product, although I didn't like a few things. Those typing the password with each configuration change is not convenient. The display could be more readable, a little lack of contrast for me, I think the color green or red would fit more. Well, and this device in such a form is connected to the cloud, only then will we deal with the potential change of the batch, although the ground for this I have already prepared by capturing TuyaMCU packages.
Although, the manufacturer can be praised here for several things. The 0.55F 5.5V supercapacitor inside is certainly a plus, because in case of a power outage, the hour certainly won't get lost. It will also be interesting to see if this thermostat will remember its program when there is temporarily no internet access. Another plus could be the ability to connect an external sensor, which is also quite optional, as the built-in temperature sensor is also available. I also liked the fact that there are actually a bit of these options. Although this manual calibration is a nice addition.
However, I haven't tested this thermostat in the long term, so I'll ask - does anyone have these types of products installed at home? How do they perform, do they work faultlessly? .[/size]

About Author
p.kaczmarek2
p.kaczmarek2 wrote 14580 posts with rating 12604 , helped 654 times. Been with us since 2014 year.

Comments

hiv_sick 25 Oct 2023 15:45

Hi. Have you come across this type of thermostats, but ones that can wirelessly turn on a gas central heating furnace? The thing is that I have two wires connected to my thermostat from the furnace, which... [Read more]

MietekFighter 25 Oct 2023 21:11

It depends on how much it is supposed to cooperate. You can approach the topic a little differently and use any thermostat that works with HA and create an event in the HA itself that, based on the set... [Read more]

p.kaczmarek2 26 Oct 2023 12:58

@hiv_sick if you use Home Assistant, there should be no problem with automation. It depends on whether a given thermostat offers "reading" of the heating status, because I've seen that it doesn't...... [Read more]

p.kaczmarek2 04 Jan 2025 18:08

WBR3 are now flashable. See tutorial: WBR2, WBR3, WBRU, W701-VA2-CG pinout, datasheet, flashing for Home Assistant [Read more]

FAQ

TL;DR: At 160 PLN for the WiFi version, the HY609-WE is a Tuya-based room thermostat for users who want pairing help, hardware details, and dpID mapping. One expert verdict sums it up: "A very interesting product". The thread shows its modes, internal parts, UART packets, and the path toward Home Assistant and WBR3 reflashing. [#20783020]

Why it matters: This FAQ turns a long teardown and discussion into direct answers for setup, reverse engineering, and reliable heating control.

Option Control path Cloud dependence Local/HA potential Reliability note
HY609-WE WiFi with stock Tuya app WiFi -> Tuya app/cloud High Limited until firmware changes If WiFi fails, automation may not run
HY609 Zigbee variant Zigbee Lower than Tuya cloud Better fit for local HA setups Thread mentions it as an available variant
Thermostat + HA automation + RF/ESP32 link HA event -> RFLink/Sonoff RF/ESP32 Depends on HA/network High flexibility Best when designed to keep boiler logic independent

Key insight: The HY609-WE is not just a thermostat; it is a two-part Tuya design with a WBR3 WiFi module and a separate main MCU. That split makes UART capture and dpID mapping the key to local control, custom firmware, and deeper Home Assistant integration.

Quick Facts

  • The WiFi HY609-WE was described as costing 160 PLN, while some Zigbee versions were seen at roughly 100 PLN more. That price gap matters if you want local control without extra firmware work. [#20783020]
  • The board uses a WBR3 WiFi module, an HT1381A RTC clock, and a 5.5 V, 0.33 F supercapacitor that helps preserve time during short power loss. [#20783020]
  • The main PCB marking is CAT-HY609MB_WE2_V12_NTWIT V4.0_20220808, and a nearby sticker suggests production on 2023-02-18. [#20783020]
  • The power section appears to include a step-down converter plus an AMS1117-3.3V regulator for the WiFi module and MCU. [#20783020]
  • The thermostat supports three app-visible modes: automatic, manual, and holiday, and it can use an internal sensor or an external NTC10K sensor. [#20783020]

How do I pair the HY609-WE room thermostat with the Tuya app over WiFi step by step?

You pair it by putting the thermostat into pairing mode and then adding it in the Tuya app with your WiFi details. 1. Put the HY609-WE into pairing state as shown in its manual. 2. Open the Tuya app and enter your WiFi network information. 3. Finish the add-device flow and verify the main panel shows current temperature, set temperature, and operating status. The thread reports that pairing completed without problems using the manual’s steps. [#20783020]

What is the TuyaMCU protocol in the HY609-WE thermostat, and what does it actually do between the WiFi module and the main MCU?

The TuyaMCU protocol is the UART link between the WiFi module and the thermostat’s main controller. "TuyaMCU" is a device-control protocol that exchanges structured packets between a Tuya WiFi module and a separate MCU, keeping cloud communication and local hardware control split into two layers. In this thermostat, the WiFi side handles Tuya communication, while the main MCU manages sensing, modes, and heating logic. The packet captures use header 55 AA, protocol version 03, and state reports that carry dpIDs and values. [#20783020]

What is a dpID in TuyaMCU devices, and how do you figure out which dpID controls temperature, mode, or heating state on the HY609-WE?

A dpID is the numbered data point that identifies one function inside TuyaMCU packets. "dpID" is a Tuya data-point identifier that maps one variable to one function, such as target temperature, mode, or relay state, and it also implies the value type, like bool, enum, value, bitmap, or raw. You find the mapping by changing one setting at a time and capturing UART traffic. In this thread, dpID 2 tracks set temperature, dpID 4 tracks mode, and dpID 102 reports heating on when the fire icon appears. [#20783020]

Which operating modes does the HY609-WE support, and how do manual, automatic, and holiday mode differ in everyday use?

The HY609-WE supports three operating modes: manual, automatic, and holiday. Manual mode keeps the thermostat on a directly set target temperature. Automatic mode follows the programmed schedule, including 5+2, 6+1, or 7-day patterns. Holiday mode turns the thermostat completely off in the app description. The packet captures also show mode values on dpID 4: 0 for manual, 1 for program, and 2 for holiday. [#20783020]

Why does the HY609-WE ask for a password on every settings change in the app, and is there any way to make configuration less annoying?

It asks because the app protects certain settings behind a password provided by the seller. The thread states that every change in that settings area requires entering the password again, which makes repeated adjustments inconvenient. No stock app workaround was shown in the thread. The practical way to reduce the annoyance is to avoid frequent app-side reconfiguration or move toward Home Assistant and custom firmware later, once the device is reflashed. [#20783020]

How readable is the HY609-WE display in real use, and what visibility issues did people notice with the LED temperature display?

The display is usable, but the thread describes it as less readable than ideal. The author says it is slightly better in person than photos suggest, yet still lacks contrast and leaves room for improvement. He also notes that green or red would likely be more legible than the implemented look. A wall installation may improve viewing compared with a flat table position, but no measured brightness data was provided. [#20783020]

What hardware is inside the HY609-WE thermostat, including the WBR3 module, RTC, supercapacitor, and built-in temperature sensor?

Inside the HY609-WE you get a WBR3 WiFi module, a separate main MCU, an HT1381A RTC, a built-in temperature sensor, and a 0.33 F supercapacitor rated for 5.5 V. The thread also identifies a step-down converter and an AMS1117-3.3V regulator in the low-voltage supply area. The main PCB is marked CAT-HY609MB_WE2_V12_NTWIT V4.0_20220808, and the power board is marked HY08PW-WE-V220-1R 20200722 V1.3. [#20783020]

How do I capture and decode UART traffic from a Tuya thermostat using TuyaMCUAnalyzer to identify packet meanings and dpIDs?

You capture UART traffic by tapping the serial link between the WiFi module and the main MCU, then decoding the stream with TuyaMCUAnalyzer. 1. Connect a UART analyzer to the Tuya module-MCU serial lines. 2. Change one thermostat setting at a time, such as calibration or mode. 3. Feed the captures into TuyaMCUAnalyzer and compare packet changes to the action you performed. The thread links the analyzer and shows examples where changed settings reveal dpIDs, types, and scaled values. [#20783020]

How is temperature stored in the HY609-WE TuyaMCU packets, and why do values like 255 or 305 represent 25.5°C and 30.5°C?

Temperature is stored as an integer scaled by 0.1 °C. That means 255 equals 25.5°C, 305 equals 30.5°C, 145 equals 14.5°C, and 150 equals 15.0°C. The thread explicitly states that you must multiply the stored integer by 0.1 to get the actual temperature. This scaling appears in dpID 2 for target temperature and also in other temperature-related values captured during calibration tests. [#20783020]

WiFi vs Zigbee thermostats for Home Assistant: which is better if I want local control, fewer cloud dependencies, and better reliability?

Zigbee is the better fit if you want fewer cloud dependencies and a more local Home Assistant setup. The thread says a Zigbee variant of this thermostat exists, while the WiFi version is tied to Tuya cloud behavior until you change firmware. WiFi can still work well with Home Assistant, but the author warns that WiFi-based automation may fail when the network goes down. If reliability matters more than stock app convenience, choose the more local path. [#20786336]

What are the pros and cons of using the HY609-WE with Home Assistant automation instead of relying on the stock Tuya cloud app?

Home Assistant gives you more flexibility, but it also shifts reliability onto your local network and automations. The main benefits are custom logic, integration with other devices, and a path away from Tuya cloud once firmware support is in place. The downsides are failure modes: if WiFi or the HA stack goes down, heating actions may not execute. The thread also notes one practical stock-app annoyance: repeated password entry for each protected settings change. [#20786336]

How can I use a thermostat like the HY609-WE to wirelessly switch a gas central-heating boiler that normally uses two shorted control wires?

You can use the thermostat as the temperature source and let another wireless link close the boiler’s two-wire call-for-heat circuit. The discussion suggests two architectures: either a mains-powered or supplied WiFi thermostat sends a wireless command to a boiler-side controller, or a battery device uses Zigbee and a separate switching element. Another option is to use the thermostat’s LOAD output to drive a relay or optocoupler that ultimately shorts the boiler control wires. [#20785577]

What alternatives were suggested for sending the heating call from Home Assistant, such as Sonoff RF gateway, RFLink, ESP32, or a 433 MHz link?

The suggested alternatives were Sonoff RF gateway, RFLink, ESP32-based Wi-Fi control, and a 433 MHz transmitter/receiver pair. One proposal was to use any Home Assistant-compatible thermostat and let HA send the heating call through one of those radio or Wi-Fi bridges. Another proposal was to keep the thermostat independent and use its LOAD output with a 230 V AC relay or optocoupler, then bridge that to a radio link. That gives you more design freedom than relying on one all-in-one thermostat. [#20785577]

Why is WiFi-based heating automation risky when the network goes down, and what setup is more fail-safe for boiler control?

WiFi-based heating automation is risky because a network outage can stop the control action entirely. The thread states this directly: if the network goes down, the automation will not be performed. A more fail-safe setup keeps the core boiler switching independent of Home Assistant, then uses HA only as an extra layer. The suggested independent path is a local relay, optocoupler, or radio link driven from thermostat output, so basic heating still works without WiFi. [#20786336]

How do I flash the WBR3 module in the HY609-WE for Home Assistant or custom firmware, and where do I find the pinout and tutorial?

You can flash it now, because a later post states that WBR3 modules became flashable and points to a dedicated tutorial. The thread’s update from 2025-01-04 says: WBR3 is now supported for flashing, with pinout, datasheet, and Home Assistant-oriented instructions collected in the linked tutorial about WBR2, WBR3, WBRU, and W701-VA2-CG. The post does not repeat the full flashing procedure inline, so use that linked guide as the starting point. [#21376943]
Generated by the language model.
%}