logo elektroda
logo elektroda
X
logo elektroda

Request for Help – Flashing Della Minisplit WiFi Module (WBR3 on TCWBRCU1)

dressyspider 13878 265
ADVERTISEMENT
  • #211 21597558
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    That's good to hear. Do you have any suggestions for potential improvements of this driver?
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #212 21598454
    AbidingOhmsLaw
    Level 9  
    Posts: 24
    Help: 1
    Rate: 5
    [postid:70523b0c94][/postid:70523b0c94] Not at this time, not with the driver anyway, hell the few issues I have are with the Della itself, the remotes are IR are only one way communication. OpenBeken and the Driver has been working awesomely and I can access all the needed functionality with the climate card is HA. I have not tried heat mode but would not expect any issues.
  • #213 21628810
    Mushinronsha
    Level 2  
    Posts: 2
    Hello and first and foremost, thank you for the job well done on OpenBeken, I've been enjoying both the process of converting my IoT devices to OpenBeken, and freeing them from Tuya at the same time. After installing HA yesterday, I went ahead and flashed OpenBeken as well as configured MQTT for the first time for my WBR3 module controlled A/C unit. The reason I'm posting is I noticed that when using the remote control, the smart thermostat entity in HA doesn't update. I can use HA to turn the A/C on when it's off and it properly displays its state change after doing so. In RTL87X0C.local ip, the state of the A/C and its change via remote, are properly reflected. MQTT is also (99% sure, at least I hope so) correctly configured since it says that it's connected. These is the repeating portion I get from the device's log when it's off.

    
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/FANMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/Display/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/SwingH/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/SwingV/get
    Info:MQTT:Publishing val 26 to AirwavePlus/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 26 to AirwavePlus/TargetTemperature/get retain=0
    Info:MQTT:Publishing val off to AirwavePlus/ACMode/get retain=0
    Info:MQTT:Publishing val 4 to AirwavePlus/FANMode/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Display/get retain=0
    Info:MQTT:Publishing val fix_mid to AirwavePlus/SwingH/get retain=0
    Info:MQTT:Publishing val fix_mid to AirwavePlus/SwingV/get retain=0
    


    and this is what I get when it's on:

    
    Info:MQTT:Publishing val 27 to AirwavePlus/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 26 to AirwavePlus/TargetTemperature/get retain=0
    Info:MQTT:Publishing val auto to AirwavePlus/ACMode/get retain=0
    Info:MQTT:Publishing val 4 to AirwavePlus/FANMode/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Display/get retain=0
    Info:MQTT:Publishing val fix_mid to AirwavePlus/SwingH/get retain=0
    Info:MQTT:Publishing val fix_mid to AirwavePlus/SwingV/get retain=0
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/FANMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/Display/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/SwingH/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic AirwavePlus/SwingV/get
    


    both of the logs seem OK to me so hence my post asking for help.

    Also, the only active flags are 10,29,37 and 51.

    Again thank you all participating devs for the wonderful endeavor and congrats on the road so far. TIA for your time.
  • #214 21628822
    AbidingOhmsLaw
    Level 9  
    Posts: 24
    Help: 1
    Rate: 5
    Hmm, I have not had issue with the remote not setting the HA card, the only thing I have noticed is that the remote itself won't update when changing setting via the HA card. That is to be expected though as it only has 1-way IR communications. I did scare myself with that as I had turned on my unit with the remote and it was not blowing cool air, the remote was last used to set heat and when I turned on the unit with the remote it resent the heat settings.


    If you change a setting using the remote, do you see that change coming across in the MQTT topic?
  • #215 21628960
    Mushinronsha
    Level 2  
    Posts: 2
    Sorry for taking so long to reply, I'm in really deep as I didn't check any other modes after flashing WBR3 with OpenBeken's latest version 1.18.145 yesterday. I only tried and used Cooling and Fan Only modes since it's summer here in Greece.

    AbidingOhmsLaw wrote:
    I have not had issue with the remote not setting the HA card


    It might be my mistake phrasing my problem incorrectly, no worries though - let me rephrase and also add some new information:

    The problem I referred to in my previous post is that while it's off and I turn it on using the remote, the off>on state change is not reflected in HA.

    At that point, pressing the MODE button on the remote control to go from

    cooling > heating
    cooling > fan only
    fan only > cooling
    fan only > heating
    heating > cooling
    heating > fan only

    is reflected correctly in HomeAssistant. For reasons unknown, it now behaves correctly and updates HA when turned on using both the remote and OpenBeken's webserver. As far as HomeAssistant is concerned, using the remote to turn the unit off and on as well as switching to Cooling/Heating or Fan only modes work. Auto or Dry modes are not reflected in HomeAssistant, something understandable since I'm not presented with those options in HA - don't know/think they are implemented yet. Also, changing Fan modes (1-5, Mute, Turbo and Auto) appear to be working.

    FWIW, using the remote, I can switch to Drying or Auto mode and that's reflected in OpenBeken's webserver. So all's well that ends well? No, my RTL87X0C doesn't thinks so.

    To reiterate, the problem I spoke of in my first post -change in state from off to on using the remote- probably was some kind of a fluke - I guess it was resolved after I restarted the RTL87X0C module. Interestingly though, this endeavour led me to somethings I can only as bugs in OpenBeken's side.

    OpenBeken's webserver updates correctly when cycling through all 5 different modes using the remote and and the 3 HomeAssistant is capable of setting, namely cooling, fan only and heating. What is wrong then?

    Since I got into the process of finding out what works and what doesn't, I noticed that using the remote and cycling modes to auto or dry, doesn't reflect on HA. I tried to do the same thing from OpenBeken. If I understand it correctly it should be like this (correct me if I'm wrong anywhere)

    ACMode:

    off turns off the unit - works
    1 cooling - works
    2 drying - undetectable from HA - works
    3 fan only - works
    4 heating - works
    5 Judging by the order which my remote can cycle modes, I'd expect 5 to set the mode to Auto, but for some reason I don't understand, number 5 sets the unit to Heat. Nevertheless, the command sent when selecting number 5 registers - I hear the confirmation beep and "Mode" under "SwingV" switches to Heat.

    Now, for the more interesting part. Buttons Mute and Turbo in OpenBeken turn the unit off.

    Auto It seems that Auto mode - not Fan Auto mode, can be set using the last ACMode button all the way to the right.

    FWIW, as I previously said above, in OpenBeken's UI visible from RTL87X0C.local webserver, cycling modes using the remote works perfectly. Thus I can infer that the problem is in OpenBeken's webserver part. But in any case, the way the UI is right now, having buttons that control the fan speed and the ac mode in the same controller is confusing. IMHO I think it would be prefferable to have 2 modes: AC and Fan, the way it is in HomeAssistant.

    Quote:
    If you change a setting using the remote, do you see that change coming across in the MQTT topic?


    Fan Modes with Cooling - It's really interesting to correlate "fan modes"

    1 of 5

    Quote:

    Warn:EnergyMeter:Ok we got reply with mode 1, fan 1, turbo 0, mute 0
    Warn:EnergyMeter:fan 01
    Warn:EnergyMeter:mode 01
    Info:MQTT:Publishing val 28 to AirwavePlus/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 26 to AirwavePlus/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to AirwavePlus/ACMode/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/FANMode/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Display/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingH/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingV/get retain=0


    2 of 5

    Quote:

    Warn:EnergyMeter:Ok we got reply with mode 1, fan 4, turbo 0, mute 0
    Warn:EnergyMeter:fan 04
    Warn:EnergyMeter:mode 01
    Info:MQTT:Publishing val 28 to AirwavePlus/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 26 to AirwavePlus/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to AirwavePlus/ACMode/get retain=0
    Info:MQTT:Publishing val 2 to AirwavePlus/FANMode/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Display/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingH/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingV/get retain=0


    3 of 5

    Quote:

    Warn:EnergyMeter:Ok we got reply with mode 1, fan 2, turbo 0, mute 0
    Warn:EnergyMeter:fan 02
    Warn:EnergyMeter:mode 01
    Info:MQTT:Publishing val 28 to AirwavePlus/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 26 to AirwavePlus/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to AirwavePlus/ACMode/get retain=0
    Info:MQTT:Publishing val 3 to AirwavePlus/FANMode/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Display/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingH/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingV/get retain=0


    4 of 5

    Quote:

    Warn:EnergyMeter:Ok we got reply with mode 1, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MQTT:Publishing val 28 to AirwavePlus/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 26 to AirwavePlus/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to AirwavePlus/ACMode/get retain=0
    Info:MQTT:Publishing val 4 to AirwavePlus/FANMode/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Display/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingH/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingV/get retain=0


    5 of 5

    Quote:

    Warn:EnergyMeter:Ok we got reply with mode 1, fan 3, turbo 0, mute 0
    Warn:EnergyMeter:fan 03
    Warn:EnergyMeter:mode 01
    Info:MQTT:Publishing val 28 to AirwavePlus/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 26 to AirwavePlus/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to AirwavePlus/ACMode/get retain=0
    Info:MQTT:Publishing val 5 to AirwavePlus/FANMode/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Display/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingH/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingV/get retain=0


    Turbo

    Quote:

    Warn:EnergyMeter:Ok we got reply with mode 1, fan 3, turbo 1, mute 0
    Warn:EnergyMeter:fan 03
    Warn:EnergyMeter:mode 01
    Info:MQTT:Publishing val 28 to AirwavePlus/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 26 to AirwavePlus/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to AirwavePlus/ACMode/get retain=0
    Info:MQTT:Publishing val turbo to AirwavePlus/FANMode/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Display/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingH/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingV/get retain=0


    Auto

    Quote:

    Warn:EnergyMeter:Ok we got reply with mode 1, fan 0, turbo 0, mute 0
    Warn:EnergyMeter:fan 00
    Warn:EnergyMeter:mode 01
    Info:MQTT:Publishing val 28 to AirwavePlus/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 26 to AirwavePlus/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to AirwavePlus/ACMode/get retain=0
    Info:MQTT:Publishing val auto to AirwavePlus/FANMode/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Display/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingH/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingV/get retain=0


    Mute

    Quote:

    Warn:EnergyMeter:Ok we got reply with mode 1, fan 1, turbo 0, mute 1
    Warn:EnergyMeter:fan 01
    Warn:EnergyMeter:mode 01
    Info:MQTT:Publishing val 28 to AirwavePlus/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 26 to AirwavePlus/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to AirwavePlus/ACMode/get retain=0
    Info:MQTT:Publishing val mute to AirwavePlus/FANMode/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to AirwavePlus/Display/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingH/get retain=0
    Info:MQTT:Publishing val none to AirwavePlus/SwingV/get retain=0


    I think something is very wrong with the way OpenBeken displays fanspeeds. I'm here for any further debugging if I can help it.

    Edit to include MQTT portion of the logs. As you can see, MQTT correctly reflects changes, which except Dry and Auto ACModes, HomeAssistant can utilize. The problem is the fan values sent from ACModes-FanModes in OpenBeken's webserver, the use of the remote works fine.
  • #216 21759103
    vietxtlife
    Level 8  
    Posts: 26
    Help: 1
    Rate: 2
    Could you guys add one more function to make this perfect, please?
    Would love to have option to control how much power the inverter uses and report to HA how much the inverter is using if possible. Thanks guys for all your hard work
    The OEM firmware has options for GEN at 30%, 50%, and 80%.

    Added after 9 [hours] 19 [minutes]:

    @p.kaczmarek2 hi, first of all thank you for the great work that you guys did.. so i have a favor to ask, my mini split have a function call GEN, which control how much the inverter compressor allow to run so its could be more efficient. could you add GEN option to the driver, that would make it perfect. thank you
  • #217 21759561
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    Hey can you provide more info on how GEN works? I don't have this specific device at hand, but I can add a feature once you provide me generic information on why and how. Is the GEN included in the protocol?
    Helpful post? Buy me a coffee.
  • #218 21759932
    vietxtlife
    Level 8  
    Posts: 26
    Help: 1
    Rate: 2
    >>21759561 Yes, it has the DPID of 120 energy 发电机模式 enum true off, L1, L2, L3. L1 is 30%, L2 is 50% and L3 is 80% of power consumption. I have the wbr3 desoldered and soldered in another one in its place flashed with OpenRTL87X0C_1.18.217.bin so can't show screenshot of how Tuya app displays the option.
    Thank you for the very fast response
  • #219 21759943
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    So TuyaMCU? Not a custom protocol?

    I am confused, because earlier in this topic we were working on custom protocol support?

    Can you provide a detailed information and summary of the device you have, model name, photos, screenshots from store where it was bought, etc?
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #221 21759952
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    What did you flash? Is the basics working? Can you control it via OBK?
    Helpful post? Buy me a coffee.
  • #222 21759995
    vietxtlife
    Level 8  
    Posts: 26
    Help: 1
    Rate: 2
    >>21759952 Yes, everything works. Flash the new WBR3 w
    Shed AC control panel with air conditioning settings and system status ith OpenRTL87X0C_1.18.217.bin I still have the original WBR3 with stock firmware aside just in case

    Shed AC control panel with air conditioning settings and system status

    Added after 4 [hours] 49 [minutes]:

    @p.kaczmarek2 i just dumped the stock firmware from the stock WBR3

    Added after 19 [minutes]:

    got schema from tuya api dont know if its helps
    Attachments:
    • dellajson.txt (11.25 KB) You must be logged in to download this attachment.
    • della schema.txt (41.2 KB) You must be logged in to download this attachment.
  • #223 21760381
    divadiow
    Level 38  
    Posts: 4880
    Help: 427
    Rate: 869
    Code: Text
    Log in, to see the code

    = TCL USB Adapter Board for Export

    Code: JSON
    Log in, to see the code
  • #224 21760566
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    So in the end it looks like you are requesting for a feature to be added there:
    https://github.com/openshwprojects/OpenBK7231T_App/blob/main/src/driver/drv_tclAC.c
    ?

    But we would need the packet syntax for that 120 energy 发电机模式 enum true off, L1, L2, L3. L1 is 30%, L2 is 50% and L3 is 80% of power consumption.... It's not TuyaMCU, in this case.

    Do we know it?
    Helpful post? Buy me a coffee.
  • #225 21760784
    vietxtlife
    Level 8  
    Posts: 26
    Help: 1
    Rate: 2
    That’s it, new features to be added — that’s exactly it. Sorry, my coding knowledge and IoT wizardry are very limited, next to none, so if you could show me how to get the syntax packets I will surely jump on it. Thank you for everyone's help
  • #226 21760841
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    insmod wrote:
    It seems your device is not a TuyaMCU, but using a custom protocol.
    See https://github.com/adaasch/AC-hack
    https://github.com/lNikazzzl/tcl_ac_esphome/tree/master

    Well it sure doesn't look like this variable is known?

    Or maybe...
    You said:
    
    enum true off, L1, L2, L3. L1 is 30%, L2 is 50% and L3 is 80%
    

    There are 4 options? Or 5 options?
    I am asking because...
    It says 0x0 is off and 0x04 is On, and if so, what is 0x1, 0x2, and 0x3?
    Would it be possible that 0x1 is L1, 0x2 is L2, and 0x3 is L3 (80%)? And 0x4 is .... idk, L4 - 100%? I do not even what the "L" here means...

    And in our SDK...
    Command byte table with function bits and union structure for value setting
    Those two bits are unnamed. Maybe we should try setting them?
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #227 21760848
    vietxtlife
    Level 8  
    Posts: 26
    Help: 1
    Rate: 2
    >>21760841 I think there are only 4 options:
    {
    "mode": "rw",
    "property": {
    "range": [
    "0",
    "1",
    "2",
    "3"
    ],
    "type": "enum"
    },
    "id": 119,
    "type": "obj"
    },
    {
    "mode": "rw",
    "property": {
    "range": [
    "off",
    "L1",
    "L2",
    "L3"
    ],
    "type": "enum"
    },
    Ranging from off to L3, so I guess like you said 0x0 is "off", 0x1 is "L1" ...
  • #228 21760855
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    We can just try it and see if it works, but the question is, can you tell if it works, somehow? I don't know, is there a LCD on the device that will show this option?

    Added after 16 [seconds]:

    We can just try it and see if it works, but the question is, can you tell if it works, somehow? I don't know, is there a LCD on the device that will show this option?
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #229 21760863
    vietxtlife
    Level 8  
    Posts: 26
    Help: 1
    Rate: 2
    Yes, in the Tuya app it's shown that which GEN option is currently in use. Also, in HA via Tuya there are selections to set GEN options for automation. As for right now, the stock WBR3 is not soldered to the USB module, so I can't get SS to show. Give me a few; I will desolder WBR3 and solder back the stock one and take SS.
  • #230 21760893
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    No, I asked, for device with OBK - if we set it in OBK, do you have a way to check if it has been set correctly.
    Helpful post? Buy me a coffee.
  • #231 21760897
    vietxtlife
    Level 8  
    Posts: 26
    Help: 1
    Rate: 2
    You mean check via MQTT log?

    Edit:
    Like these? I'm sorry, I'm so bad with these, lol. I shouldn't even attempt to mod anything

    Warn:EnergyMeter:Initial size: 61Warn:EnergyMeter:BB 01 00 04 37 04 00 14 85 00 80 00 00 00 00 00 00 69 03 88 00 00 00 00 00 00 00 00 00 00 69 FF 42 00 00 1E 1D 2C 00 00 C0 00 00 00 00 79 00 00 00 44 40 05 05 00 00 1A 00 00 00 00 22 Warn:EnergyMeter:Ok we got reply with mode 1, fan 0, turbo 0, mute 0Warn:EnergyMeter:fan 00Warn:EnergyMeter:mode 04Info:MAIN:Time 83406, idle 0/s, free 51784, MQTT 1(327), bWifi 1, secondsWithNoPing -1, socks 2/21 Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic bedroom_aircond/CurrentTemperature/getInfo:MQTT:MQTT client in mqtt_incoming_publish_cb topic bedroom_aircond/TargetTemperature/getInfo:MQTT:MQTT client in mqtt_incoming_publish_cb topic bedroom_aircond/ACMode/getInfo:MQTT:MQTT client in mqtt_incoming_publish_cb topic bedroom_aircond/FANMode/getInfo:MQTT:MQTT client in mqtt_incoming_publish_cb topic bedroom_aircond/Buzzer/getInfo:MQTT:MQTT client in mqtt_incoming_publish_cb topic bedroom_aircond/Display/getInfo:MQTT:MQTT client in mqtt_incoming_publish_cb topic bedroom_aircond/SwingH/getInfo:MQTT:MQTT client in mqtt_incoming_publish_cb topic bedroom_aircond/SwingV/getInfo:MQTTublishing val 21 to bedroom_aircond/CurrentTemperature/get retain=0Info:MQTTublishing val 21 to bedroom_aircond/TargetTemperature/get retain=0Info:MQTTublishing val heat to bedroom_aircond/ACMode/get retain=0Info:MQTTublishing val auto to bedroom_aircond/FANMode/get retain=0Info:MQTTublishing val 0 to bedroom_aircond/Buzzer/get retain=0Info:MQTTublishing val 0 to bedroom_aircond/Display/get retain=0Info:MQTTublishing val fix_right to bedroom_aircond/SwingH/get retain=0Info:MQTTublishing val fix_bottom to bedroom_aircond/SwingV/get retain=0Warn:EnergyMeter:Initial size: 61Warn:EnergyMeter:BB 01 00 04 37 04 00 14 85 00 80 00 00 00 00 00 00 69 03 88 00 00 00 00 00 00 00 00 00 00 69 FF 42 00 00 1E 1D 2C 00 00 C0 00 00 00 00 79 00 00 00 44 40 05 05 00 00 1A 00 00 00 00 22 Warn:EnergyMeter:Ok we got reply with mode 1, fan 0, turbo 0, mute 0Warn:EnergyMeter:fan 00Warn:EnergyMeter:mode 04Info:MAIN:Time 83407, idle 0/s, free 51784, MQTT 1(327), bWifi 1, secondsWithNoPing -1, socks 2/21
  • #232 21760951
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    No. I am not asking about OBK, I know OBK very well.

    I am asking if there is a way to check this setting on device LCD or something. This is because, once we send it from OBK to the device, we need to be able to tell if the device has executed the command correctly or not...
    Helpful post? Buy me a coffee.
  • #233 21760959
    vietxtlife
    Level 8  
    Posts: 26
    Help: 1
    Rate: 2
    >>21760951 The display on the unit does not change when this GEN option is engaged with the Tuya app, so I guess there won't be a way to tell if the command executed. Sorry. Maybe that is why this option was not supported in the first place lol. Still, your attempts are greatly appreciated
  • #234 21760967
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    Hmmm so there is no way to tell whether GEN option is working?

    Well, I have a basic idea of what we can try to add it for you, but the question is, would you be able to give me feedback and tell whether it worked or not?

    I don't know, maybe you can measure the power of the device, or check if it's louder or silent, I don't know, just guessing. I never seen that AC myself.
    Helpful post? Buy me a coffee.
  • #235 21760969
    vietxtlife
    Level 8  
    Posts: 26
    Help: 1
    Rate: 2
    Through the Tuya app, whenever I engage the GEN option like L1, the power consumption drops sufficiently. I monitor power consumption via the inverters
  • #236 21760984
    divadiow
    Level 38  
    Posts: 4880
    Help: 427
    Rate: 869
    probably no help, but I got GPT to make this Python thing so the Tuya_Align_Della-048-TP-12K1V-22S-1_(schemaID-000001nbrw)_key73j3uh4c3dhqn_u9jjsaluqe1trtxv_TuyaMCU_WBR3_1.1.14.bin dump for this latest Della variant can finish booting and get into pairing mode.

    still, dunno what the real MCU should respond with when sending these GEN options from the Tuya app.

    Code: Python
    Log in, to see the code


    Terminal window with repeated communication logs between Wi-Fi module and AC unit

    Does this paired device even look like yours @vietxtlife?

    Air conditioner app screen showing 23°C set temperature
  • #237 21760993
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    Nice idea @divadiow , I would need to see packets send with multiple gen modes, where do they differ
    Helpful post? Buy me a coffee.
  • #238 21761050
    vietxtlife
    Level 8  
    Posts: 26
    Help: 1
    Rate: 2
    >>21760984 Similar but not quite, though I think seeing how much power the unit consumes when each GEN option activates is adequate indicator; what you think? Maybe not precise enough but still an indicator
    GEN options are the limit of how much the mini split will use as the options activate.
    Added after 5 [minutes]:


    Air conditioning control app interface set to 75°F with fan mode on “Mid-High”
  • #239 21761063
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    So basically I'll try to add option to change those two bits, you'll run it on your device, use it, and check if the power consumption changes?
    Helpful post? Buy me a coffee.
  • #240 21761066
    vietxtlife
    Level 8  
    Posts: 26
    Help: 1
    Rate: 2
    >>21761063 Yes, yes, you just got the word out of my head, lol.

Topic summary

✨ The discussion centers on flashing and customizing the WiFi module (WBR3 on TCWBRCU1 board) of a Della Optima Series minisplit air conditioner to run OpenBeken firmware for local, cloud-free control. Initial assumptions about the device using TuyaMCU were revised after UART traffic analysis revealed a custom protocol similar to TCL AC units, leading to the development and testing of a dedicated TCL driver in OpenBeken. The user successfully desoldered the WBR3 module, backed up its firmware using appropriate Realtek tools (ltchiptool and AmebaZ2 PG Tool), and flashed OpenBeken firmware. Key datapoints such as power, mode, fan speed, temperature, humidity, and PM2.5 were identified from the Tuya IoT platform, but the device uses a binary packet protocol rather than standard Tuya DPIDs.

The community collaboratively developed and refined the TCL driver, enabling control of power, mode (cool, heat, dry, fan, auto), fan speeds (mapped to Smart Life app presets including auto, mute, mid-low to turbo), swing positions (vertical and horizontal), buzzer (beep) on/off, and display brightness on/off. The driver was integrated with Home Assistant via MQTT with discovery support, allowing control and state feedback. Challenges included correct UART parity settings (even parity), packet parsing, and mapping driver values to Home Assistant entities. The user provided detailed logs, testing results, and UI feedback, leading to improvements in MQTT integration, UI elements for fan speed and swing controls, and bug fixes for state synchronization. The project also discussed future enhancements like better OBK UI integration, thermostat card improvements, and potential DIY thermostat projects using OBK on ESP32 with external sensors.

Overall, the thread documents a successful reverse engineering and firmware replacement effort for the Della minisplit WiFi module, enabling local control with OpenBeken, full MQTT/Home Assistant integration, and detailed community-driven driver development for a non-standard protocol device.
Generated by the language model.

FAQ

TL;DR: If you have a Della mini split with a WBR3 module, you can flash OpenBeken locally, back up the original 2 MB flash first, and then control cooling, heat, fan, swing, buzzer, display, and even GEN mode. As one developer put it, "It worked!" This FAQ is for owners who want cloud-free control without losing core AC functions. [#21551100]

Why it matters: This thread shows that some Della WiFi modules are not standard TuyaMCU devices, so using the correct Realtek tools and the TCL driver is the difference between a working local AC and a dead-end flash attempt.

Option Chip family Fit/use in thread Main caveat
WBR3 Realtek RTL8720CF/AmebaZ2 Native Della module; fully tested with OBK TCL driver Fragile pads and traces during wiring
WBR1 on TCLWBR Realtek RTL8720CF Also worked after correct VIN/VCC power wiring Needed both 5 V and 3.3 V path active
WB3S Beken Considered compatible replacement for TuyaMCU-style UART layout Must verify 3.3 V, GND, reset, and UART pin match
CB3S Beken Considered compatible replacement with OBK support Same pinout checks as WB3S

Key insight: The Della TCWBRCU1/WBR3 setup in this thread was ultimately treated as a custom TCL serial protocol, not a normal TuyaMCU datapoint bridge. That is why flashing succeeded only after using Realtek-specific tools and why control required the OpenBeken TCL driver, not GPIO templates. [#21549462]

Quick Facts

  • The confirmed stock backup sizes were 384 KB ROM and 2 MB flash, and the 2 MB dump was verified to boot before flashing OpenBeken. [#21544743]
  • The working UART settings for the TCL protocol were 9600 baud, 8 data bits, even parity, 1 stop bit (9600 8E1); parity was a real failure point until fixed. [#21550462]
  • The Della unit discussed was a 9,000 BTU heat/cool mini split on 115 V, 60 Hz power, using a removable USB WiFi/Bluetooth module with a WBR3 soldered to a TCWBRCU1 carrier. [#21536655]
  • Internal target temperature in the TCL protocol is Celsius only, with a usable command range of 16–31 °C; entering 75 or 77 as if they were Fahrenheit produced wrong results such as 81 °F and 84 °F on the indoor display. [#21553236]
  • Reverse-engineered GEN mode testing showed approximate winter heating limits of 1.2 kW at L1, 1.8 kW at L2, 2.3 kW at L3, and 2.9 kW with no GEN limit, based on clamp monitoring. [#21781377]

How do I flash a Della mini split WBR3 WiFi module on the TCWBRCU1 board with OpenBeken step by step?

Use Realtek tools, not BK7231 tools. 1. Back up the stock WBR3 first with the Realtek workflow, because the verified flash dump was 2 MB and recoverable. 2. Flash an OpenRTL87X0C build that includes the TCL driver or update later by OTA. 3. Start the driver with startDriver TCL, then test commands such as ACMode 1, FANMode 3, and TargetTemperature 24. The thread showed this sequence working on the Della 048-TP-9K2V-23S-IN after successful backup and flash. [#21547316]

What is TuyaMCU, and how is it different from the custom TCL serial protocol used by some Della mini split WiFi modules?

"TuyaMCU is a host-MCU protocol layer that lets a WiFi module exchange standardized datapoints with a separate appliance controller, usually over UART." In this thread, that turned out not to be the whole story for the Della mini split. The WBR3 could run OpenBeken, but the AC control path matched a custom TCL serial protocol instead of normal TuyaMCU DPID traffic, which explained why TuyaMCU commands did nothing while the TCL driver worked. [#21549462]

Why does a Della WBR3 module get stuck on "getting bus" in BK7231 tools, and which flashing tools should I use for Realtek RTL8720CF or AmebaZ2 instead?

It gets stuck because BK7231 tools do not support Realtek AmebaZ2 chips like the WBR3. One helper stated plainly that Easy Flasher does not back up or write Realtek chips. The working toolchain in the thread was ltchiptool for backup and AmebaZ2 PG Tool for writing on RTL8720CF/AmebaZ2 hardware, which immediately solved the stalled "getting bus" problem. [#21544726]

What is a DPID in the Tuya ecosystem, and how were the Della mini split datapoints like power, mode, windspeed, and swing identified in this thread?

"DPID is a Tuya datapoint identifier that maps a cloud-visible property to a device function, type, and value range." The thread identified the Della AC datapoints from the Tuya IoT Platform and later from the product data model. Examples included DPID 1 power, 4 mode, 5 windspeed, 113 vertical swing, 114 horizontal swing, and 120 GEN mode, each with enum or value ranges shown by the Tuya schema. [#21536711]

How can I back up the stock firmware from a WBR3 or WBR1 module before flashing OpenBeken?

Back it up with the Realtek toolchain before you flash anything. The proven path was to read both the ROM and full flash, then verify the sizes: the ROM should be 384 KB and the flash dump 2 MB on the tested WBR3. That backup later booted successfully, which gave the thread a recovery path when hardware pads were lifted during rework. [#21544743]

Which OpenBeken commands were used to control the Della mini split after flashing, including ACMode, FANMode, SwingH, SwingV, TargetTemperature, Buzzer, Display, and Gen?

The working commands were startDriver TCL, ACMode, FANMode, SwingH, SwingV, TargetTemperature, Buzzer, Display, and later Gen. Confirmed examples included ACMode 1 for cool, ACMode 3 for fan-only, TargetTemperature 24, Buzzer 0, Display 0, and the test PR command Gen 0 through Gen 3. Those commands were validated progressively in the thread and then exposed to Home Assistant through MQTT discovery. [#21761114]

Why did TargetTemperature seem wrong when entering Fahrenheit values in OpenBeken, and how does the Della TCL protocol actually handle temperature internally?

It seemed wrong because OpenBeken expected Celsius while the indoor display was showing Fahrenheit. The TCL protocol stores target temperature as a 4-bit value for 16–31 °C, so entering TargetTemperature 75 was interpreted as a Celsius-side command, wrapped internally, and produced values like 29 °C, which appeared as about 84 °F on the unit. Once the user switched to TargetTemperature 24 and 25, the display correctly showed 75 °F and 77 °F. [#21553392]

What was the correct UART configuration for the Della TCL mini split protocol on Realtek, including baud rate and parity, and why did parity matter?

The correct serial format was 9600 8E1: 9600 baud, 8 data bits, even parity, 1 stop bit. Parity mattered because the first TCL driver builds used the wrong parity setting, so commands were sent but not understood correctly by the AC controller. Once even parity was fixed, the unit started beeping on valid commands and mode and fan tests began to work immediately. [#21551100]

How do Home Assistant MQTT discovery and the OpenBeken TCL driver work together for a Della mini split, and what commands or settings are needed to make the climate entity appear?

Start the TCL driver first, then trigger Home Assistant discovery. The thread used startDriver TCL and then either Home Assistant discovery from the UI or the command scheduleHADiscovery 1. After that, Home Assistant created a climate entity and additional controls, and later builds added mode, fan, horizontal swing, and vertical swing support to the discovered entity. [#21561364]

What troubleshooting steps helped when Home Assistant showed Della mini split state updates but power-on or mode changes did not work correctly?

The main fixes were driver-side, not MQTT-side. Early on, Home Assistant could show state changes from OBK, but power-on and mode commands were incomplete because the TCL mode parse and mode publishing were not fully implemented. Once the driver parsed AC mode correctly, Home Assistant could both read OBK state and write changes back, including on/off and mode switching. [#21563089]

WB3S vs CB3S vs WBR3 for a Della mini split replacement module — which options were considered compatible with OpenBeken and what pinout checks matter most?

WBR3 was the native tested module, but WB3S and CB3S were both considered workable OpenBeken replacements. The key check was not brand alone; it was whether GND, 3.3 V, reset, and UART matched the original footprint and host board expectations. The thread specifically noted that other GPIO positions may differ, but the basic UART-based control path could still work if those core pins lined up. [#21548807]

How can I capture UART traffic between the WiFi module and the indoor unit MCU on a Della mini split without a full logic analyzer?

You can capture each UART lane separately with a USB-UART adapter if you match the serial settings. One developer explained that you do not need a full logic analyzer to start; you can connect RX to the line you want to observe, set the correct baud, and record module-to-MCU and MCU-to-module traffic independently. For this TCL setup, correct serial settings mattered, especially parity. [#21550113]

What caused the WBR1 TCLWBR board to crash when starting UART-based OpenBeken drivers, and how was the missing VCC or VIN power connection eventually identified?

The crash came from powering the WBR1 incorrectly during bench testing. The user had supplied only 3.3 V for flashing-style setup, but the TCLWBR adapter also needed the VIN/VCC path active from 5 V so the board’s power scheme matched normal operation. Once they powered the adapter board correctly instead of only the WBR1 core rail, the TCL driver started normally and the module worked. [#21579198]

Where can I find replacement Della-compatible WiFi modules like WBR3, WBR1, or Pioneer USB adapter boards if I damage the original during flashing?

One confirmed source was Pioneer’s replacement USB WiFi/BLE dongle for WYT/WT systems, which a later poster said used the same style of module and compatible firmware family. Earlier in the thread, users also sourced WBR3 replacements from AliExpress after damaging traces and pads during desoldering. The practical lesson was to buy a spare before risky rework, because these module pads are fragile. [#21766471]

How was the GEN or generator mode on supported Della mini splits reverse engineered, and what do the L1, L2, and L3 power limits correspond to in practice?

GEN mode was inferred from the Tuya schema, then tested in a custom OpenBeken PR with Gen 0 to Gen 3, and finally validated by watching real power draw. Practical results on one unit were about 1.2 kW for L1, 1.8 kW for L2, 2.3 kW for L3, and 2.9 kW with no GEN limit during cold-weather heating. The user mapped L1, L2, and L3 to roughly 30%, 50%, and 80% compressor power limits. [#21762524]
Generated by the language model.
ADVERTISEMENT