core: No such command setDerogatedTargetTemperature for AtlanticPassAPCZoneControl in Overkiz

The problem

I am unable to use the climate sensors to set the temperature. all the info are read correctly but setting the temperature throws an error.

What version of Home Assistant Core has the issue?

2023.3.4

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Overkiz

Link to integration documentation on our website

https://www.home-assistant.io/integrations/overkiz/

Diagnostics information

overkiz-a15c7ca4773479e298c60ab34ebfbc16-Zone Control-da64fb02eb20fa578a7d2d348ed3a6a6.json (1).txt

Example YAML snippet

No response

Anything in the logs that might be useful for us?

File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 613, in async_service_temperature_set
    await entity.async_set_temperature(**kwargs)
  File "/usr/src/homeassistant/homeassistant/components/overkiz/climate_entities/atlantic_pass_apc_heating_zone.py", line 195, in async_set_temperature
    await self.executor.async_execute_command(
  File "/usr/src/homeassistant/homeassistant/components/overkiz/executor.py", line 91, in async_execute_command
    exec_id = await self.coordinator.client.execute_command(
  File "/usr/local/lib/python3.10/site-packages/backoff/_async.py", line 151, in retry
    ret = await target(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/backoff/_async.py", line 151, in retry
    ret = await target(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/pyoverkiz/client.py", line 609, in execute_command
    response: str = await self.execute_commands(device_url, [command], label)
  File "/usr/local/lib/python3.10/site-packages/backoff/_async.py", line 151, in retry
    ret = await target(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/pyoverkiz/client.py", line 637, in execute_commands
    response: dict = await self.__post("exec/apply", payload)
  File "/usr/local/lib/python3.10/site-packages/pyoverkiz/client.py", line 778, in __post
    await self.check_response(response)
  File "/usr/local/lib/python3.10/site-packages/pyoverkiz/client.py", line 837, in check_response
    raise InvalidCommandException(message)
pyoverkiz.exceptions.InvalidCommandException: No such command : setDerogatedTargetTemperature on device io://0829-4914-6815/12038217#8 (io:AtlanticPassAPCZoneControlZoneComponent)

Additional information

No response

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 1
  • Comments: 44 (17 by maintainers)

Most upvoted comments

thank you @YomoShitsu for gathering all the data! I hope we will have an update on the Overkiz integration soon.

Hello @iMicknl, below mys tests and analyze in order to close this issue : Temperature Sensor Room : OK on Overkiz intergration Temperature set by room : OK (Time to retrieve it on home assistant : about one minute) -> “HistoryExecution(id=‘63041b94-0a1b-4481-51dd-23f1182adcc9’, event_time=1702468262807, owner=GACOMA_Production_18988, source=‘mobile:mobile’, end_time=1702468265385, effective_start_time=1702468262807, duration=2578, label=‘Atlantic iOS: 3.7.7 (62)’, type=‘Immediate execution - MANUAL_CONTROL’, state=<ExecutionState.COMPLETED: ‘COMPLETED’>, failure_type=‘NO_FAILURE’, commands=[HistoryExecutionCommand(device_url=io://--2852/3830453#2, command=‘refreshTargetTemperature’, rank=0, dynamic=False, state=<ExecutionState.COMPLETED: ‘COMPLETED’>, failure_type=‘NO_FAILURE’, parameters=[])], execution_type=<ExecutionType.IMMEDIATE_EXECUTION: ‘Immediate execution’>, execution_sub_type=<ExecutionSubType.MANUAL_CONTROL: ‘MANUAL_CONTROL’>)” Works on Overkiz integration. Command seems to be : refreshTargetTemperature

1 - change temperature from Chambre extension from 20.0° to 21.0° with cozytouch app 2 - change temperature from Chambre extension from 21.0° to 20.0° with cozytouch app -> logs in events for 2 : event_type: state_changed data: entity_id: climate.chambre_extension old_state: entity_id: climate.chambre_extension state: heat attributes: hvac_modes: - auto - heat - “off” min_temp: 7 max_temp: 35 preset_modes: - eco - comfort - away - frost_protection - external - home current_temperature: 20.3 temperature: 21 preset_mode: comfort friendly_name: Chambre Extension supported_features: 17 last_changed: “2023-12-20T04:16:32.110764+00:00” last_updated: “2023-12-20T10:52:31.967063+00:00” context: id: 01HJ3DP3AZZBVG9NRPDA74E2TB parent_id: null user_id: null new_state: entity_id: climate.chambre_extension state: heat attributes: hvac_modes: - auto - heat - “off” min_temp: 7 max_temp: 35 preset_modes: - eco - comfort - away - frost_protection - external - home current_temperature: 20.3 temperature: 20 preset_mode: comfort friendly_name: Chambre Extension supported_features: 17 last_changed: “2023-12-20T04:16:32.110764+00:00” last_updated: “2023-12-20T10:55:31.944337+00:00” context: id: 01HJ3DVK383B403T2GZ3XWBGWK parent_id: null user_id: null origin: LOCAL time_fired: “2023-12-20T10:55:31.944337+00:00” context: id: 01HJ3DVK383B403T2GZ3XWBGWK parent_id: null user_id: null

-> in log of overkiz : "HistoryExecution(id=‘6303a0de-0a1b-4481-51dd-23f160eefe2f’, event_time=1702468231393, owner=GACOMA_Production_18988, source=‘mobile:mobile’, end_time=1702468235155, effective_start_time=1702468231393, duration=3762, label=‘Atlantic iOS: 3.7.7 (62)’, type=‘Immediate execution - MANUAL_CONTROL’, state=<ExecutionState.COMPLETED: ‘COMPLETED’>, failure_type=‘NO_FAILURE’, commands=[HistoryExecutionCommand(device_url=io://--2852/3830453#2, command=‘setHeatingTargetTemperature’, rank=0, dynamic=False, state=<ExecutionState.COMPLETED: ‘COMPLETED’>, failure_type=‘NO_FAILURE’, parameters=[23])], execution_type=<ExecutionType.IMMEDIATE_EXECUTION: ‘Immediate execution’>, execution_sub_type=<ExecutionSubType.MANUAL_CONTROL: ‘MANUAL_CONTROL’>) Command seems to be setHeatingTargetTemperature

3 - Change heat temperature manually with Overkiz integration : -> first log in homeassistant : event_type: call_service data: domain: climate service: set_temperature service_data: entity_id: climate.chambre_extension temperature: 20 origin: LOCAL time_fired: “2023-12-20T11:04:08.043998+00:00” context: id: 01HJ3EBB3BNFES34HS08578921 parent_id: null user_id: 8b5c21ef3e3b4ea6be5dfff5fb3b56b9 -> log answer from Overkiz or Atlantic in home assistant event_type: call_service data: domain: system_log service: write service_data: logger: frontend.js.latest.202312082 message: |- Unhandled promise rejection from Chrome 120.0.0.0 on Windows 10 { “code”: “unknown_error”, “message”: “No such command : setDerogatedTargetTemperature on device io://0833-1545-2852/3830453#8 (io:AtlanticPassAPCZoneControlZoneComponent)” } level: debug origin: LOCAL time_fired: “2023-12-20T11:04:08.172804+00:00” context: id: 01HJ3EBB7CQ3ZD4N57QW1FDZ2F parent_id: null user_id: 8b5c21ef3e3b4ea6be5dfff5fb3b56b9

-> no more log in overkiz logs integration

4 - Change mode heating to freeze in cozytouch appand try to set a temperature in cozytouch app The command to change cooling temperature seems to be : setCoolingTargetTemperature -> HistoryExecution(id=‘86ebcce5-0a1b-4481-51dd-23f11b9ba758’, event_time=1703070649576, owner=GACOMA_Production_18988, source=‘mobile:mobile’, end_time=1703070655393, effective_start_time=1703070649576, duration=5817, label=‘Atlantic iOS: 3.7.8 (68)’, type=‘Immediate execution - MANUAL_CONTROL’, state=<ExecutionState.COMPLETED: ‘COMPLETED’>, failure_type=‘NO_FAILURE’, commands=[HistoryExecutionCommand(device_url=io://--2852/3830453#8, command=‘setCoolingTargetTemperature’, rank=0, dynamic=False, state=<ExecutionState.COMPLETED: ‘COMPLETED’>, failure_type=‘NO_FAILURE’, parameters=[21])], execution_type=<ExecutionType.IMMEDIATE_EXECUTION: ‘Immediate execution’>, execution_sub_type=<ExecutionSubType.MANUAL_CONTROL: ‘MANUAL_CONTROL’>)

Change from Heat Mode to Cool Mode with Overkiz integration works

So to CONCLUDE : These two commands must be added in Overkiz integration :

setHeatingTargetTemperature setCoolingTargetTemperature

This is a known issue and would need to be fixed by a contributor (like me). At the moment I don’t have time to work on this, thus we will keep this issue open until it has been fixed. No timelines / ETA available.

After some investigations, I found a lot of limitations on what we can do:

  • only two presets can be set -> internalSchedule or manual
  • however we can get the current active mode (eco, stop, manual, comfort, frost_protection)
  • I just found a way to be able to “stop” the Zone, but a bit tricky
  • of course, the hvac mode of the device depends of the hvac mode of the Zone Control (heating or cooling or off)

Then come the question on how to display that in HA, here what I have implemented so far:

  • HVAC Mode for Zone : choice between the current Zone Mode or Off
  • Preset : choice between “InternalSchedule” and “None”

If some people like, I could also show all the presets to show the active preset, but in this case only None and InternalSchedule can be choosen from HA. I’m really not sure what should be the best behavior there.

Everything is a bit mixed up in this device + the device is really slow to update its status (even by refreshing them manually).

Hopefuly now that I have a clear vision of what it can and can’t do, I can tackle that down for a first revision.

ALSO NOTE that the thermostat should be kept in the Zone because there is no way the system will work without them sending the temperature… Again a fucked’up Atlantic choice.

PS: not sure I will be able to do that tonight, and I’m in travel until saturday for the rest of the week, so do not worry if no news until there

@nyroDev, are you certain your device is a UIWidget.ATLANTIC_PASS_APC_HEATING_AND_COOLING_ZONE? From what I read, it appears your device lacks the cooling function, leading me to believe it was actually a UIWidget.ATLANTIC_PASS_APC_HEATING_ZONE.

But if your device truly is `UIWidget.ATLANTIC_PASS_APC_HEATING_AND_COOLING_ZONEˋ, it would require extra caution due to the distinct behavior. Indeed this issue is specifically for those, not supporting the same “commands”.

If we both have the same UIWidget, it will be needed to interrogate for the available states first, and maybe save additional infos in the ha device.

Could you specify your device model? Also, is there a diagnostic report available for your model?

(@YomoShitsu, I did not yet sent the PR for HA, the PR linked above was about some requirements works on a dependency)

I have the same problem. Waiting for months now hoping the issue get solved.

Hello @iMicknl any update about changing the code of overkiz integration ? May I can help you on Github ? I am not a dev expert but I have some knowledge on GitHub. Could I create a new branch to propose modification through a pull request ?

Can we help in any way here ?

@iMicknl for sure ! I will contact you on discord after October 1. I will change my credentials for your tests. See you