Issue Summary:
When issuing a command from OpenHAB (e.g. turn on/off power), it can take 5-9+ seconds for the Heatpump to enact the command (i.e. for the power led to come on), and it looks like even more for the switch state to be updated in OpenHAB. (Maybe even up to 15 seconds).
Initial investigation:
There may be 2 issues in play here (I will treat them separately for now, until proven otherwise):
- It appears that it can take 5-9+ seconds just for OpenHAB to send the resulting HTTP/S request to the heatpump
- After that, it may take another similar amount of time for the Switch state to update in OpenHAB. I though it was similar to [daikin] Update channels immediately after a successful API command by jimtng · Pull Request #17149 · openhab/openhab-addons · GitHub but that looks like it was resolved/merged in OH 4.3
This only occurs for the newer heatpump with the BRP072C42 WiFi adapter (HTTP/S), I have 3 other Daikin Heatpumps using the BRP072A42 WiFi adapters (HTTP) for which the binding seems to issue commands immediately, and the status update in OpenHAB is also immediate.
This delay issue occurs for any valid channel for this HeatPump (Power, Temp Set Point etc). I have tried updating the refresh interval (currently 5 sec, was 15), even as low as 1 sec, and there was no difference for the time to send the command to the unit, however perhaps the state update for the switch occurred within a few seconds of the unit actually powering on.
I will keep digging around, but wondering if anyone has some ideas (or a similar issue), before I log a github issue.
Environment
OpenHAB Version: 5.0.1 (Release Build)
Java Version: 21.0.8 (Azul Systems, Inc.) - Zulu21.44+17-CA
OS: Ubuntu Server 25.04
Daikin Binding: 5.0.1
WiFi Adapter Model: BRP072C42
WiFi Adapter Firmware Version: 1.16.0
Thing Config
Channels excluded for brevity
UID: daikin:ac_unit:DaikinAirconLiving
label: Living Heat Pump
thingTypeUID: daikin:ac_unit
configuration:
host: 192.168.4.50
refresh: 5
secure: true
uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
key: "xxxxxxxxxxxxx"
events.log
2025-10-06 18:06:13.408 [INFO ] [openhab.event.ItemCommandEvent ] - Item 'LivingHeatPump_Power' received command OFF
2025-10-06 18:06:25.000 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'LivingHeatPump_Power' changed from ON to OFF
openhab.log (trace)
2025-10-06 18:06:01.266 [TRACE] [n.internal.handler.DaikinBaseHandler] - Polling for state
2025-10-06 18:06:01.267 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Header: X-Daikin-uuid: xxxx
2025-10-06 18:06:01.267 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Calling url: https://192.168.4.50/aircon/get_control_info
2025-10-06 18:06:03.185 [TRACE] [ding.daikin.internal.api.ControlInfo] - Parsing string: "ret=OK,pow=1,mode=4,adv=,stemp=19.0,shum=0,dt1=25.0,dt2=M,dt3=25.0,dt4=19.0,dt5=19.0,dt7=25.0,dh1=AUTO,dh2=50,dh3=0,dh4=0,dh5=0,dh7=AUTO,dhh=50,b_mode=4,b_stemp=19.0,b_shum=0,alert=255,f_rate=A,b_f_rate=A,dfr1=A,dfr2=A,dfr3=A,dfr4=A,dfr5=A,dfr6=A,dfr7=A,dfrh=A,f_dir=0,b_f_dir=0,dfd1=0,dfd2=0,dfd3=0,dfd4=0,dfd5=0,dfd6=0,dfd7=0,dfdh=0"
2025-10-06 18:06:03.186 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Header: X-Daikin-uuid: xxxx
2025-10-06 18:06:03.186 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Calling url: https://192.168.4.50/aircon/get_sensor_info
2025-10-06 18:06:03.861 [TRACE] [scovery.DaikinACUnitDiscoveryService] - Starting broadcast for /172.17.255.255
2025-10-06 18:06:04.863 [TRACE] [scovery.DaikinACUnitDiscoveryService] - Starting broadcast for /192.168.91.255
2025-10-06 18:06:05.088 [TRACE] [nding.daikin.internal.api.SensorInfo] - Parsing string: "ret=OK,htemp=23.0,hhum=-,otemp=15.0,err=0,cmpfreq=0"
2025-10-06 18:06:05.089 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Header: X-Daikin-uuid: xxxx
2025-10-06 18:06:05.089 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Calling url: https://192.168.4.50/aircon/get_year_power_ex
2025-10-06 18:06:05.866 [TRACE] [scovery.DaikinACUnitDiscoveryService] - Starting broadcast for /192.168.10.255
2025-10-06 18:06:06.975 [TRACE] [g.daikin.internal.api.EnergyInfoYear] - Parsing string: "ret=NG (time is not sync)"
2025-10-06 18:06:06.976 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Header: X-Daikin-uuid: xxxx
2025-10-06 18:06:06.976 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Calling url: https://192.168.4.50/aircon/get_week_power_ex
2025-10-06 18:06:08.818 [TRACE] [in.internal.api.EnergyInfoDayAndWeek] - Parsing string: "ret=NG (time is not sync)"
2025-10-06 18:06:08.818 [DEBUG] [in.internal.api.EnergyInfoDayAndWeek] - EnergyInfoDayAndWeek::parse() did not receive 'ret=OK' from adapter
2025-10-06 18:06:13.410 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Header: X-Daikin-uuid: xxxx
2025-10-06 18:06:13.410 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Calling url: https://192.168.4.50/aircon/get_control_info
2025-10-06 18:06:13.818 [TRACE] [n.internal.handler.DaikinBaseHandler] - Polling for state
2025-10-06 18:06:15.372 [TRACE] [ding.daikin.internal.api.ControlInfo] - Parsing string: "ret=OK,pow=1,mode=4,adv=,stemp=19.0,shum=0,dt1=25.0,dt2=M,dt3=25.0,dt4=19.0,dt5=19.0,dt7=25.0,dh1=AUTO,dh2=50,dh3=0,dh4=0,dh5=0,dh7=AUTO,dhh=50,b_mode=4,b_stemp=19.0,b_shum=0,alert=255,f_rate=A,b_f_rate=A,dfr1=A,dfr2=A,dfr3=A,dfr4=A,dfr5=A,dfr6=A,dfr7=A,dfrh=A,f_dir=0,b_f_dir=0,dfd1=0,dfd2=0,dfd3=0,dfd4=0,dfd5=0,dfd6=0,dfd7=0,dfdh=0"
2025-10-06 18:06:15.372 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Header: X-Daikin-uuid: xxxx
2025-10-06 18:06:15.373 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Calling url: https://192.168.4.50/aircon/get_control_info
2025-10-06 18:06:17.269 [TRACE] [ding.daikin.internal.api.ControlInfo] - Parsing string: "ret=OK,pow=1,mode=4,adv=,stemp=19.0,shum=0,dt1=25.0,dt2=M,dt3=25.0,dt4=19.0,dt5=19.0,dt7=25.0,dh1=AUTO,dh2=50,dh3=0,dh4=0,dh5=0,dh7=AUTO,dhh=50,b_mode=4,b_stemp=19.0,b_shum=0,alert=255,f_rate=A,b_f_rate=A,dfr1=A,dfr2=A,dfr3=A,dfr4=A,dfr5=A,dfr6=A,dfr7=A,dfrh=A,f_dir=0,b_f_dir=0,dfd1=0,dfd2=0,dfd3=0,dfd4=0,dfd5=0,dfd6=0,dfd7=0,dfdh=0"
2025-10-06 18:06:17.269 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Header: X-Daikin-uuid: xxxx
2025-10-06 18:06:17.269 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Calling url: https://192.168.4.50/aircon/set_control_info?mode=4&f_rate=A&shum=0&pow=0&stemp=19.0&f_dir=0
2025-10-06 18:06:19.161 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Header: X-Daikin-uuid: xxxx
2025-10-06 18:06:19.161 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Calling url: https://192.168.4.50/aircon/get_sensor_info
2025-10-06 18:06:21.106 [TRACE] [nding.daikin.internal.api.SensorInfo] - Parsing string: "ret=OK,htemp=23.0,hhum=-,otemp=15.0,err=0,cmpfreq=0"
2025-10-06 18:06:21.107 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Header: X-Daikin-uuid: xxxx
2025-10-06 18:06:21.107 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Calling url: https://192.168.4.50/aircon/get_year_power_ex
2025-10-06 18:06:23.061 [TRACE] [g.daikin.internal.api.EnergyInfoYear] - Parsing string: "ret=NG (time is not sync)"
2025-10-06 18:06:23.062 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Header: X-Daikin-uuid: xxxx
2025-10-06 18:06:23.070 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Calling url: https://192.168.4.50/aircon/get_week_power_ex
2025-10-06 18:06:24.998 [TRACE] [in.internal.api.EnergyInfoDayAndWeek] - Parsing string: "ret=NG (time is not sync)"
2025-10-06 18:06:24.999 [DEBUG] [in.internal.api.EnergyInfoDayAndWeek] - EnergyInfoDayAndWeek::parse() did not receive 'ret=OK' from adapter
2025-10-06 18:06:30.000 [TRACE] [n.internal.handler.DaikinBaseHandler] - Polling for state
2025-10-06 18:06:30.000 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Header: X-Daikin-uuid: xxxx
2025-10-06 18:06:30.000 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Calling url: https://192.168.4.50/aircon/get_control_info
2025-10-06 18:06:31.912 [TRACE] [ding.daikin.internal.api.ControlInfo] - Parsing string: "ret=OK,pow=0,mode=4,adv=,stemp=19.0,shum=0,dt1=25.0,dt2=M,dt3=25.0,dt4=19.0,dt5=19.0,dt7=25.0,dh1=AUTO,dh2=50,dh3=0,dh4=0,dh5=0,dh7=AUTO,dhh=50,b_mode=4,b_stemp=19.0,b_shum=0,alert=255,f_rate=A,b_f_rate=A,dfr1=A,dfr2=A,dfr3=A,dfr4=A,dfr5=A,dfr6=A,dfr7=A,dfrh=A,f_dir=0,b_f_dir=0,dfd1=0,dfd2=0,dfd3=0,dfd4=0,dfd5=0,dfd6=0,dfd7=0,dfdh=0"
2025-10-06 18:06:31.913 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Header: X-Daikin-uuid: xxxx
2025-10-06 18:06:31.913 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Calling url: https://192.168.4.50/aircon/get_sensor_info
^C2025-10-06 18:06:33.804 [TRACE] [nding.daikin.internal.api.SensorInfo] - Parsing string: "ret=OK,htemp=23.0,hhum=-,otemp=15.0,err=0,cmpfreq=0"
The above spans one minute pre/post the Command being issued, but probably the following line is key:
2025-10-06 18:06:17.269 [TRACE] [ing.daikin.internal.DaikinWebTargets] - Calling url: https://192.168.4.50/aircon/set_control_info?mode=4&f_rate=A&shum=0&pow=0&stemp=19.0&f_dir=0
Which seems to actually send the command 4 seconds after the Command was registered by OpenHAB.
