FAQ
TL;DR: TH01 users get 3 core dpIDs; "you have to divide it by 10" for temperature. This FAQ helps OpenBeken users flash BK7231N/CB3S TH01 sensors, map TuyaMCU data, avoid 0 readings, and publish to MQTT/Home Assistant. [#20516557]
Why it matters: A TH01 can flash successfully yet still fail if TuyaMCU power control, UART isolation, dpIDs, or MQTT timing are wrong.
| Option |
What the thread reports |
Practical impact |
| WiFi TH01 with TuyaMCU |
CB3S/CBU wakes for short reporting windows |
Harder flashing, shorter battery life |
| Zigbee TH sensor |
Mentioned as preferred for these sensors |
Easier battery use with Home Assistant |
| BLE THB2/BTHome |
Used with ESP32 Bluetooth proxy |
Good battery alternative to WiFi |
| Direct OBK deep sleep |
Only after removing/bypassing MCU design |
More invasive hardware work |
Key insight: In the stock TH01 design, the MCU controls WiFi-module power. Configure TuyaMCU/tmSensor while externally powering CB3S, then test on batteries so the MCU sends real sensor frames.
Quick Facts
- Original TH01 TuyaMCU logs show dpID 1 as raw 200, meaning 20.0 °C, and dpID 2 as 73% humidity. [#20516504]
- A working basic OpenBeken mapping uses
temperature_div10 on channel 1 and Humidity on channel 2. [#20516646]
- Battery state is an enum: low, middle, high; later users mapped it as values 0, 1, and 2. [#20845859]
- For difficult flashing, users cut RX/TX traces, supplied 3.3 V directly, and sometimes succeeded after changing ground wiring or retrying. [#20627237]
- For faster battery wakes, users enabled WiFi quick connect, reduced boot-ok time from 5 s to 3 s, and used static IP. [#20768091]
How do I flash OpenBeken on a Tuya TH01 temperature and humidity sensor with a BK7231N CB3S module?
Flash it like other BK7231N devices, but isolate or control the TuyaMCU path first.
- Solder 3.3 V, GND, TX, RX, and optionally CEN.
- Use BK7231 GUI Flash Tool with the BK7231N firmware.
- After flashing, power CB3S directly at 3.3 V for configuration.
Some boards flash without cutting traces. Others need RX/TX cut, CB3S desoldering, or MCU disconnection. Use TX-to-RX and RX-to-TX wiring, and keep all grounds common.
[#20626343]
What autoexec.bat configuration maps TH01 TuyaMCU dpIDs for temperature, humidity, and battery state in OpenBeken?
Use
TuyaMCU,
tmSensor, and link each dpID to an OpenBeken channel. For the common TH01 mapping, dpID 1 is temperature divided by 10, dpID 2 is humidity, and dpID 3 is battery state.
TuyaMCU is a serial-device driver that exchanges Tuya datapoints with a separate MCU, using UART frames instead of direct GPIO sensor reads.
For newer variants, dpID 27 can be temperature, dpID 46 humidity, and dpID 101 battery. Map dpID 101 to a channel below 64, such as channel 10.
[#21442987]
Why does a battery-powered TH01 sensor show 0 temperature and 0 humidity when the WiFi module is powered externally?
It shows 0 because the MCU may not perform a real measurement cycle during external WiFi-only power. The TH01 MCU normally wakes the WiFi module, sends sensor frames, waits for reporting, then removes power. External 3.3 V keeps CB3S awake outside that sequence.
Configure OpenBeken while externally powered. Then disconnect external power and run on batteries. The MCU should wake the module for about 30 seconds during reporting windows and send the actual values.
[#20642216]
How can I find the correct TuyaMCU dpIDs for a TH01 sensor using TuyaMCUAnalyzer or a Tuya firmware dump?
Capture the original UART traffic or inspect a Tuya firmware/config dump. TuyaMCUAnalyzer can decode dpIDs from the factory protocol frames. Users identified common sets such as 1/2/3 and newer sets such as 27/46/101.
A factory dump can also reveal datapoints when analyzer tools work. If tools crash, compare logs from original firmware and OpenBeken. LocalTuya Device Datapoints also helped after connecting the device to Tuya Cloud.
[#21745509]
What is TuyaMCU and how does it control the WiFi module in battery-powered Tuya temperature sensors?
TuyaMCU is the separate low-power controller that manages measurements and WiFi power.
TuyaMCU is a board-level microcontroller system that talks to the WiFi module over UART, controls wake/report/sleep timing, and saves battery by switching the module off.
In TH01-style sensors, the SOIC MCU controls a transistor or power path. It powers CB3S only when it wants to report temperature, humidity, or battery data.
[#21402357]
What is tmSensor in OpenBeken and why is it needed for TuyaMCU battery temperature sensors?
tmSensor enables OpenBeken’s battery TuyaMCU sensor workflow.
tmSensor is an OpenBeken driver mode that coordinates TuyaMCU battery sensor reporting, expecting short wake windows and mapped datapoints instead of continuous sensor polling.
Start it with
startDriver tmSensor after
startDriver TuyaMCU. Without it, the device may not follow the expected temperature-sensor reporting sequence or may wait in the wrong state.
[#20642216]
Why might BK7231 GUI Flash Tool fail with “Getting bus failed” or UART buffer errors when flashing a TH01 sensor?
The flasher can fail when the MCU still drives the same UART lines. The thread shows “Getting bus failed” cases fixed by cutting RX/TX traces at the MCU. Other failures came from unstable 3.3 V power, grounding mistakes, baud-rate sensitivity, or GUI-tool environment issues.
One user reached 100% after changing the USB-serial ground connection. Another was advised to try
hid_download_py, which also works on Windows.
[#20627443]
When do I need to cut RX/TX traces, desolder the CB3S module, or disconnect the MCU before flashing a Tuya TH01?
Do it when the MCU interferes with UART flashing. TuyaMCU devices often share TX1/RX1 between the WiFi module and the MCU. If flashing fails repeatedly, isolate that link.
Valid options are cutting traces and restoring them, desoldering the BK7231 module, or temporarily desoldering the SOIC MCU. Some TH01 boards flash without this step, but the thread documents several boards that required RX/TX cuts.
[#20626343]
How do I configure MQTT and Home Assistant discovery for an OpenBeken TH01 sensor?
Set MQTT host, credentials, base topic, and enable Home Assistant discovery after mapping channels. A manual Home Assistant YAML example used
obk1F70E60F/1/get for temperature and
obk1F70E60F/2/get for humidity.
If the entity does not appear under MQTT devices, search Home Assistant entities directly. One user found the sensors existed even though they were not visible where expected. Redo discovery after changing channel types.
[#20845795]
Why does enabling Flag 33 or using a Home Assistant value_template make TH01 temperature values appear divided twice?
It happens because both OpenBeken and Home Assistant apply the same divide-by-10 conversion.
temperature_div10 or Flag 33 can publish 213 as 21.3 °C. A Home Assistant template multiplying by 0.1 again turns 21.3 into 2.13.
Use one conversion path only. Remove the Home Assistant
value_template if OpenBeken already publishes the scaled temperature.
[#20517650]
How can I get TuyaMCU debug logs in the OpenBeken Web App for a TH01 sensor?
Enable full TuyaMCU logging before starting the driver. Put
logfeature 12 1 and
loglevel 6 before
startDriver TuyaMCU in
autoexec.bat.
Then open the Web App logs while the MCU powers the module. If no TuyaMCU frames appear, check baud rate, UART port selection, flag 26, and whether the board actually has a TuyaMCU. Some variants required 115200 baud.
[#21552004]
What is the difference between CB3S, CBU, BK7231N, and BK7231T modules in Tuya temperature and humidity sensors?
CB3S and CBU are Tuya WiFi module boards; BK7231N and BK7231T are Beken chip families used on such modules. The thread’s TH01 units mainly used BK7231N CB3S or CBU.
Firmware choice must match the chip. Users flashed BK7231N binaries for CB3S/CBU units discussed here. Some sensors used CHT8310, CHT8315, AHT20, or AHT30, changing the driver or dpID approach.
[#20873676]
WiFi vs Zigbee vs BLE temperature sensors: which is better for Home Assistant battery life and reliability?
Zigbee or BLE is usually better for battery sensors; WiFi works but needs careful tuning. One user preferred Zigbee after seeing poor battery life with frequent WiFi updates. Later posts suggested BLE THB2 with BTHome and an ESP32 Bluetooth proxy.
WiFi TH01 sensors remain useful where only WiFi coverage exists. Expect more flashing effort and shorter battery life than Zigbee or BLE alternatives.
[#20588120]
How can I improve battery life on OpenBeken TuyaMCU temperature sensors using quick connect, static IP, MQTT settings, and battery ACK delay?
Improve battery life by reducing connection time and MQTT traffic during each wake. Enable WiFi quick connect, use static IP, and reduce boot-ok time from 5 s to 3 s or even 1 s after testing.
Set
mqtt_broadcastItemsPerSec 9 to push data faster. Disable diagnostic broadcasts by unsetting flags 2 and 10. Newer builds also support
tuyaMcu_setBatteryAckDelay to delay the ACK sent back to the MCU.
[#21651099]
How can I publish OpenBeken TH01 MQTT data to ThingSpeak with custom topics like channels/myid/publish and selected fields?
The thread asks for ThingSpeak publishing, but gives no confirmed working OpenBeken command recipe. The requested payload was
channels/myid/publish with fields like
field1=$CH1&field2=$CH3.
OpenBeken normally publishes channel topics such as
base/1/get. For ThingSpeak, use a broker bridge, automation, or script that repackages OBK MQTT messages into ThingSpeak’s required topic and field format. The thread also asked whether
connected broadcasts can be disabled.
[#21339167]
AI summary based on the discussion. May contain errors.