Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Climate not working anymore : ConversionError description="HVACStatus value not initialized. Can not write new mode." #124505

Closed
hkienlen opened this issue Aug 23, 2024 · 6 comments
Assignees

Comments

@hkienlen
Copy link

The problem

When changing climate mode, or preset, I got the following error :

Failed to perform the action climate/set_hvac_mode. <ConversionError description="HVACStatus value not initialized. Can not write new mode." device_name="Thermostat.shiatsu Mode"/>

Climate mode is not set.

This happens for every climate device. I'm running KNX climate devices

It was running fine until this spring then I didn't had to use climate anymore. But fall is coming ;)

What version of Home Assistant Core has the issue?

core-2024.8.2

What was the last working version of Home Assistant Core?

core-2024.4.x

What type of installation are you running?

Home Assistant OS

Integration causing the issue

No response

Link to integration documentation on our website

No response

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

2024-08-23 21:05:46.211 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140689505296464] Unexpected exception
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 241, in handle_call_service
response = await hass.services.async_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2763, in async_call
response_data = await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2806, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 999, in entity_service_call
single_response = await _handle_entity_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1071, in _handle_entity_call
result = await task
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/knx/climate.py", line 296, in async_set_hvac_mode
await self._device.mode.set_controller_mode(knx_controller_mode)
File "/usr/local/lib/python3.12/site-packages/xknx/devices/climate_mode.py", line 253, in set_controller_mode
rv.set_controller_mode(controller_mode)
File "/usr/local/lib/python3.12/site-packages/xknx/remote_value/remote_value_climate_mode.py", line 214, in set_controller_mode
raise ConversionError(
xknx.exceptions.exception.ConversionError: <ConversionError description="HVACStatus value not initialized. Can not write new mode." device_name="Thermostat.shiatsu Mode"/>

Additional information

No response

@home-assistant
Copy link

Hey there @Julius2342, @farmio, @marvin-w, mind taking a look at this issue as it has been labeled with an integration (knx) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of knx can trigger bot actions by commenting:

  • @home-assistant close Closes the issue.
  • @home-assistant rename Awesome new title Renames the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign knx Removes the current integration label and assignees on the issue, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


knx documentation
knx source
(message by IssueLinks)

@farmio
Copy link
Contributor

farmio commented Aug 23, 2024

Hi 👋!
If you use controller_status_address in your knx climate configuration, you will also need to have a readable controller_status_state_address. This DPT now supports both, heat/cool and preset options. In order to send a new value it has to be initialised to not mess with the other value. (Previously it always just assumed "heating").

Please note that it is very unusual to have this DPT as writable address - maybe double check your actuator configuration if it supports DPT 20.102 as writable mode.

From KNX specifications:

DPT_HVACStatus is a non-standard DPT that is used by an HVAC Room controller to report the
currently set HVAC Mode by means of a status/diagnostic Datapoint.

@farmio
Copy link
Contributor

farmio commented Aug 23, 2024

Please also note that there is a bug with decoding controller_status DPT currently. #124257 will fix that.

@hkienlen
Copy link
Author

Hi 👋! If you use controller_status_address in your knx climate configuration, you will also need to have a readable controller_status_state_address. This DPT now supports both, heat/cool and preset options. In order to send a new value it has to be initialised to not mess with the other value. (Previously it always just assumed "heating").

Please note that it is very unusual to have this DPT as writable address - maybe double check your actuator configuration if it supports DPT 20.102 as writable mode.

From KNX specifications:

DPT_HVACStatus is a non-standard DPT that is used by an HVAC Room controller to report the
currently set HVAC Mode by means of a status/diagnostic Datapoint.

Hi :)
Thanks for your feedback.
Are you not confusing with operation_mode_address / operation_mode_state_address or controller_mode_address / controller_mode_state_address ?

All my climate devices are configured as follows :

- name: Thermostat.shiatsu
temperature_address:              '8/1/17'
on_off_address:                   '4/0/17'
on_off_state_address:             '4/1/17'
target_temperature_address:       '4/2/17'
target_temperature_state_address: '4/3/17'
controller_status_address:        '4/6/17'
controller_status_state_address:  '4/7/17'
temperature_step:                       0.5
max_temp:                               28
min_temp:                               15
operation_mode_address:         '4/4/17'
operation_mode_state_address:   '4/5/17'

@farmio
Copy link
Contributor

farmio commented Aug 23, 2024

No I'm not.
Is your controller_status_state_address: '4/7/17' readable from bus (read flag)?

In doubt just try to comment out controller_status_address.

@hkienlen
Copy link
Author

@farmio , you got it !
Commenting out controller_status_address did it
Thanks 🙏

@github-actions github-actions bot locked and limited conversation to collaborators Sep 22, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants