rospogrigio / daikin_residential

Cloud control of Daikin devices that are supported by Daikin Residential Controller app.
GNU General Public License v3.0
282 stars 39 forks source link

Unable to set swing mode (BRP069C4x) #145

Open genex89 opened 1 year ago

genex89 commented 1 year ago

I have a daikin siesta ATXF25E with BRP069C4x wifi card. I can control the climate control just fine, but not turning the vertical swing on and off. I get the following error:

Logger: homeassistant.components.websocket_api.http.connection Source: custom_components/daikin_residential/device.py:334 Integration: Home Assistant WebSocket API (documentation, issues) First occurred: 20:12:43 (2 occurrences) Last logged: 20:12:44

[1516607120] Please provide a valid datapoint definition that exists in the data structure Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 205, in handle_call_service await hass.services.async_call( File "/usr/src/homeassistant/homeassistant/core.py", line 1910, in async_call task.result() File "/usr/src/homeassistant/homeassistant/core.py", line 1950, in _execute_service await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)( File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 226, in handle_service await service.entity_service_call( File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 811, in entity_service_call future.result() # pop exception if have ^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1034, in async_request_call await coro File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 851, in _handle_entity_call await result File "/config/custom_components/daikin_residential/climate.py", line 247, in async_set_swing_mode await self._device.async_set_swing_mode(swing_mode) File "/config/custom_components/daikin_residential/daikin_base.py", line 275, in async_set_swing_mode await self.setValue(ATTR_HSWING_MODE, new_hMode) File "/config/custom_components/daikin_residential/daikin_base.py", line 135, in setValue return await self.set_data(cmd_set[0], cmd_set[1], cmd_set[2], value) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/daikin_residential/device.py", line 334, in set_data raise Exception( Exception: Please provide a valid datapoint definition that exists in the data structure

jwillemsen commented 1 year ago

Please attach the device diagnostics (see Settings/Device&Services/Daikin Residential Controller/Download diagnostics) and a HA log with debugging enabed

pplucky commented 1 year ago

Please attach the device diagnostics (see Settings/Device&Services/Daikin Residential Controller/Download diagnostics) and a HA log with debugging enabed

As @genex89 never reported back, but I'm facing the same issue with controllers BRP069C4x and BRP069B4x (same exact error message), I'll take over and provide the data you requested.

HA log (all other messages after activating debug log level are mqtt or esphome related):

2023-08-01 22:48:04.701 INFO (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Running websocket_api script
2023-08-01 22:48:04.702 INFO (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Executing step call service
2023-08-01 22:48:04.709 ERROR (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Error executing script. Unexpected error for call_service at pos 1: Please provide a valid datapoint definition that exists in the data structure
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 468, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 703, in _async_call_service_step
    response_data = await self._async_run_long_action(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 665, in _async_run_long_action
    return long_task.result()
           ^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 1965, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2005, in _execute_service
    return await cast(
           ^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 235, in handle_service
    return await service.entity_service_call(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 848, in entity_service_call
    response_data = task.result()  # pop exception if have
                    ^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1192, in async_request_call
    return await coro
           ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 892, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/config/custom_components/daikin_residential/climate.py", line 247, in async_set_swing_mode
    await self._device.async_set_swing_mode(swing_mode)
  File "/config/custom_components/daikin_residential/daikin_base.py", line 275, in async_set_swing_mode
    await self.setValue(ATTR_HSWING_MODE, new_hMode)
  File "/config/custom_components/daikin_residential/daikin_base.py", line 135, in setValue
    return await self.set_data(cmd_set[0], cmd_set[1], cmd_set[2], value)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/daikin_residential/device.py", line 334, in set_data
    raise Exception(
Exception: Please provide a valid datapoint definition that exists in the data structure

Diagnostics files (personal data redacted) BRP069C4x

BRP069B4x

Please let me know if you need anything else.

Thanks in advance.

jwillemsen commented 1 year ago

Looks this device doesn't have a horizontal swing mode, only vertical, looks some code doesn't check that. Maybe the following change works for you, see https://github.com/rospogrigio/daikin_residential/commit/5d1553afac18122030e66bd917340b23c3ad7d94. Can you make the same change locally and let us know?

pplucky commented 1 year ago

No error appeared, but it didn't seem to fully work properly.

Would you be able to review this fix I took from another repository (@droscy I believe), as this seems to work properly for me?

thanosa75 commented 1 year ago

Hi - have the same problem - did this get fixed at the end?

jwillemsen commented 11 months ago

Maybe you can try https://github.com/jwillemsen/daikin_residential_altherma/tree/jwi-climatecontrolrework, that integration now has also support for the daikin AC units

jwillemsen commented 11 months ago

See https://github.com/jwillemsen/daikin_residential_altherma/releases for a forked integration which does have this support