logo elektroda
logo elektroda
X
logo elektroda

Home Heating Gas Thermostats Compatible with OpenBeken or Custom Firmware

gandi69 417 35
ADVERTISEMENT
  • #31 21737091
    gandi69
    Level 3  
    Info:CMD:[WebApp Cmd 'tuyaMcu_sendQueryState' Result] OK
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 01 01 00 01 01 12
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 1 type 1-bool len 1
    Info:TuyaMCU:ParseState: byte 1
    Info:TuyaMCU:Received: 55 AA 03 07 00 08 03 02 00 04 00 00 00 B6 D0
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 15
    Info:TuyaMCU:ParseState: id 3 type 2-val len 4
    Info:TuyaMCU:ParseState: int32 182
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 04 04 00 01 01 18
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 4 type 4-enum len 1
    Info:TuyaMCU:ParseState: byte 1
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 05 04 00 01 00 18
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 5 type 4-enum len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 08 01 00 01 00 18
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 8 type 1-bool len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 0D 01 00 01 00 1D
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 13 type 1-bool len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 10 05 00 01 00 24
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 16 type 5-bitmap len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 08 14 02 00 04 FF FF FF FB 23
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 15
    Info:TuyaMCU:ParseState: id 20 type 2-val len 4
    Info:TuyaMCU:ParseState: int32 -5
    Info:TuyaMCU:Received: 55 AA 03 07 00 08 15 02 00 04 00 00 00 1C 48
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 15
    Info:TuyaMCU:ParseState: id 21 type 2-val len 4
    Info:TuyaMCU:ParseState: int32 28
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 19 04 00 01 00 2C
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 25 type 4-enum len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 1A 01 00 01 00 2A
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 26 type 1-bool len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 1F 01 00 01 00 2F
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 31 type 1-bool len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 29 04 00 01 01 3D
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 41 type 4-enum len 1
    Info:TuyaMCU:ParseState: byte 1
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 2A 04 00 01 02 3F
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 42 type 4-enum len 1
    Info:TuyaMCU:ParseState: byte 2
    Info:TuyaMCU:Received: 55 AA 03 07 00 24 2B 00 00 20 02 02 00 78 06 1E 00 D2 07 1E 00 78 0C 1E 00 78 11 00 00 78 17 00 00 78 08 00 00 78 17 00 00 78 50
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 43
    Info:TuyaMCU:ParseState: id 43 type 0-raw len 32
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 65 01 00 01 00 75
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 101 type 1-bool len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 08 69 02 00 04 00 00 00 05 85
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 15
    Info:TuyaMCU:ParseState: id 105 type 2-val len 4
    Info:TuyaMCU:ParseState: int32 5
    Info:TuyaMCU:Received: 55 AA 03 07 00 08 6B 02 00 04 00 00 00 1C 9E
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 15
    Info:TuyaMCU:ParseState: id 107 type 2-val len 4
    Info:TuyaMCU:ParseState: int32 28
    Info:TuyaMCU:Received: 55 AA 03 07 00 08 02 02 00 04 00 00 00 78 91
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 15
    Info:TuyaMCU:ParseState: id 2 type 2-val len 4
    Info:TuyaMCU:ParseState: int32 120

    Added after 3 [minutes]:

    And this is the config from the newer unit along with its firmware backup

    Info:CMD:[WebApp Cmd 'tuyaMcu_sendQueryState' Result] OK
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 01 01 00 01 01 12
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 1 type 1-bool len 1
    Info:TuyaMCU:ParseState: byte 1
    Info:TuyaMCU:Received: 55 AA 03 07 00 08 02 02 00 04 00 00 00 EB 04
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 15
    Info:TuyaMCU:ParseState: id 2 type 2-val len 4
    Info:TuyaMCU:ParseState: int32 235
    Info:TuyaMCU:Received: 55 AA 03 07 00 08 03 02 00 04 00 00 00 A7 C1
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 15
    Info:TuyaMCU:ParseState: id 3 type 2-val len 4
    Info:TuyaMCU:ParseState: int32 167
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 04 04 00 01 00 17
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 4 type 4-enum len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 05 04 00 01 01 19
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 5 type 4-enum len 1
    Info:TuyaMCU:ParseState: byte 1
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 09 01 00 01 00 19
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 9 type 1-bool len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 0B 05 00 01 00 1F
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 11 type 5-bitmap len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 08 0F 02 00 04 00 00 00 3C 62
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 15
    Info:TuyaMCU:ParseState: id 15 type 2-val len 4
    Info:TuyaMCU:ParseState: int32 60
    Info:TuyaMCU:Received: 55 AA 03 07 00 08 13 02 00 04 FF FF FF F6 1D
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 15
    Info:TuyaMCU:ParseState: id 19 type 2-val len 4
    Info:TuyaMCU:ParseState: int32 -10
    Info:TuyaMCU:Received: 55 AA 03 07 00 24 69 00 00 20 06 00 00 C8 08 00 00 A0 0B 1E 00 A0 0C 1E 00 A0 11 00 00 DC 16 00 00 A0 08 00 00 DC 17 00 00 A0 FD
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 43
    Info:TuyaMCU:ParseState: id 105 type 0-raw len 32
    Info:TuyaMCU:Received: 55 AA 03 07 00 08 66 02 00 04 00 00 00 3C B9
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 15
    Info:TuyaMCU:ParseState: id 102 type 2-val len 4
    Info:TuyaMCU:ParseState: int32 60
    Info:TuyaMCU:Received: 55 AA 03 07 00 08 65 02 00 04 00 00 00 0A 86
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 15
    Info:TuyaMCU:ParseState: id 101 type 2-val len 4
    Info:TuyaMCU:ParseState: int32 10
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 67 01 00 01 00 77
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 103 type 1-bool len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 6D 01 00 01 01 7E
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 109 type 1-bool len 1
    Info:TuyaMCU:ParseState: byte 1
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 6C 01 00 01 00 7C
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 108 type 1-bool len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 6A 04 00 01 03 80
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 106 type 4-enum len 1
    Info:TuyaMCU:ParseState: byte 3
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 6E 04 00 01 00 81
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 110 type 4-enum len 1
    Info:TuyaMCU:ParseState: byte 0
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 6B 04 00 01 01 7F
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 107 type 4-enum len 1
    Info:TuyaMCU:ParseState: byte 1
    Info:TuyaMCU:Received: 55 AA 03 07 00 05 68 01 00 01 00 78
    Info:TuyaMCU:ProcessIncoming[v=3]: cmd 7 (State) len 12
    Info:TuyaMCU:ParseState: id 104 type 1-bool len 1
    Info:TuyaMCU:ParseState: byte 0
  • ADVERTISEMENT
  • #32 21737264
    gandi69
    Level 3  
    Does anyone have a config I can use a base from another thermostat maybe?

    mine is currently like this yet it doesnt really behave itself:

    // ======================================================
    // TuyaMCU Configuration for Thermostat
    // Fixed Target Temperature Slider + Clean Rules
    // ======================================================

    // -------------------- Startup --------------------
    startDriver TuyaMCU
    tuyaMcu_defWiFiState 4
    // tuyaMcu_setBaudRate 115200 // Uncomment if required for your MCU


    // =====================================================
    // POWER (DPID 1)
    // =====================================================
    setChannelLabel 1 "Power"
    setChannelType 1 Toggle
    linkTuyaMCUOutputToChannel 1 val 1
    linkTuyaMCUInputToChannel 1 val 1



    // =====================================================
    // TARGET TEMPERATURE (DPID 2)
    // =====================================================

    // ---- Channel 2: Dimmer-type slider linked directly to MCU ----
    setChannelLabel 2 "Target Temperature"
    setChannelType 2 Dimmer
    // MCU expects °C×10. We'll map 5.0–35.0 °C → 50–350
    tuyaMcu_setDimmerRange 50 350
    setChannelMin 2 50
    setChannelMax 2 350
    setChannelStep 2 5
    // Automatically synchronize both directions
    linkTuyaMCUOutputToChannel 2 val 2
    linkTuyaMCUInputToChannel 2 val 2

    // ---- Channel 21: readback in °C (converted from x10) ----
    setChannelLabel 21 "Target °C →"
    setChannelType 21 Temperature_div10
    linkTuyaMCUOutputToChannel 2 val 21



    // =====================================================
    // CURRENT TEMPERATURE (DPID 3)
    // =====================================================
    setChannelLabel 3 "← Current °C"
    setChannelType 3 Temperature_div10
    linkTuyaMCUOutputToChannel 3 val 3



    // =====================================================
    // WORK MODE (DPID 4) + STATE (DPID 5)
    // =====================================================
    setChannelLabel 4 "Work Mode"
    setChannelType 4 Enum
    setEnumLabel 4 0 "Home"
    setEnumLabel 4 1 "Auto"
    setEnumLabel 4 2 "Temporary"
    linkTuyaMCUOutputToChannel 4 val 4
    linkTuyaMCUInputToChannel 4 val 4

    setChannelLabel 5 "Work State"
    setChannelType 5 Enum
    linkTuyaMCUOutputToChannel 5 val 5



    // =====================================================
    // EXTRAS
    // =====================================================
    setChannelLabel 6 "Child Lock"
    setChannelType 6 Toggle
    linkTuyaMCUOutputToChannel 9 val 6
    linkTuyaMCUInputToChannel 6 val 9

    setChannelLabel 7 "Fault Alarm"
    setChannelType 7 Fault
    linkTuyaMCUOutputToChannel 11 val 7

    setChannelLabel 8 "Upper Temp Limit"
    setChannelType 8 Temperature
    linkTuyaMCUOutputToChannel 15 val 8
    linkTuyaMCUInputToChannel 8 val 15

    setChannelLabel 9 "Temp Correction"
    setChannelType 9 Temperature_div10
    linkTuyaMCUOutputToChannel 19 val 9
    linkTuyaMCUInputToChannel 9 val 19

    setChannelLabel 10 "Start Differential"
    setChannelType 10 Temperature_div10
    linkTuyaMCUOutputToChannel 101 val 10
    linkTuyaMCUInputToChannel 10 val 101

    setChannelLabel 11 "Sensor Limit Temp"
    setChannelType 11 Temperature
    linkTuyaMCUOutputToChannel 102 val 11
    linkTuyaMCUInputToChannel 11 val 102

    setChannelLabel 12 "Anti-Frost"
    setChannelType 12 Toggle
    linkTuyaMCUOutputToChannel 103 val 12
    linkTuyaMCUInputToChannel 12 val 103

    setChannelLabel 13 "Factory Reset"
    setChannelType 13 Button
    addEventHandler OnClick13 sendTuyaMCUValue 104 1

    setChannelLabel 15 "Backlight"
    setChannelType 15 Enum
    linkTuyaMCUOutputToChannel 106 val 15

    setChannelLabel 16 "Workdays"
    setChannelType 16 Enum
    linkTuyaMCUOutputToChannel 107 val 16

    setChannelLabel 17 "Output Polarity"
    setChannelType 17 Toggle
    linkTuyaMCUOutputToChannel 108 val 17
    linkTuyaMCUInputToChannel 17 val 108

    setChannelLabel 18 "Sound"
    setChannelType 18 Toggle
    linkTuyaMCUOutputToChannel 109 val 18
    linkTuyaMCUInputToChannel 18 val 109

    setChannelLabel 19 "Sensor Select"
    setChannelType 19 Enum
    linkTuyaMCUOutputToChannel 110 val 19
    linkTuyaMCUInputToChannel 19 val 110



    // =====================================================
    // RULES (Work-mode presets)
    // =====================================================
    removeEventHandlerAll

    // Mode 0 = Home → 21.0 °C
    addEventHandler Channel4==0 sendTuyaMCUValue 2 210

    // Mode 1 = Auto → 27.0 °C
    addEventHandler Channel4==1 sendTuyaMCUValue 2 270

    // Mode 2 = Temporary → 18.0 °C
    addEventHandler Channel4==2 sendTuyaMCUValue 2 180

    // ======================================================
  • ADVERTISEMENT
  • ADVERTISEMENT
  • #34 21737711
    gandi69
    Level 3  
    when you guys get chance can see if you can have a look at the second backup? thanks in advance
  • ADVERTISEMENT
  • #36 21737755
    gandi69
    Level 3  
    Thank you, doesn’t look like these dpld values align to me. Id2 is not the set the desired temperature

Topic summary

The discussion focuses on identifying home heating gas thermostats compatible with OpenBeken (OBK) or similar custom firmware to replace Tuya-based units with limited programmability. Most Tuya devices can be flashed with OBK, but newer models may require additional modifications beyond flashing. The user seeks recommendations for thermostats already supported or easily adaptable to OBK to avoid cloud dependency. A specific interest is in replicating the ME81H thermostat configuration, which uses a Realtek 8710c chip, rather than switching to ESP32. The current thermostat uses a WBR3 chip, similar to the ME81H. There is uncertainty about OpenBeken's support for DPLDs to transfer Tasmota configurations, with a fallback option to solder an ESP-12 or ESP32 module due to their low cost. The default OpenBeken release supports TuyaMCU, suggesting potential compatibility. Due to difficulty sourcing an ME81H with gas boiler support on AliExpress, the user considers purchasing a Minco thermostat from Amazon and modifying their existing Minco unit. An AliExpress link to a potential device for testing OBK compatibility was shared but without clear model identification.
Summary generated by the language model.
ADVERTISEMENT