Support for Daikin AirBase units

Yeah pretty sure auto (heat/cool) was not a valid mode during our testing/setup per

http://daikinip/skyfi/aircon/get_control_info?lpw=’ returns current information from the controller

My controller has a mode button that rotates thru the following states
Here are my results:

Cool ->
curl http://192.168.1.163/skyfi/aircon/get_control_info?lpw=
ret=OK,pow=1,mode=2,stemp=23,dt1=24,dt2=23,dt3=23,f_rate=5,dfr0=5,dfr1=1,dfr2=5,dfr3=5,f_airside=0,airside0=0,airside1=0,airside2=0,airside3=0,f_auto=0,auto0=0,auto1=1,auto2=0,auto3=0,f_dir=0,dfd0=0,dfd1=0,dfd2=0,dfd3=0,dfd7=0,filter_sign_info=0,cent=0,en_cent=0,remo=2

Heat ->
curl http://192.168.1.163/skyfi/aircon/get_control_info?lpw=
ret=OK,pow=1,mode=1,stemp=24,dt1=24,dt2=23,dt3=23,f_rate=1,dfr0=5,dfr1=1,dfr2=5,dfr3=5,f_airside=0,airside0=0,airside1=0,airside2=0,airside3=0,f_auto=1,auto0=0,auto1=1,auto2=0,auto3=0,f_dir=0,dfd0=0,dfd1=0,dfd2=0,dfd3=0,dfd7=0,filter_sign_info=0,cent=0,en_cent=0,remo=2

Fan ->
curl http://192.168.1.163/skyfi/aircon/get_control_info?lpw=
ret=OK,pow=1,mode=0,stemp=24,dt1=24,dt2=23,dt3=23,f_rate=5,dfr0=5,dfr1=1,dfr2=5,dfr3=5,f_airside=0,airside0=0,airside1=0,airside2=0,airside3=0,f_auto=0,auto0=0,auto1=1,auto2=0,auto3=0,f_dir=0,dfd0=0,dfd1=0,dfd2=0,dfd3=0,dfd7=0,filter_sign_info=0,cent=0,en_cent=0,remo=2

Dry ->
curl http://192.168.1.163/skyfi/aircon/get_control_info?lpw=
ret=OK,pow=1,mode=7,stemp=24,dt1=24,dt2=23,dt3=23,f_rate=5,dfr0=5,dfr1=1,dfr2=5,dfr3=5,f_airside=0,airside0=0,airside1=0,airside2=0,airside3=0,f_auto=0,auto0=0,auto1=1,auto2=0,auto3=0,f_dir=0,dfd0=0,dfd1=0,dfd2=0,dfd3=0,dfd7=0,filter_sign_info=0,cent=0,en_cent=0,remo=2

Cool Auto ->
curl http://192.168.1.163/skyfi/aircon/get_control_info?lpw=
ret=OK,pow=1,mode=3,stemp=23,dt1=24,dt2=23,dt3=23,f_rate=5,dfr0=5,dfr1=1,dfr2=5,dfr3=5,f_airside=0,airside0=0,airside1=0,airside2=0,airside3=0,f_auto=0,auto0=0,auto1=1,auto2=0,auto3=0,f_dir=0,dfd0=0,dfd1=0,dfd2=0,dfd3=0,dfd7=0,filter_sign_info=0,cent=0,en_cent=0,remo=2

Thus mode:
0 = Fan
1 = Heat
2 = Cool
3 = Cool Auto
7 = Dry

I can’t get “Cool Auto” using the integration.

What’s the API for changing the mode? I’ll have a play.

1 Like

What’s wrong with this command?
It returns OK but doesn’t seem to work, doesn’t change on the controller :frowning:

C:\Users\Family>curl -d “lpw=&pow=1&mode=0&stemp=23&shum=–&f_rate=5&f_dir=0&lpw=&f_airside=0” http://192.168.1.163/skyfi/aircon/set_control_info
ret=OK

Modify appliance.py in pydaikin to have support for auto. I’ll do the necessary changes in a few hours.

Edit: PR submitted, https://github.com/home-assistant/home-assistant/pull/31080 this is the change needed in pydaikin, https://bitbucket.org/mustang51/pydaikin/pull-requests/16/some-airbase-units-support-auto/diff

Thanks heaps.

Just for my sanity, do you know why this didn’t work ->

