logo elektroda
logo elektroda
X
logo elektroda

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

dressyspider 13878 265
ADVERTISEMENT
  • #91 21559301
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    We can start with buzzer. Now binary is here:
    https://github.com/openshwprojects/OpenBK7231T_App/pull/1650
    I've added "Buzzer" command, argument either 0 or 1.
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #92 21559427
    dressyspider
    Level 2  
    Posts: 83
    Rate: 10
    The “Buzzer 0” command worked.

    Mini Split Test Summary with Commands:
    1. Ran startDriver TCL
    → Started the TCL driver.
    2. Ran ACMode 1
    → Turned on the mini split in cool mode.
    3. Ran TargetTemperature 25
    → Set the temperature to 25°C (77°F).
    4. Ran Buzzer 0
    → Disabled the beeping sound from remote presses or commands.
    5. Ran TargetTemperature 24
    → Set the temperature to 24°C (75°F).

    Result:
    • The mini split powered on and switched to cool mode.
    • Temperature changes to 25°C and then 24°C were successful.
    • After Buzzer 0, there was no beep when setting the temperature to 24°C, confirming the buzzer was disabled.
  • #93 21559428
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    Ok, I see we can also add command to disable LED display, wanna try that?

    What then do you need next, maybe we can start with better UI, some sliders for OBK, etc?
    Helpful post? Buy me a coffee.
  • #94 21559431
    dressyspider
    Level 2  
    Posts: 83
    Rate: 10
    Yes, please. The LEDs on the display are too bright. I always disable them.

    I think that would cover the functions then. Really just need to be able to turn on/off, set temp, set fan speed, adjust swings, enable/disable display and buzzer.
  • ADVERTISEMENT
  • #95 21559501
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    I added a "Display" command, Display 1 or 0
    Helpful post? Buy me a coffee.
  • #96 21559908
    dressyspider
    Level 2  
    Posts: 83
    Rate: 10
    That worked too!
  • #97 21559947
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    Great, what is the next feature you need? UI and MQTT integration?
    Helpful post? Buy me a coffee.
  • #98 21559949
    dressyspider
    Level 2  
    Posts: 83
    Rate: 10
    MQTT integration would be awesome because I’d like to control it via Home Assistant.

    The UI can be super basic for that reason.
  • #99 21560286
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    I'm working on it, not ready:
    Smart thermostat control panel with cooling set to 25°C and current temperature at 23°C.
    Screenshot of Visual Studio with an open C source file, showing a code section related to MQTT and HVAC.
    Helpful post? Buy me a coffee.
  • #100 21560408
    dressyspider
    Level 2  
    Posts: 83
    Rate: 10
    Nice! It looks great so far!
  • #101 21561111
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    This version might work more or less after starting driver and doing HASS Discovery:
    https://github.com/openshwprojects/OpenBK7231T_App/pull/1650
    but it just publishes variables every second and does a lot of spam. Still, good enough for initial testing?
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #102 21561276
    dressyspider
    Level 2  
    Posts: 83
    Rate: 10
    I’ve installed the update, but am not seeing the details in MQTT. Do I need to run any commands for it to show properly in MQTT?
  • #103 21561364
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    this: https://www.youtube.com/watch?v=pkcspey25V4
    or just: scheduleHADiscovery 1
    Helpful post? Buy me a coffee.
  • #104 21561845
    dressyspider
    Level 2  
    Posts: 83
    Rate: 10
    After re-running the HA discovery, I am seeing the mini split with some additional controls and info. However, pressing cool or power does not update the mini split. For example, if the mini split is powered off, it will not power on from pressing power from the HA thermostat controls.

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

    Request for Help – Flashing Della Minisplit WiFi Module (WBR3 on TCWBRCU1)
  • #105 21561856
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    Can you check if the already mentioned commands for Buzzer and Display, when run on OBK device, cause Home Assistant state to update? Does changing the TargetTemperature in OBK cause HA state to follow OBK?
    Helpful post? Buy me a coffee.
  • #106 21561868
    dressyspider
    Level 2  
    Posts: 83
    Rate: 10
    When manually setting state via commands, Home Assistant does show the updated state. The Home Assistant dashboard is showing the temperature values in Fahrenheit.

    TargetTemperature 25:
    Screenshot of Home Assistant dashboard showing mini split set to 77°F in cool mode, with system logs on the right.

    Buzzer 1:
    Screenshot of an air conditioner control panel and MQTT driver logs.

    Display 1:
    Air conditioner control panel and system logs connected by a red arrow pointing to the display option.

    TargetTemperature 23:
    Air conditioner control interface and system logs with an arrow indicating a temperature change event.


    Edit:
    Running ACMode 0 did not update the Home Assistant dashboard. The mini split still shows "cool" is set.
    Screenshot showing a climate control panel and system logs after pressing the power button.
  • #107 21561893
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    And toggling Display in HA does not affect OBK/device?
    Helpful post? Buy me a coffee.
  • #108 21561917
    dressyspider
    Level 2  
    Posts: 83
    Rate: 10
    Display and buzzer both work.

    Powering the device off via home assistant works too.

    The only thing that is not working is powering on via home assistant.

    I’ll pull logs and attached them shortly.

    Edit:
    Added device log and steps taken.

    I powered the mini split on with ACMode 1. Then I went to the Home Assistant dashboard to perform the following:
    - Turn buzzer on
    - Turn display on
    - Set temp to 25C/75F
    - Turn buzzer off
    - Turn display off
    - Turn mini split off

    Device Log:
    
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 01 D7 00 C0 00 00 00 00 00 00 6B 0B 08 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 00 3C 37 3A 00 00 80 00 00 00 00 F0 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 7D 
    Warn:EnergyMeter:Ok we got reply with mode 0, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 52968, idle 0/s, free 83712, MQTT 1(1), bWifi 1, secondsWithNoPing 52899, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 01 D7 00 C0 00 00 00 00 00 00 6B 0B 08 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 00 3C 37 3A 00 00 80 00 00 00 00 F0 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 7D 
    Warn:EnergyMeter:Ok we got reply with mode 0, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 52969, idle 0/s, free 83712, MQTT 1(1), bWifi 1, secondsWithNoPing 52900, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 01 D7 00 C0 00 00 00 00 00 00 6B 0B 08 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 00 3C 37 3A 00 00 80 00 00 00 00 F0 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 7D 
    Warn:EnergyMeter:Ok we got reply with mode 0, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 52970, idle 0/s, free 83712, MQTT 1(1), bWifi 1, secondsWithNoPing 52901, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 01 D7 00 C0 00 00 00 00 00 00 6B 0B 08 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 00 3C 37 3A 00 00 80 00 00 00 00 F0 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 7D 
    Warn:EnergyMeter:Ok we got reply with mode 0, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 52971, idle 0/s, free 75016, MQTT 1(1), bWifi 1, secondsWithNoPing 52902, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Warn:EnergyMeter:User set mode 1
    Warn:EnergyMeter:build_set_cmd: sizeof(get_cmd_resp_t) = 61, sizeof(m_set_cmd.data) = 35, sizeof(m_set_cmd.raw) = 35
    Info:CMD:[WebApp Cmd 'ACMode 1' Result] OK
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Sending data
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 01 D7 00 C0 00 00 00 00 00 00 6B 0B 08 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 00 3C 37 3A 00 00 80 00 00 00 00 F0 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 7D 
    Warn:EnergyMeter:Ok we got reply with mode 0, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 52972, idle 0/s, free 83712, MQTT 1(1), bWifi 1, secondsWithNoPing 52903, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Initial size: 61
    Info:MAIN:Time 52973, idle 0/s, free 83544, MQTT 1(1), bWifi 1, secondsWithNoPing 52904, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 11 D7 00 C0 00 00 00 00 00 00 6B 0B 08 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 00 3C 37 3A 00 00 80 00 00 00 00 F0 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 6D 
    Warn:EnergyMeter:Ok we got reply with mode 1, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 52974, idle 0/s, free 83712, MQTT 1(1), bWifi 1, secondsWithNoPing 52905, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 11 D7 00 C0 00 00 00 00 00 00 6B 0B 08 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 00 3C 37 3A 00 00 80 00 00 00 00 F0 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 6D 
    Warn:EnergyMeter:Ok we got reply with mode 1, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 52975, idle 0/s, free 83600, MQTT 1(1), bWifi 1, secondsWithNoPing 52906, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic cmnd/Mini Split/Buzzer
    Warn:EnergyMeter:build_set_cmd: sizeof(get_cmd_resp_t) = 61, sizeof(m_set_cmd.data) = 35, sizeof(m_set_cmd.raw) = 35
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 1 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Sending data
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 11 D7 00 C0 00 00 00 00 00 00 6B 0B 08 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 00 3C 37 3A 00 00 80 00 00 00 00 F0 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 6D 
    Warn:EnergyMeter:Ok we got reply with mode 1, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 52976, idle 0/s, free 83712, MQTT 1(1), bWifi 1, secondsWithNoPing 52907, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 1 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Initial size: 61
    Info:MAIN:Time 52977, idle 0/s, free 83712, MQTT 1(1), bWifi 1, secondsWithNoPing 52908, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 1 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 11 D7 00 C0 00 00 00 00 00 00 6B 0B 88 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 00 3C 37 3A 00 00 80 00 00 00 00 F0 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 ED 
    Warn:EnergyMeter:Ok we got reply with mode 1, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 52978, idle 0/s, free 83712, MQTT 1(1), bWifi 1, secondsWithNoPing 52909, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic cmnd/Mini Split/Display
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Warn:EnergyMeter:build_set_cmd: sizeof(get_cmd_resp_t) = 61, sizeof(m_set_cmd.data) = 35, sizeof(m_set_cmd.raw) = 35
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 1 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Sending data
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 11 D7 00 C0 00 00 00 00 00 00 6B 0B 88 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 00 3C 37 3A 00 00 80 00 00 00 00 F0 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 ED 
    Warn:EnergyMeter:Ok we got reply with mode 1, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 52979, idle 0/s, free 83712, MQTT 1(1), bWifi 1, secondsWithNoPing 52910, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 1 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Initial size: 61
    Info:MAIN:Time 52980, idle 0/s, free 83544, MQTT 1(1), bWifi 1, secondsWithNoPing 52911, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 1 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 31 D7 00 C0 00 00 00 00 00 00 6B 0B 88 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 69 3C 37 3A 00 00 80 00 00 00 00 F0 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 A4 
    Warn:EnergyMeter:Ok we got reply with mode 1, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 52981, idle 0/s, free 83712, MQTT 1(1), bWifi 1, secondsWithNoPing 52912, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic cmnd/Mini Split/TargetTemperature
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Warn:EnergyMeter:build_set_cmd: sizeof(get_cmd_resp_t) = 61, sizeof(m_set_cmd.data) = 35, sizeof(m_set_cmd.raw) = 35
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 1 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Sending data
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 31 D7 00 C0 00 00 00 00 00 00 6B 0B 88 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 69 3C 37 3A 00 00 80 00 00 00 00 F0 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 A4 
    Warn:EnergyMeter:Ok we got reply with mode 1, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 52982, idle 0/s, free 81648, MQTT 1(1), bWifi 1, secondsWithNoPing 52913, socks 3/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 1 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Initial size: 61
    Info:MAIN:Time 52983, idle 0/s, free 83712, MQTT 1(1), bWifi 1, secondsWithNoPing 52914, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic cmnd/Mini Split/Buzzer
    Warn:EnergyMeter:build_set_cmd: sizeof(get_cmd_resp_t) = 61, sizeof(m_set_cmd.data) = 35, sizeof(m_set_cmd.raw) = 35
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 1 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Sending data
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 31 D7 00 C0 00 00 00 00 00 00 6B 0B 88 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 69 3C 37 3A 00 00 80 00 00 00 00 F0 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 A4 
    Warn:EnergyMeter:Ok we got reply with mode 1, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 52984, idle 0/s, free 83544, MQTT 1(1), bWifi 1, secondsWithNoPing 52915, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic cmnd/Mini Split/Display
    Warn:EnergyMeter:build_set_cmd: sizeof(get_cmd_resp_t) = 61, sizeof(m_set_cmd.data) = 35, sizeof(m_set_cmd.raw) = 35
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Sending data
    Warn:EnergyMeter:Initial size: 61
    Info:MAIN:Time 52985, idle 0/s, free 83712, MQTT 1(1), bWifi 1, secondsWithNoPing 52916, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic cmnd/Mini Split/ACMode
    Warn:EnergyMeter:User set mode 0
    Warn:EnergyMeter:build_set_cmd: sizeof(get_cmd_resp_t) = 61, sizeof(m_set_cmd.data) = 35, sizeof(m_set_cmd.raw) = 35
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Sending data
    Warn:EnergyMeter:Initial size: 61
    Info:MAIN:Time 52986, idle 0/s, free 83544, MQTT 1(1), bWifi 1, secondsWithNoPing 52917, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    


    This section of log is from when I pressed the "Cool" button in the home assistant dashboard.
    
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 01 D7 00 C0 00 00 00 00 00 00 6B 0B 88 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 00 3C 37 3A 00 00 80 00 00 00 00 F1 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 FC 
    Warn:EnergyMeter:Ok we got reply with mode 0, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 53302, idle 0/s, free 83880, MQTT 1(1), bWifi 1, secondsWithNoPing 53233, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 01 D7 00 C0 00 00 00 00 00 00 6B 0B 88 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 00 3C 37 3A 00 00 80 00 00 00 00 F1 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 FC 
    Warn:EnergyMeter:Ok we got reply with mode 0, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 53303, idle 0/s, free 83712, MQTT 1(1), bWifi 1, secondsWithNoPing 53234, socks 2/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    Info:MQTT:Publishing val 22 to Mini Split/CurrentTemperature/get retain=0
    Info:MQTT:Publishing val 23 to Mini Split/TargetTemperature/get retain=0
    Info:MQTT:Publishing val cool to Mini Split/ACMode/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Buzzer/get retain=0
    Info:MQTT:Publishing val 0 to Mini Split/Display/get retain=0
    Warn:EnergyMeter:Initial size: 61
    Warn:EnergyMeter:BB 01 00 04 37 04 00 01 D7 00 C0 00 00 00 00 00 00 6B 0B 88 00 00 00 00 00 00 00 00 00 00 64 FF 42 00 00 3C 37 3A 00 00 80 00 00 00 00 F0 00 00 00 44 40 08 00 00 00 1A 00 00 00 00 FD 
    Warn:EnergyMeter:Ok we got reply with mode 0, fan 5, turbo 0, mute 0
    Warn:EnergyMeter:fan 05
    Warn:EnergyMeter:mode 01
    Info:MAIN:Time 53304, idle 0/s, free 81816, MQTT 1(1), bWifi 1, secondsWithNoPing 53235, socks 3/21 
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/CurrentTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/TargetTemperature/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/ACMode/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Buzzer/get
    Info:MQTT:MQTT client in mqtt_incoming_publish_cb topic Mini Split/Display/get
    
  • #109 21563089
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    I see, I just forgot to parse the mode.
    Screenshot of a code editor showing the CMD_ACMode function fragment with the variable 'args' highlighted in Tokenizer_TokenizeString(args, 0).

    Ok, try again, now:
    - AC mode should be on screen:
    A control panel screen showing Mode: off and current device parameters.
    - ACMode command can take also arguments like off, heat, cool, auto, etc
    - changing mode in HA should change OBK:
    Screenshot of a thermostat settings interface showing mode selection: heat, cool, and off options.
    Screenshot showing a fragment of C source code in Visual Studio Code editor.
    - HA should see OBK state (ACMode):
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #110 21563167
    dressyspider
    Level 2  
    Posts: 83
    Rate: 10
    That worked! See below for captures.

    Would it be possible to add the swing positions and fan speed to this dashboard?

    Also, is it possible to allow the OBK logs to show more lines? There is a lot going on and it scrolls fast and clears the older entries.

    ON:
    Della Mini Split air conditioner control panel and device details on two screens, both highlighted in cooling mode.

    OFF:
    Control panel of a Della Mini Split air conditioner and device status screen, both set to off mode.
  • #111 21563178
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    I can check, what is the next step required for that device support?
    Helpful post? Buy me a coffee.
  • #112 21563193
    dressyspider
    Level 2  
    Posts: 83
    Rate: 10
    For next steps, here's what would help complete support:

    1. Fan Speed:
    Right now I can set modes (cool/heat/off) fine from HA and OBK.
    Fan speed (auto, low, medium, high, etc.) works through OBK commands but isn’t mapped to a UI element or exposed via HA. (FANMode 1,FANMode 2,etc)

    2. Swing Positions:
    The mini split supports both vertical and horizontal swing.
    Like fan speed, these can be sent with OBK commands manually, but there’s no UI component or HA exposure yet. (SwingH 1,SwingH 2,SwingV 1,SwingV 2,etc)

    3. Logs (Nice to have, but not needed):
    During testing, logs scroll too fast and clear older messages.
    A longer buffer or scrollback limit would make debugging easier.


    Let me know if you'd like me to test anything specific or provide more details.
  • #113 21563260
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    If you know which HA classes/types should be used for fans (icons, classes, types), let me know, otherwise I'll try to search the docs myself.
    Helpful post? Buy me a coffee.
  • #114 21563270
    dressyspider
    Level 2  
    Posts: 83
    Rate: 10
    For the fan and swing controls in HA, here’s what I think would make the most sense:

    1. Fan Speed
    Use the fan domain with preset modes.
    Example options for preset_modes: ["auto", "low", "medium", "high"]
    This would map well to the FANMode commands (FANMode 1, FANMode 2, etc).

    Reference:
    https://www.home-assistant.io/integrations/fan.mqtt/#preset_mode-command-template

    2. Swing Modes
    This could be exposed either as part of the fan entity using oscillating (basic), or as separate entities or select controls if both horizontal and vertical are exposed.

    If more control is desired, select entities for:
    Horizontal Swing: ["off", "swing", "fixed left", "fixed center", "fixed right"]
    Vertical Swing: ["off", "swing", "fixed up", "fixed center", "fixed down"]

    These could map to the SwingH and SwingV OBK commands.

    Let me know if you want me to test with MQTT discovery YAML examples or share how the device responds to each value. Happy to help however I can.
  • #115 21563312
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    Ok I'm working on it, but your preset modes are different from what driver has:
    Code: C / C++
    Log in, to see the code

    So we probably need to map them to low/mid/high, any preferences?

    WIP:

    Air conditioner control panel set to 0°C, turned off, with the fan mode dropdown set to Low.
    Helpful post? Buy me a coffee.
  • #116 21563323
    dressyspider
    Level 2  
    Posts: 83
    Rate: 10
    Thanks, that makes sense. The driver definitely offers more options than standard HA presets.

    Below is a screenshot from the Smart Life app showing the available fan speed levels:
    auto, mute, mid-low, mid, mid-high, high, turbo

    App screen for controlling a mini split air conditioner, set to cooling at 75°F and Mid-High fan speed.

    Based on that, here’s a suggested mapping:
    FAN_AUTOMATIC → auto
    FAN_MUTE → mute
    FAN_1 → mid-low
    FAN_2 → mid
    FAN_3 → mid-high
    FAN_4 → high
    FAN_TURBO → turbo

    I’d recommend skipping FAN_OFF. Turning the fan off during cooling could cause the coil to freeze due to lack of airflow. The fan should only be turned off when the system is powered off and/or not actively heating or cooling.

    Let me know if this setup works or if you'd like me to test anything. Glad to help however I can.
  • #117 21563326
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    I wonder if HA has icons for those custom options, or do I need to specify them by hand?
    Helpful post? Buy me a coffee.
  • #118 21563328
    dressyspider
    Level 2  
    Posts: 83
    Rate: 10
    I will look into that. Personally, I believe using a fan icon for all options works well since the labels will make it clear which one to choose.

    Also, regarding swing positions the Smart Life app shows the following options:

    Vertical Swing
    up down flow, up flow, down flow, up fix, above up fix, middle fix, above down fix, down fix

    Horizontal Swing
    left right flow, left flow, middle flow, right flow, left fix, a bit left fix, middle fix, a bit right fix, right fix

    It would be great if these could be exposed in HA or the OBK UI especially the auto sweep modes like up down flow and left right flow which are commonly used

    Lastly users may also want access to additional system modes shown in the app like dry, fan, or auto mode depending on their mini split model

    Edit:
    There are fan icons with numbers, but only 1 through 3. I would just use mdi:fan for all fan speeds. Except auto, I would use mdi:fan-auto.

    Home Assistant Fan Icons:
    A list of fan-related icons in a user interface, with a text field named Fake Fan at the top. Icon selection screen showing a list of fan icons and a search bar, with the name field set to Fake Fan.

    Edit 2:
    Maybe these can be broken up?

    Vertical Swing Flow
    up down flow, up flow, down flow

    Vertical Swing Fixed
    up fix, above up fix, middle fix, above down fix, down fix

    Horizontal Swing Flow
    left right flow, left flow, middle flow, right flow

    Horizontal Swing Fixed
    left fix, a bit left fix, middle fix, a bit right fix, right fix

    App screen for controlling air conditioner airflow direction with various directional settings. Air conditioner air flow control panel with various left-right direction options.
  • #119 21563342
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    It seems that HA climate AC entity has single swing option, not separate per H/V.
    For now, I've figured a generic selection dialog for swings. Would that be acceptable?
    Screenshot of an IoT device control panel with smart thermostat settings and expanded Vertical Swing Mode menu.
    Helpful post? Buy me a coffee.
  • #120 21563343
    dressyspider
    Level 2  
    Posts: 83
    Rate: 10
    p.kaczmarek2 wrote:
    Would that be acceptable?

    Perfectly acceptable

    Thank you for adding this in!

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