KNX passive addresses (#17071)

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
This commit is contained in:
Matthias Alphart 2021-03-30 18:19:35 +02:00 committed by GitHub
parent abfb3bddc5
commit 208bb24714
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -58,13 +58,13 @@ There is currently support for the following device types within Home Assistant:
## Basic Configuration ## Basic Configuration
To use your KNX bus in your installation, add the following lines to your `configuration.yaml` file: To use your KNX devices from Home Assistant, add the following lines to your `configuration.yaml` file:
```yaml ```yaml
knx: knx:
``` ```
In order to make use of the various platforms that KNX offers you will need to add the relevant configuration sections to your setup. This could either all be in the Home Assistant main `configuration.yaml` file, or in a separate YAML file that you include in the main file or even be split into multiple dedicated files as shown below: In order to make use of the various platforms that KNX offers you will need to add the relevant configuration sections to your setup. This could either all be in the Home Assistant main `configuration.yaml` file, or in a separate YAML file that you include in the main file or even be split into multiple dedicated files. See [Splitting up the configuration](/docs/configuration/splitting_configuration/).
```yaml ```yaml
knx: knx:
@ -107,6 +107,33 @@ state_updater:
type: boolean type: boolean
{% endconfiguration %} {% endconfiguration %}
### Group addresses
Group addresses are configured as strings or integers in the format "1/2/3" for 3-level GA-structure, "1/2" for 2-level GA-structure or "1" for free GA-structure.
The HA KNX integration uses configured `state_address` or `*_state_address` to update the state of a function. These addresses are read by GroupValueRead requests on startup and when there was no incoming telegram for one hour (default `sync_state`).
It is possible to configure passive/listening group addresses for all functions of every KNX platform (except `expose` and `notify`). This allows having multiple group addresses to update the state of its function (e.g., the brightness of a light). When group addresses are configured as a list of strings, the first item is the active sending or state-reading address and the rest is registered as passive addresses. This schema behaves like in ETS configuration where the first is the "sending" address and others are just for updating the communication object.
If your KNX device provides active state communication objects it is advised to use `*_state_address` instead of passive addresses as it reduces configuration complexity and avoids wrong states (e.g., when channels are logically locked).
```yaml
knx:
switch:
- name: "Switch without passive addresses"
address: "1/1/1" # this is the address that will be sent to
state_address: "8/8/8" # this is the address GroupValueRead requests are sent to
- name: "Switch with passive addresses"
address:
- "1/1/1" # this is the address that will be sent to
- "1/1/2" # this and following are passive addresses
- "1/1/3"
state_address:
- "8/8/8" # this is the address GroupValueRead requests are sent to
- "8/8/2" # this and following are passive addresses
- "8/8/3"
```
## Connection ## Connection
Under normal conditions no connection configuration should be needed. The integration will auto-detect KNX/IP interfaces and connect to one. This requires multicast communication to work in your environment. Under normal conditions no connection configuration should be needed. The integration will auto-detect KNX/IP interfaces and connect to one. This requires multicast communication to work in your environment.
@ -261,7 +288,7 @@ The `knx.event_register` service can be used to register (or unregister) group a
address: address:
description: Group address that shall be added or removed. description: Group address that shall be added or removed.
required: true required: true
type: string type: [string, list]
remove: remove:
description: If `True` the group address will be removed. description: If `True` the group address will be removed.
required: false required: false
@ -357,7 +384,7 @@ knx:
state_address: state_address:
description: KNX group address of the binary sensor. *DPT 1* description: KNX group address of the binary sensor. *DPT 1*
required: true required: true
type: string type: [string, list]
name: name:
description: A name for this device used within Home Assistant. description: A name for this device used within Home Assistant.
required: false required: false
@ -563,7 +590,7 @@ name:
temperature_address: temperature_address:
description: KNX group address for reading current room temperature from KNX bus. *DPT 9.001* description: KNX group address for reading current room temperature from KNX bus. *DPT 9.001*
required: true required: true
type: string type: [string, list]
temperature_step: temperature_step:
description: Defines the step size in Kelvin for each step of setpoint_shift. description: Defines the step size in Kelvin for each step of setpoint_shift.
required: false required: false
@ -572,19 +599,19 @@ temperature_step:
target_temperature_address: target_temperature_address:
description: KNX group address for setting target temperature. *DPT 9.001* description: KNX group address for setting target temperature. *DPT 9.001*
required: false required: false
type: string type: [string, list]
target_temperature_state_address: target_temperature_state_address:
description: KNX group address for reading current target temperature from KNX bus. *DPT 9.001* description: KNX group address for reading current target temperature from KNX bus. *DPT 9.001*
required: true required: true
type: string type: [string, list]
setpoint_shift_address: setpoint_shift_address:
description: KNX address for setpoint_shift. *DPT 6.010 or DPT 9.002 based on setpoint_shift_mode* description: KNX address for setpoint_shift. *DPT 6.010 or DPT 9.002 based on setpoint_shift_mode*
required: false required: false
type: string type: [string, list]
setpoint_shift_state_address: setpoint_shift_state_address:
description: KNX address for reading setpoint_shift. *DPT 6.010 or DPT 9.002 based on setpoint_shift_mode* description: KNX address for reading setpoint_shift. *DPT 6.010 or DPT 9.002 based on setpoint_shift_mode*
required: false required: false
type: string type: [string, list]
setpoint_shift_mode: setpoint_shift_mode:
description: Defines the internal device DPT used. Either 'DPT6010' or 'DPT9002'. description: Defines the internal device DPT used. Either 'DPT6010' or 'DPT9002'.
required: false required: false
@ -603,51 +630,51 @@ setpoint_shift_max:
operation_mode_address: operation_mode_address:
description: KNX address for setting operation mode (Frost protection/night/comfort). *DPT 20.102* description: KNX address for setting operation mode (Frost protection/night/comfort). *DPT 20.102*
required: false required: false
type: string type: [string, list]
operation_mode_state_address: operation_mode_state_address:
description: KNX address for reading operation mode. *DPT 20.102* description: KNX address for reading operation mode. *DPT 20.102*
required: false required: false
type: string type: [string, list]
controller_status_address: controller_status_address:
description: KNX address for HVAC controller status (in accordance with KNX AN 097/07 rev 3). description: KNX address for HVAC controller status (in accordance with KNX AN 097/07 rev 3).
required: false required: false
type: string type: [string, list]
controller_status_state_address: controller_status_state_address:
description: KNX address for reading HVAC controller status. description: KNX address for reading HVAC controller status.
required: false required: false
type: string type: [string, list]
controller_mode_address: controller_mode_address:
description: KNX address for setting HVAC controller modes. *DPT 20.105* description: KNX address for setting HVAC controller modes. *DPT 20.105*
required: false required: false
type: string type: [string, list]
controller_mode_state_address: controller_mode_state_address:
description: KNX address for reading HVAC control mode. *DPT 20.105* description: KNX address for reading HVAC control mode. *DPT 20.105*
required: false required: false
type: string type: [string, list]
heat_cool_address: heat_cool_address:
description: KNX address for switching between heat/cool mode. *DPT 1.100* description: KNX address for switching between heat/cool mode. *DPT 1.100*
required: false required: false
type: string type: [string, list]
heat_cool_state_address: heat_cool_state_address:
description: KNX address for reading heat/cool mode. *DPT 1.100* description: KNX address for reading heat/cool mode. *DPT 1.100*
required: false required: false
type: string type: [string, list]
operation_mode_frost_protection_address: operation_mode_frost_protection_address:
description: KNX address for switching on/off frost/heat protection mode. *DPT 1* description: KNX address for switching on/off frost/heat protection mode. *DPT 1*
required: false required: false
type: string type: [string, list]
operation_mode_night_address: operation_mode_night_address:
description: KNX address for switching on/off night mode. *DPT 1* description: KNX address for switching on/off night mode. *DPT 1*
required: false required: false
type: string type: [string, list]
operation_mode_comfort_address: operation_mode_comfort_address:
description: KNX address for switching on/off comfort mode. *DPT 1* description: KNX address for switching on/off comfort mode. *DPT 1*
required: false required: false
type: string type: [string, list]
operation_mode_standby_address: operation_mode_standby_address:
description: KNX address for switching on/off standby mode. *DPT 1* description: KNX address for switching on/off standby mode. *DPT 1*
required: false required: false
type: string type: [string, list]
operation_modes: operation_modes:
description: Overrides the supported operation modes. Provide the supported `preset_mode` values for your device. description: Overrides the supported operation modes. Provide the supported `preset_mode` values for your device.
required: false required: false
@ -659,7 +686,7 @@ controller_modes:
on_off_address: on_off_address:
description: KNX address for switching the climate device on/off. *DPT 1* description: KNX address for switching the climate device on/off. *DPT 1*
required: false required: false
type: string type: [string, list]
on_off_invert: on_off_invert:
description: Value for switching the climate device on/off is inverted. description: Value for switching the climate device on/off is inverted.
required: false required: false
@ -668,7 +695,7 @@ on_off_invert:
on_off_state_address: on_off_state_address:
description: KNX address for gathering the current state (on/off) of the climate device. *DPT 1* description: KNX address for gathering the current state (on/off) of the climate device. *DPT 1*
required: false required: false
type: string type: [string, list]
min_temp: min_temp:
description: Override the minimum temperature. description: Override the minimum temperature.
required: false required: false
@ -713,31 +740,31 @@ name:
move_long_address: move_long_address:
description: KNX group address for moving the cover full up or down. *DPT 1* description: KNX group address for moving the cover full up or down. *DPT 1*
required: false required: false
type: string type: [string, list]
move_short_address: move_short_address:
description: KNX group address for moving the cover short time up or down. Used by some covers also as the means to stop the cover, if no dedicated `stop_address` exists on the actuator. *DPT 1* description: KNX group address for moving the cover short time up or down. Used by some covers also as the means to stop the cover, if no dedicated `stop_address` exists on the actuator. *DPT 1*
required: false required: false
type: string type: [string, list]
stop_address: stop_address:
description: KNX group address for stopping the current movement from the cover. *DPT 1* description: KNX group address for stopping the current movement from the cover. *DPT 1*
required: false required: false
type: string type: [string, list]
position_address: position_address:
description: KNX group address for moving the cover to the dedicated position. *DPT 5.001* description: KNX group address for moving the cover to the dedicated position. *DPT 5.001*
required: false required: false
type: string type: [string, list]
position_state_address: position_state_address:
description: Separate KNX group address for requesting the current position of the cover. *DPT 5.001* description: Separate KNX group address for requesting the current position of the cover. *DPT 5.001*
required: false required: false
type: string type: [string, list]
angle_address: angle_address:
description: KNX group address for moving the cover to the dedicated angle. *DPT 5.001* description: KNX group address for moving the cover to the dedicated angle. *DPT 5.001*
required: false required: false
type: string type: [string, list]
angle_state_address: angle_state_address:
description: Separate KNX group address for requesting the current angle of cover. *DPT 5.001* description: Separate KNX group address for requesting the current angle of cover. *DPT 5.001*
required: false required: false
type: string type: [string, list]
travelling_time_down: travelling_time_down:
description: Time cover needs to travel down in seconds. Needed to calculate the intermediate positions of cover while traveling. description: Time cover needs to travel down in seconds. Needed to calculate the intermediate positions of cover while traveling.
required: false required: false
@ -790,19 +817,19 @@ name:
address: address:
description: KNX group address for setting the percentage or step of the fan. *DPT 5.001* or *DPT 5.010* description: KNX group address for setting the percentage or step of the fan. *DPT 5.001* or *DPT 5.010*
required: true required: true
type: string type: [string, list]
state_address: state_address:
description: KNX group address for retrieving the percentage or step of the fan. *DPT 5.001* or *DPT 5.010* description: KNX group address for retrieving the percentage or step of the fan. *DPT 5.001* or *DPT 5.010*
required: false required: false
type: string type: [string, list]
oscillation_address: oscillation_address:
description: KNX group address for switching the fan oscillation on or off. *DPT 1* description: KNX group address for switching the fan oscillation on or off. *DPT 1*
required: false required: false
type: string type: [string, list]
oscillation_state_address: oscillation_state_address:
description: KNX group address for retrieving the state of the fan oscillation. *DPT 1* description: KNX group address for retrieving the state of the fan oscillation. *DPT 1*
required: false required: false
type: string type: [string, list]
max_step: max_step:
description: The maximum amount of steps for a step-controlled fan. If set, the integration will convert percentages to steps automatically. description: The maximum amount of steps for a step-controlled fan. If set, the integration will convert percentages to steps automatically.
required: false required: false
@ -832,11 +859,11 @@ knx:
address: address:
description: KNX group address for switching the light on and off. *DPT 1.001* description: KNX group address for switching the light on and off. *DPT 1.001*
required: true required: true
type: string type: [string, list]
state_address: state_address:
description: KNX group address for retrieving the switch state of the light. *DPT 1.001* description: KNX group address for retrieving the switch state of the light. *DPT 1.001*
required: false required: false
type: string type: [string, list]
name: name:
description: A name for this device used within Home Assistant. description: A name for this device used within Home Assistant.
required: false required: false
@ -844,27 +871,27 @@ name:
brightness_address: brightness_address:
description: KNX group address for setting the brightness of the light in percent (absolute dimming). *DPT 5.001* description: KNX group address for setting the brightness of the light in percent (absolute dimming). *DPT 5.001*
required: false required: false
type: string type: [string, list]
brightness_state_address: brightness_state_address:
description: KNX group address for retrieving the brightness of the light in percent. *DPT 5.001* description: KNX group address for retrieving the brightness of the light in percent. *DPT 5.001*
required: false required: false
type: string type: [string, list]
color_address: color_address:
description: KNX group address for setting the RGB color of the light. *DPT 232.600* description: KNX group address for setting the RGB color of the light. *DPT 232.600*
required: false required: false
type: string type: [string, list]
color_state_address: color_state_address:
description: KNX group address for retrieving the RGB color of the light. *DPT 232.600* description: KNX group address for retrieving the RGB color of the light. *DPT 232.600*
required: false required: false
type: string type: [string, list]
rgbw_address: rgbw_address:
description: KNX group address for setting the RGBW color of the light. *DPT 251.600* description: KNX group address for setting the RGBW color of the light. *DPT 251.600*
required: false required: false
type: string type: [string, list]
rgbw_state_address: rgbw_state_address:
description: KNX group address for retrieving the RGBW color of the light. *DPT 251.600* description: KNX group address for retrieving the RGBW color of the light. *DPT 251.600*
required: false required: false
type: string type: [string, list]
individual_colors: individual_colors:
description: Used when the actuator only supports individual group addresses for colors. When `address` is specified for all 3 (or 4) individual colors the root `address` key can be omitted. description: Used when the actuator only supports individual group addresses for colors. When `address` is specified for all 3 (or 4) individual colors the root `address` key can be omitted.
required: false required: false
@ -877,21 +904,19 @@ individual_colors:
keys: keys:
address: address:
description: KNX group address to switch the red component. *DPT 1.001* description: KNX group address to switch the red component. *DPT 1.001*
type: string type: [string, list]
required: false required: false
state_address: state_address:
description: KNX group address for the state of the red component. *DPT 1.001* description: KNX group address for the state of the red component. *DPT 1.001*
type: string type: [string, list]
required: false required: false
brightness_address: brightness_address:
description: KNX group address to set the brightness of the red component. *DPT 5.001* description: KNX group address to set the brightness of the red component. *DPT 5.001*
type: string type: [string, list]
required: true required: true
brightness_state_address: brightness_state_address:
description: KNX group address for the current brightness of the red component. *DPT 5.001* description: KNX group address for the current brightness of the red component. *DPT 5.001*
type: string type: [string, list]
required: false
type: string
required: false required: false
green: green:
description: Group addresses for the green component. Same keys available as for red component above. description: Group addresses for the green component. Same keys available as for red component above.
@ -908,11 +933,11 @@ individual_colors:
color_temperature_address: color_temperature_address:
description: KNX group address for setting the color temperature of the light. *DPT 5.001 or 7.600 based on color_temperature_mode* description: KNX group address for setting the color temperature of the light. *DPT 5.001 or 7.600 based on color_temperature_mode*
required: false required: false
type: string type: [string, list]
color_temperature_state_address: color_temperature_state_address:
description: KNX group address for retrieving the color temperature of the light. *DPT 5.001 or 7.600 based on color_temperature_mode* description: KNX group address for retrieving the color temperature of the light. *DPT 5.001 or 7.600 based on color_temperature_mode*
required: false required: false
type: string type: [string, list]
color_temperature_mode: color_temperature_mode:
description: Color temperature group address data type. `absolute` color temperature in Kelvin. *color_temperature_address -> DPT 7.600*. `relative` color temperature in percent cold white (0% warmest; 100% coldest). *color_temperature_address -> DPT 5.001* description: Color temperature group address data type. `absolute` color temperature in Kelvin. *color_temperature_address -> DPT 7.600*. `relative` color temperature in percent cold white (0% warmest; 100% coldest). *color_temperature_address -> DPT 5.001*
required: false required: false
@ -990,7 +1015,7 @@ knx:
address: address:
description: KNX group address of the notification. *DPT 16.000* description: KNX group address of the notification. *DPT 16.000*
required: true required: true
type: string type: [string, list]
name: name:
description: A name for this device used within Home Assistant. description: A name for this device used within Home Assistant.
required: false required: false
@ -1014,7 +1039,7 @@ knx:
address: address:
description: KNX group address for the scene. *DPT 17.001* description: KNX group address for the scene. *DPT 17.001*
required: true required: true
type: string type: [string, list]
scene_number: scene_number:
description: KNX scene number to be activated (range 1..64 ). description: KNX scene number to be activated (range 1..64 ).
required: true required: true
@ -1056,7 +1081,7 @@ knx:
state_address: state_address:
description: KNX group address of the sensor. description: KNX group address of the sensor.
required: true required: true
type: string type: [string, list]
type: type:
description: A type from the value types table below must be defined. The DPT of the group address should match the expected KNX DPT to be parsed correctly. description: A type from the value types table below must be defined. The DPT of the group address should match the expected KNX DPT to be parsed correctly.
required: true required: true
@ -1262,7 +1287,7 @@ knx:
address: address:
description: KNX group address for switching the switch on/off. *DPT 1* description: KNX group address for switching the switch on/off. *DPT 1*
required: true required: true
type: string type: [string, list]
name: name:
description: A name for this device used within Home Assistant. description: A name for this device used within Home Assistant.
required: false required: false
@ -1271,7 +1296,7 @@ name:
state_address: state_address:
description: Separate KNX group address for retrieving the switch state. *DPT 1* description: Separate KNX group address for retrieving the switch state. *DPT 1*
required: false required: false
type: string type: [string, list]
invert: invert:
description: Invert the telegrams payload before processing or sending. description: Invert the telegrams payload before processing or sending.
required: false required: false
@ -1318,55 +1343,55 @@ name:
address_temperature: address_temperature:
description: KNX group address for reading current outside temperature from KNX bus. *DPT 9.001* description: KNX group address for reading current outside temperature from KNX bus. *DPT 9.001*
required: true required: true
type: string type: [string, list]
address_brightness_south: address_brightness_south:
description: KNX group address for reading current brightness to south coordinate from KNX bus. *DPT 9.004* description: KNX group address for reading current brightness to south coordinate from KNX bus. *DPT 9.004*
required: false required: false
type: string type: [string, list]
address_brightness_west: address_brightness_west:
description: KNX group address for reading current brightness to west coordinate from KNX bus. *DPT 9.004* description: KNX group address for reading current brightness to west coordinate from KNX bus. *DPT 9.004*
required: false required: false
type: string type: [string, list]
address_brightness_east: address_brightness_east:
description: KNX group address for reading current brightness to east coordinate from KNX bus. *DPT 9.004* description: KNX group address for reading current brightness to east coordinate from KNX bus. *DPT 9.004*
required: false required: false
type: string type: [string, list]
address_brightness_north: address_brightness_north:
description: KNX group address for reading current brightness to north coordinate from KNX bus. *DPT 9.004* description: KNX group address for reading current brightness to north coordinate from KNX bus. *DPT 9.004*
required: false required: false
type: string type: [string, list]
address_wind_bearing: address_wind_bearing:
description: KNX group address for reading current wind bearing from KNX bus. *DPT 5.003* description: KNX group address for reading current wind bearing from KNX bus. *DPT 5.003*
required: false required: false
type: string type: [string, list]
address_wind_speed: address_wind_speed:
description: KNX group address for reading current wind speed from KNX bus. *DPT 9.005* description: KNX group address for reading current wind speed from KNX bus. *DPT 9.005*
required: false required: false
type: string type: [string, list]
address_rain_alarm: address_rain_alarm:
description: KNX group address for reading if rain alarm is on/off. description: KNX group address for reading if rain alarm is on/off.
required: false required: false
type: string type: [string, list]
address_frost_alarm: address_frost_alarm:
description: KNX group address for reading if frost alarm is on/off. description: KNX group address for reading if frost alarm is on/off.
required: false required: false
type: string type: [string, list]
address_wind_alarm: address_wind_alarm:
description: KNX group address for reading if wind alarm is on/off. description: KNX group address for reading if wind alarm is on/off.
required: false required: false
type: string type: [string, list]
address_day_night: address_day_night:
description: KNX group address for reading if it's day/night. description: KNX group address for reading if it's day/night.
required: false required: false
type: string type: [string, list]
address_air_pressure: address_air_pressure:
description: KNX address reading current air pressure. *DPT 9.006* description: KNX address reading current air pressure. *DPT 9.006*
required: false required: false
type: string type: [string, list]
address_humidity: address_humidity:
description: KNX address for reading current humidity. *DPT 9.007* description: KNX address for reading current humidity. *DPT 9.007*
required: false required: false
type: string type: [string, list]
create_sensors: create_sensors:
description: If true, dedicated sensor entities are created for all configured properties. description: If true, dedicated sensor entities are created for all configured properties.
required: false required: false