C:\Users\Family>curl -d “lpw=&pow=1&mode=0&stemp=23&shum=–&f_rate=5&f_dir=0&lpw=&f_airside=0” http://192.168.1.163/skyfi/aircon/set_control_info
ret=OK

No, but test it in your browser…

http://192.168.1.163/skyfi/aircon/set_control_info?pow=1&mode=3&stemp=23&shum=--&f_rate=5&f_dir=0&lpw=&f_airside=0

Yeah that works, cheers

Getting some weird behaviour with HA, HomeKit, the Daikin integration and airbase.

Since the last update, where the air conditioner was previously set to “Cool” to 22 degrees, if I ask Siri “turn on the air conditioner”, it now turns on the Daikin to “Auto” mode instead of “Cool”.

Homekit reflects cooling to 22 degrees, Lovelace reflects cooling to 22 degrees, but the Daikin wall controller reflects “Auto” with the Cool setback temperature at 22 degrees.

On the Daikin wall controller, if I manually set it to “Cool”, within a few seconds something is forcing it back to “Auto”, every time.

Appreciate any help!!

Here’s some weirdness in the logs. Never setting Auto mode in Homekit, so not sure why it’s requesting it. Also it says it’s instantly switching back to Cool but this isn’t happening either. Daikin control panel stuck on “Auto”.

Strange. Could you test and disable homekit and see what’s happening then.

Perhaps it is the homekit integration that is broken, not Daikin.

Sorry for the delay. I’ve tested - HomeKit is definitely the issue. Its sending the “heat_cool” command rather than just “cool” like it used to.

I’ve looked through the HomeKit changes for the last few releases and can’t see anything that would be impacting this though.

It is definitely this part that breaks it. Open an issue…

3 can’t be both HVAC_MODE_AUTO and HVAC_MODE_AUTO (line 79)…

My suggestion is to remove line 75 & 77…

When was this change made? Because was all working fine until ~6-8 weeks ago.

:wink:

I’ve created an issue: https://github.com/home-assistant/core/issues/33386

That latest request on the issue - is that something I need to do or you?

Sounds like it might be pushing my technical expertise but can try if you want to show me

Yes, please continue the discussion there. (https://github.com/home-assistant/core/issues/33386#issuecomment-605664790)
I neither have an AirBase unit or homekit so I can’t test it.

Update 0.110 has broken my DAIKIN. The only error in the logs is this uncaught exception ->

2020-05-22 22:02:50 ERROR (MainThread) [root] Uncaught exception
Traceback (most recent call last):
  File "av/container/output.pyx", line 22, in av.container.output.close_output
  File "av/container/core.pyx", line 267, in av.container.core.Container.err_check
  File "av/error.pyx", line 328, in av.error.err_check
  File "av/container/pyio.pyx", line 39, in av.container.pyio.pyio_write_gil

OK now I’ve got a DAIKIN error ->

2020-05-22 22:12:51 ERROR (MainThread) [homeassistant.components.daikin.config_flow] ClientError
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/aiohttp/connector.py", line 936, in _wrap_create_connection
    return await self._loop.create_connection(*args, **kwargs)  # type: ignore  # noqa
  File "/usr/local/lib/python3.7/asyncio/base_events.py", line 962, in create_connection
    raise exceptions[0]
  File "/usr/local/lib/python3.7/asyncio/base_events.py", line 949, in create_connection
    await self.sock_connect(sock, address)
  File "/usr/local/lib/python3.7/asyncio/selector_events.py", line 473, in sock_connect
    return await fut
  File "/usr/local/lib/python3.7/asyncio/selector_events.py", line 503, in _sock_connect_cb
    raise OSError(err, f'Connect call failed {address}')
ConnectionRefusedError: [Errno 111] Connect call failed ('192.168.1.163', 2000)

This works in a browser -> http://192.168.1.163/skyfi/aircon/set_control_info?pow=1&mode=1&stemp=24&shum=--&f_rate=5&f_dir=0&lpw=&f_airside=0

There is a patch for this that will be available in 0.110.2.

I’m sorry for the inconvenience but the whole underlying library have been rewritten, I don’t own an AirBase unit so that code was not tested enough.

I hope it didn’t turn into flames. One can expect that issues could occur when the log say pydaikin updated to 2.0.0.

Thanks for the reply.