Expose to KNX bus

The Expose to KNX bus action adds or removes an exposure that sends a Home Assistant entity state or attribute to a KNX group address. Once registered, state and attribute updates are written to the bus, and GroupValueRead requests for that address are answered.

This is useful when you want other KNX devices to react to or read Home Assistant values, and to manage those exposures dynamically instead of defining them all up front.

Exposures defined through your configuration.yamlThe configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more] cannot be removed with this action. Per address, only one exposure can be registered. For more details, and for additional exposure options like value_template, cooldown, periodic_send, and respond_to_read, see the Exposing entity states, entity attributes or time to KNX bus section.

Tip

This action is mainly intended for blueprint creators and for registering exposures on the fly. For exposures that should run all the time, set them up through the UI or YAML expose configuration instead.

Using this action from the user interface

If you prefer building automations and scripts visually, Home Assistant walks you through this action step by step. You pick what to target, tweak a few options, and save. No YAML knowledge required.

To register an exposure from an automation or a script:

  1. Go to Settings > Automations & scenes.
  2. Open an existing automation or script, or select Create automation > Create new automation.
  3. If you’re setting up a new automation, add a trigger in the When section. Scripts don’t need a trigger. They run when something else calls them.
  4. In the Then do section, select Add action.
  5. From the search box, search for and select KNX: Expose to KNX bus.
  6. Enter the Group address, the Value type, and the Entity to expose. Optionally, set an Entity attribute and a Default value, or turn on Remove exposure to remove the exposure.
  7. Select Save.

This action does not support targets. In the UI, you are not prompted to choose an area, device, entity, or label. Only users with administrator rights can run this action.

Options in the UI

Group address (Required)

The group address that state or attribute updates are sent to, and that answers GroupValueRead requests.

Value type (Required)

The DPT that telegrams are encoded as. binary and all KNX sensor types are valid values. See the list of types in the KNX sensor section.

Entity (Required)

The entity whose state or attribute is exposed.

Entity attribute (Optional)

The attribute of the entity to send to the KNX bus. If not set, the state is sent. For example, for a light the state is either on or off, while the brightness attribute exposes its brightness.

Default value (Optional)

The value to send to the bus when the state or attribute value is not available. For example, a light with state off has no brightness attribute, so a default value of 0 could be used. If not set, no value is sent and a GroupValueRead request returns the last known value.

Remove exposure (Optional)

If turned on, the exposure is removed. Only the group address is required for removal.

Using this action in YAML

If you work directly in YAML, or you want to know exactly what Home Assistant does under the hood, this section has the technical reference. It lists the field names you use in YAML, their types, and which ones are required.

In YAML, refer to this action as knx.exposure_register. A basic example looks like this:

ActionActions are used in several places in Home Assistant. As part of a script or automation, actions define what is going to happen once a trigger is activated. In scripts, an action is called *sequence*. [Learn more]
action: knx.exposure_register
data:
  address: "1/1/0"
  type: percentU8
  entity_id: light.living_room
  attribute: brightness
  default: 0

This exposes the brightness of light.living_room to group address 1/1/0.

Options in YAML

address string Required

The group address that state or attribute updates are sent to, and that answers GroupValueRead requests.

type string Required

The DPT that telegrams are encoded as. binary and all KNX sensor types are valid values. See the list of types in the KNX sensor section.

entity_id string Required

The entity whose state or attribute is exposed.

attribute string

The attribute of the entity to send to the KNX bus. If not set, the state is sent.

default string | integer | float

The value to send to the bus when the state or attribute value is not available. If not set, no value is sent and a GroupValueRead request returns the last known value.

remove boolean

If set to true, the exposure is removed. Only address is required for removal.

Try it yourself

Ready to test this? Open Developer tools > Actions, search for this action, fill in the fields, and select Perform action. You see what happens on your actual entitiesAn entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. [Learn more] without writing a line of YAML.

Still stuck?

The Home Assistant community is quick to help: join Discord for real-time chat, post on the community forum with the action you’re calling and what you expected to happen, or share on our subreddit /r/homeassistant.

Tip

AI assistants like ChatGPT or Claude can also explain actions or suggest the right one when you describe what you want in plain language.

Related actions

These actions work well alongside this one: