logo elektroda
logo elektroda
X
logo elektroda

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

dressyspider 5601 214
ADVERTISEMENT
  • #211 21597558
    p.kaczmarek2
    Moderator Smart Home
    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  
    [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.
  • ADVERTISEMENT
  • #213 21628810
    Mushinronsha
    Level 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.
  • ADVERTISEMENT
  • #214 21628822
    AbidingOhmsLaw
    Level 9  
    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  
    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.

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.
Summary generated by the language model.
ADVERTISEMENT