KNX Expose timing

Hi,

how can i trigger sending the data of sensors that are exposed to KNX?

My setup is like this:
several temperature sensors in different rooms that deliver their data via MQTT to HA.
KNX heating actuator for underfloor-heating
heating actuator needs the actual temperature of the room via KNX
Homeassistant is receiving the temperature via MQTT and the sensor is then exposed to KNX.

The heating actuator is konfigured to switch to failsafe mode when(if) the temperature sensor value is not received within 30 minutes. It then triggers the alarm-output (which i receive in HA).

The temperature does not fluctuate a lot, so besides receiving a new value every minute, the value does not change as often.

The Temperature sensors are configured like this:

  - platform: mqtt
    name: OG.Kind1.Temperatur
    force_update: true
    state_topic: '/OG/Kind1/tempsensor/temperature'
    unit_of_measurement: '°C'

And the KNX-exposure looks like this:

expose:
  - type: 'temperature'
    entity_id: Sensor.og_kind1_temperatur
    address: '3/3/200'

Although the sensor is configured with “force_update: true”, a new value is sent to KNX only, if the value is different from the one before.
I can see that “force_update” is effective in influxDB and Grafana, but this does not seem to have any effect on the KNX integration.

has anyone a similar setup? How did you solve this problem?
Maybe this is a bug in the KNX integration?
I think that the “force_update” attribute for a sensor should also trigger sending the value to KNX on every new value…

Hi :wave:!

That’s not supported for KNX expose - neither sending periodically, nor sending without value change.
Feel free to add your ideas to Expose: send periodically, throttle · Issue #765 · XKNX/xknx · GitHub

You can however use an automation with the knx.send service to send the entities state periodically. If you like use both, the automation and expose, to have it readable from bus and update immediately when the value changes while having periodical telegrams from the automation. No need for force_update then.

Maybe this could be a solution:
Write an automation, which sends a knx.read to the adresses u want to be sent to knx. this triggers homeassistant to answer.

alias: KNX temperatur senden
description: >-
  Schickt an 3/3/200  ein Groupvalueread damit Homeassistant mit den Daten antwortet.
trigger:
  - platform: time_pattern
    minutes: '25'
condition: []
action:
  - service: knx.read
    data:
      address: 3/3/200
# other sensors  - service: knx.read
#    data:
#      address: 1/0/11
mode: single