mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 10:17:09 +00:00
KNX passive group addresses (#48009)
This commit is contained in:
parent
e9f2062f1b
commit
338be8c70b
@ -34,6 +34,7 @@ ga_validator = vol.Any(
|
||||
vol.All(vol.Coerce(int), vol.Range(min=1, max=65535)),
|
||||
msg="value does not match pattern for KNX group address '<main>/<middle>/<sub>', '<main>/<sub>' or '<free>' (eg.'1/2/3', '9/234', '123')",
|
||||
)
|
||||
ga_list_validator = vol.All(cv.ensure_list, [ga_validator])
|
||||
|
||||
ia_validator = vol.Any(
|
||||
cv.matches_regex(IndividualAddress.ADDRESS_RE.pattern),
|
||||
@ -99,7 +100,7 @@ class BinarySensorSchema:
|
||||
vol.Optional(CONF_SYNC_STATE, default=True): sync_state_validator,
|
||||
vol.Optional(CONF_IGNORE_INTERNAL_STATE, default=False): cv.boolean,
|
||||
vol.Optional(CONF_INVERT, default=False): cv.boolean,
|
||||
vol.Required(CONF_STATE_ADDRESS): ga_validator,
|
||||
vol.Required(CONF_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_CONTEXT_TIMEOUT): vol.All(
|
||||
vol.Coerce(float), vol.Range(min=0, max=10)
|
||||
),
|
||||
@ -169,27 +170,27 @@ class ClimateSchema:
|
||||
vol.Optional(
|
||||
CONF_TEMPERATURE_STEP, default=DEFAULT_TEMPERATURE_STEP
|
||||
): vol.All(float, vol.Range(min=0, max=2)),
|
||||
vol.Required(CONF_TEMPERATURE_ADDRESS): ga_validator,
|
||||
vol.Required(CONF_TARGET_TEMPERATURE_STATE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_TARGET_TEMPERATURE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_SETPOINT_SHIFT_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_SETPOINT_SHIFT_STATE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_OPERATION_MODE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_OPERATION_MODE_STATE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_CONTROLLER_STATUS_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_CONTROLLER_STATUS_STATE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_CONTROLLER_MODE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_CONTROLLER_MODE_STATE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_HEAT_COOL_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_HEAT_COOL_STATE_ADDRESS): ga_validator,
|
||||
vol.Required(CONF_TEMPERATURE_ADDRESS): ga_list_validator,
|
||||
vol.Required(CONF_TARGET_TEMPERATURE_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_TARGET_TEMPERATURE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_SETPOINT_SHIFT_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_SETPOINT_SHIFT_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_OPERATION_MODE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_OPERATION_MODE_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_CONTROLLER_STATUS_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_CONTROLLER_STATUS_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_CONTROLLER_MODE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_CONTROLLER_MODE_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_HEAT_COOL_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_HEAT_COOL_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(
|
||||
CONF_OPERATION_MODE_FROST_PROTECTION_ADDRESS
|
||||
): ga_validator,
|
||||
vol.Optional(CONF_OPERATION_MODE_NIGHT_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_OPERATION_MODE_COMFORT_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_OPERATION_MODE_STANDBY_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_ON_OFF_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_ON_OFF_STATE_ADDRESS): ga_validator,
|
||||
): ga_list_validator,
|
||||
vol.Optional(CONF_OPERATION_MODE_NIGHT_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_OPERATION_MODE_COMFORT_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_OPERATION_MODE_STANDBY_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_ON_OFF_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_ON_OFF_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(
|
||||
CONF_ON_OFF_INVERT, default=DEFAULT_ON_OFF_INVERT
|
||||
): cv.boolean,
|
||||
@ -230,13 +231,13 @@ class CoverSchema:
|
||||
SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
|
||||
vol.Optional(CONF_MOVE_LONG_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_MOVE_SHORT_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_STOP_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_POSITION_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_POSITION_STATE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_ANGLE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_ANGLE_STATE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_MOVE_LONG_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_MOVE_SHORT_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_STOP_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_POSITION_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_POSITION_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_ANGLE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_ANGLE_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(
|
||||
CONF_TRAVELLING_TIME_DOWN, default=DEFAULT_TRAVEL_TIME
|
||||
): cv.positive_float,
|
||||
@ -295,10 +296,10 @@ class FanSchema:
|
||||
SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
|
||||
vol.Required(KNX_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_STATE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_OSCILLATION_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_OSCILLATION_STATE_ADDRESS): ga_validator,
|
||||
vol.Required(KNX_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_OSCILLATION_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_OSCILLATION_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_MAX_STEP): cv.byte,
|
||||
}
|
||||
)
|
||||
@ -333,10 +334,10 @@ class LightSchema:
|
||||
|
||||
COLOR_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Optional(KNX_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_STATE_ADDRESS): ga_validator,
|
||||
vol.Required(CONF_BRIGHTNESS_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_BRIGHTNESS_STATE_ADDRESS): ga_validator,
|
||||
vol.Optional(KNX_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Required(CONF_BRIGHTNESS_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_BRIGHTNESS_STATE_ADDRESS): ga_list_validator,
|
||||
}
|
||||
)
|
||||
|
||||
@ -344,25 +345,25 @@ class LightSchema:
|
||||
vol.Schema(
|
||||
{
|
||||
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
|
||||
vol.Optional(KNX_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_STATE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_BRIGHTNESS_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_BRIGHTNESS_STATE_ADDRESS): ga_validator,
|
||||
vol.Optional(KNX_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_BRIGHTNESS_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_BRIGHTNESS_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Exclusive(CONF_INDIVIDUAL_COLORS, "color"): {
|
||||
vol.Inclusive(CONF_RED, "colors"): COLOR_SCHEMA,
|
||||
vol.Inclusive(CONF_GREEN, "colors"): COLOR_SCHEMA,
|
||||
vol.Inclusive(CONF_BLUE, "colors"): COLOR_SCHEMA,
|
||||
vol.Optional(CONF_WHITE): COLOR_SCHEMA,
|
||||
},
|
||||
vol.Exclusive(CONF_COLOR_ADDRESS, "color"): ga_validator,
|
||||
vol.Optional(CONF_COLOR_STATE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_COLOR_TEMP_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_COLOR_TEMP_STATE_ADDRESS): ga_validator,
|
||||
vol.Exclusive(CONF_COLOR_ADDRESS, "color"): ga_list_validator,
|
||||
vol.Optional(CONF_COLOR_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_COLOR_TEMP_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_COLOR_TEMP_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(
|
||||
CONF_COLOR_TEMP_MODE, default=DEFAULT_COLOR_TEMP_MODE
|
||||
): vol.All(vol.Upper, cv.enum(ColorTempModes)),
|
||||
vol.Exclusive(CONF_RGBW_ADDRESS, "color"): ga_validator,
|
||||
vol.Optional(CONF_RGBW_STATE_ADDRESS): ga_validator,
|
||||
vol.Exclusive(CONF_RGBW_ADDRESS, "color"): ga_list_validator,
|
||||
vol.Optional(CONF_RGBW_STATE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_MIN_KELVIN, default=DEFAULT_MIN_KELVIN): vol.All(
|
||||
vol.Coerce(int), vol.Range(min=1)
|
||||
),
|
||||
@ -415,7 +416,7 @@ class SceneSchema:
|
||||
SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
|
||||
vol.Required(KNX_ADDRESS): ga_validator,
|
||||
vol.Required(KNX_ADDRESS): ga_list_validator,
|
||||
vol.Required(CONF_SCENE_NUMBER): cv.positive_int,
|
||||
}
|
||||
)
|
||||
@ -434,8 +435,8 @@ class SensorSchema:
|
||||
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
|
||||
vol.Optional(CONF_SYNC_STATE, default=True): sync_state_validator,
|
||||
vol.Optional(CONF_ALWAYS_CALLBACK, default=False): cv.boolean,
|
||||
vol.Required(CONF_STATE_ADDRESS): ga_validator,
|
||||
vol.Required(CONF_TYPE): sensor_type_validator,
|
||||
vol.Required(CONF_STATE_ADDRESS): ga_list_validator,
|
||||
}
|
||||
)
|
||||
|
||||
@ -451,8 +452,8 @@ class SwitchSchema:
|
||||
{
|
||||
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
|
||||
vol.Optional(CONF_INVERT, default=False): cv.boolean,
|
||||
vol.Required(KNX_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_STATE_ADDRESS): ga_validator,
|
||||
vol.Required(KNX_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_STATE_ADDRESS): ga_list_validator,
|
||||
}
|
||||
)
|
||||
|
||||
@ -483,18 +484,18 @@ class WeatherSchema:
|
||||
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
|
||||
vol.Optional(CONF_SYNC_STATE, default=True): sync_state_validator,
|
||||
vol.Optional(CONF_KNX_CREATE_SENSORS, default=False): cv.boolean,
|
||||
vol.Required(CONF_KNX_TEMPERATURE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_KNX_BRIGHTNESS_SOUTH_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_KNX_BRIGHTNESS_EAST_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_KNX_BRIGHTNESS_WEST_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_KNX_BRIGHTNESS_NORTH_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_KNX_WIND_SPEED_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_KNX_WIND_BEARING_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_KNX_RAIN_ALARM_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_KNX_FROST_ALARM_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_KNX_WIND_ALARM_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_KNX_DAY_NIGHT_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_KNX_AIR_PRESSURE_ADDRESS): ga_validator,
|
||||
vol.Optional(CONF_KNX_HUMIDITY_ADDRESS): ga_validator,
|
||||
vol.Required(CONF_KNX_TEMPERATURE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_KNX_BRIGHTNESS_SOUTH_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_KNX_BRIGHTNESS_EAST_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_KNX_BRIGHTNESS_WEST_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_KNX_BRIGHTNESS_NORTH_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_KNX_WIND_SPEED_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_KNX_WIND_BEARING_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_KNX_RAIN_ALARM_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_KNX_FROST_ALARM_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_KNX_WIND_ALARM_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_KNX_DAY_NIGHT_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_KNX_AIR_PRESSURE_ADDRESS): ga_list_validator,
|
||||
vol.Optional(CONF_KNX_HUMIDITY_ADDRESS): ga_list_validator,
|
||||
}
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user