KNX Climate: combine 2 _state_ GA's (vale state AND pump state)

Hello,

tl;dr: my KNX thermostate/actuator will open/close the valve for a room. However this doesn’t mean that heating is actually on. I’d like to AND with the heating pump state, so HA heating state for a room is actually correct, and doesn’t just represent the valve state.

I have glanced over another thread where someone was talking about “internal dummy GA” within HA. However I have not quite understood how that would look like.

For example here’s an excerpt of the knx configuration:

binary_sensor:
  - name: "WP MM HK2 PUMPE STATUS"
    state_address: "3/5/240"

climate:
  - name: "Abstellraum"
    temperature_address: "3/5/6"
    target_temperature_state_address: "3/5/101"
    target_temperature_address: "3/5/102"
    operation_mode_state_address: "3/5/103"
    operation_mode_address: "3/5/104"
    command_value_state_address: "3/5/105"
    on_off_state_address: "3/5/201"

So for Abstellraum I’d like to set on_off_state_address to 3/5/240 AND 3/5/201

What would be the best way to achieve this?

Thank you!

  • Create a binary sensor for each GA
  • create a template helper to combine those with &
  • use expose to get the state of the helper back to the bus

Alternatively use a knx devices internal logic for it - many devices provide simple binary logics.

Why does the valve open when there is no pump running?

Ok, thanks.

The reason is that I need to signal to the pump whether there is a “request” or not.
If there are no rooms that need heating (or cooling), so if all valves are closed - I don’t want the pump/heating to run at all.

However if at the same time I “block” the valves, in case the pump doesn’t run, I have a catch-22 and when everything is off, I can’t turn it back on, because pump will be off due to no “request”, there will be no request until the valves turn open, and there will no valves turn open because the pump is off.

Feels like I’m doing it wrong, to be honest :grinning:

According to your logic, the pump would always be “on” when the command_value_state is not 0. Which would render as “active” state.

on_off_state_address is intended for climate devices that can be turned off individually. But it may work fine without a on_off_address too, just give it a try.

command_value_state > 0 is equal to on_off_state_address. Whether I feed HA with one or the other is irrelevant, the result would the same.

Unfortunately the KNX actor does not really cover my use case, so I need to break the catch 22 up.

I will stop feeding the heat requirement back to the heating pump. Seems like a stupid idea but it will solve all my issues and it isn’t really useful in my heating configuration anyway.