Climate HVAC Modes with KNX Integration


I am new to HA and currently trying to set up my KNX-controlled Mitsubishi air condition with the KNX integration. It partly works, but I can’t set any other HVAC mode than “heat”. I am not yet fully understanding how all the different aspects are supposed to interconnect, but it seems that the entity created by the KNX integration does not contain other modes than heat, even though I configured them.

Any help would be appreciated.


The card shows:

from my configuration.yaml

    - name: "Klimaanlage Wohnzimmer"
      temperature_address: "6/5/14"
      target_temperature_address: "6/4/10"
      target_temperature_state_address: "6/5/13"
      min_temp: 18.0
      max_temp: 26.0
      operation_mode_address: "6/4/2"
      operation_mode_state_address: "6/5/2"
        - "Off"
        - "Heat"
        - "Cool"
        - "Fan only"
        - "Dry"
      on_off_address: "6/4/1"
      on_off_state_address: "6/5/1"

state of the entity in developer mode shows:

  - 'off'
  - heat
min_temp: 18
max_temp: 26
target_temp_step: 0.1
  - sleep
  - none
  - comfort
  - eco
  - away
current_temperature: 18
temperature: 24
hvac_action: 'off'
preset_mode: comfort
friendly_name: Klimaanlage Wohnzimmer
supported_features: 17

Having summed up everything for this posting made me realize that I confused operation mode and controller mode. renaming operation_mode_address to controller_mode_address fixed it… Sorry for this (semi-)useless posting :wink:

Hi :wave:!

Remove that - it overrides available modes for the purpose of removing specific ones from UI (which is not really intuitive :grimacing:). It can’t add modes that can’t be controlled…

operation_mode_* is used for HA Climate presets (the wording is misleading, but thats just differently specified in HA and KNX).

For HA climate modes you’d need to configure controller_mode_address or heat_cool_address and their states.

Thanks for the quick reply. I don’t understand the comment regarding controller_modes, though. After renaming operation mode (state) address to controller mode (state) address, it seems to work as intended.

I explicitly wanted to exclude the “auto” mode from the controls, as it is a multi split air condition and auto might cause confusion (i.e. error state) if one device requests heat and another cool. btw: is there a default solution in HA to prevent this from being set manually?

Also the whole operation mode domain seems to be non-existent for my Mitsubishi A/C. Which kind of devices usually have such modes?

Room thermostats / (underfloor) heating controllers.

When starting Home Assistant, I would like Comfort mode to be selected by default, which command should I add to my configuration?

# Lingerie
  - name: lingerie.temperature
    temperature_address: "4/0/3"
    temperature_step: 0.5
    target_temperature_address: "4/1/3"
    target_temperature_state_address: "4/6/3"
    operation_mode_address: "4/2/3"
    operation_mode_state_address: "4/5/3"
    min_temp: 7.0
    max_temp: 32.0

I don’t understand what you mean.
If you don’t want to have the mode selectable, don’t set operation_mode..., otherwise configure it.

I want to select the modes well (and it works) but when restarting Home assistant the selected mode is not retained and I want the Comfort mode to be selected automatically.

this is read from operation_mode_state_address from the bus. Just make sure that GA responds, your previous mode will then be shown.

In the log file, I have the following error message while the mode changes without a problem from ETS or from the HA card.

 WARNING (MainThread) [xknx.log] Can not process <Telegram direction="Incoming" source_address="1.1.52" destination_address="4/5/3" payload="<GroupValueResponse value="<DPTArray value="[0x21]" />" />" /> for lingerie.temperature Mode - Operation mode: <ConversionError description="Payload not supported for DPTHVACMode" raw="(33,)"/>

operation_mode_state_address, just like operation_mode_address expects a DPT 20.102 object. Your GA “4/5/3” seems to send something different.

4/5/3 read mode; it’s 4/23 that sends the mode

Well, it doesn’t send the correct payload. Check your actuator settings and manual. Some use different DPTs for setting and status.
Have you set that DPT on the right side manually?

Initially I didn’t configure anything on the menu on the right side. When I see the errors in the log file I selected dpt 20.102 but the errors still appear


This doesn’t change anything, but only introduces confusion. It’s only used internally in ETS - the actuator doesn’t even know about that.

From your manual: Hvac_Status and RHCC_Status are not Hvac_Mode. I think the former one maps to controller_status_state_address, but not sure. It can’t be used for operation_mode_state_address.

What concerns me is that everything works as well as a change of mode sent from the ETS group monitor as a change made on the Dahbord of HA. If the format sent was not the correct one, I should have a malfunction. ?

It receives on operation_mode_address (non-state) which is a proper 20.102.

Following your remarks, I modified the ETS configuration by assigning
the same group address (4/2/3) at operation_mode_address: and at operation_mode_state_address: “4/2/3”(with Flags R and W activated on the object of this address).
I have no more error messages in the log file and after a restart of HA, the mode selected before the restart is retained.
Thanks a lot for your help.

I’m sorry if I’m asking something obvious but I’m having hard time to find a solution to my issue.
In my KNX Thermostat the heating/cooling mode are as follow 0=Auto, 1=Comfort, 2=PreComfort, 3=Economy, 4=Off
What I’m ring to do is to setup climate device in KNX integration in order to have and control those modes, but I’m not sure how to do that (if possible)
Thanks for any help and suggestion

This sounds a lot like DPT 20.102 - except for some different wording of the modes, but HA maps them to different presets anyway.