mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 20:57:21 +00:00
Device automation extra fields translation for KNX (#119518)
This commit is contained in:
parent
8c5c7203ea
commit
c8e9a3a8f4
@ -21,8 +21,12 @@ from .const import DOMAIN
|
||||
from .project import KNXProject
|
||||
from .trigger import (
|
||||
CONF_KNX_DESTINATION,
|
||||
CONF_KNX_GROUP_VALUE_READ,
|
||||
CONF_KNX_GROUP_VALUE_RESPONSE,
|
||||
CONF_KNX_GROUP_VALUE_WRITE,
|
||||
CONF_KNX_INCOMING,
|
||||
CONF_KNX_OUTGOING,
|
||||
PLATFORM_TYPE_TRIGGER_TELEGRAM,
|
||||
TELEGRAM_TRIGGER_OPTIONS,
|
||||
TELEGRAM_TRIGGER_SCHEMA,
|
||||
TRIGGER_SCHEMA as TRIGGER_TRIGGER_SCHEMA,
|
||||
)
|
||||
@ -79,7 +83,21 @@ async def async_get_trigger_capabilities(
|
||||
options=options,
|
||||
),
|
||||
),
|
||||
**TELEGRAM_TRIGGER_OPTIONS,
|
||||
vol.Optional(
|
||||
CONF_KNX_GROUP_VALUE_WRITE, default=True
|
||||
): selector.BooleanSelector(),
|
||||
vol.Optional(
|
||||
CONF_KNX_GROUP_VALUE_RESPONSE, default=True
|
||||
): selector.BooleanSelector(),
|
||||
vol.Optional(
|
||||
CONF_KNX_GROUP_VALUE_READ, default=True
|
||||
): selector.BooleanSelector(),
|
||||
vol.Optional(
|
||||
CONF_KNX_INCOMING, default=True
|
||||
): selector.BooleanSelector(),
|
||||
vol.Optional(
|
||||
CONF_KNX_OUTGOING, default=True
|
||||
): selector.BooleanSelector(),
|
||||
}
|
||||
)
|
||||
}
|
||||
@ -98,7 +116,7 @@ async def async_attach_trigger(
|
||||
} | {CONF_PLATFORM: PLATFORM_TYPE_TRIGGER_TELEGRAM}
|
||||
|
||||
try:
|
||||
TRIGGER_TRIGGER_SCHEMA(trigger_config)
|
||||
trigger_config = TRIGGER_TRIGGER_SCHEMA(trigger_config)
|
||||
except vol.Invalid as err:
|
||||
raise InvalidDeviceAutomationConfig(f"{err}") from err
|
||||
|
||||
|
@ -296,7 +296,23 @@
|
||||
},
|
||||
"device_automation": {
|
||||
"trigger_type": {
|
||||
"telegram": "Telegram sent or received"
|
||||
"telegram": "Telegram"
|
||||
},
|
||||
"extra_fields": {
|
||||
"destination": "Group addresses",
|
||||
"group_value_write": "GroupValueWrite",
|
||||
"group_value_read": "GroupValueRead",
|
||||
"group_value_response": "GroupValueResponse",
|
||||
"incoming": "Incoming",
|
||||
"outgoing": "Outgoing"
|
||||
},
|
||||
"extra_fields_descriptions": {
|
||||
"destination": "The trigger will listen to telegrams sent or received on these group addresses. If no address is selected, the trigger will fire for every group address.",
|
||||
"group_value_write": "Listen on GroupValueWrite telegrams.",
|
||||
"group_value_read": "Listen on GroupValueRead telegrams.",
|
||||
"group_value_response": "Listen on GroupValueResponse telegrams.",
|
||||
"incoming": "Listen on incoming telegrams.",
|
||||
"outgoing": "Listen on outgoing telegrams."
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
|
@ -31,20 +31,15 @@ CONF_KNX_GROUP_VALUE_RESPONSE: Final = "group_value_response"
|
||||
CONF_KNX_INCOMING: Final = "incoming"
|
||||
CONF_KNX_OUTGOING: Final = "outgoing"
|
||||
|
||||
TELEGRAM_TRIGGER_OPTIONS: Final = {
|
||||
|
||||
TELEGRAM_TRIGGER_SCHEMA: Final = {
|
||||
vol.Optional(CONF_KNX_DESTINATION): vol.All(cv.ensure_list, [ga_validator]),
|
||||
vol.Optional(CONF_KNX_GROUP_VALUE_WRITE, default=True): cv.boolean,
|
||||
vol.Optional(CONF_KNX_GROUP_VALUE_RESPONSE, default=True): cv.boolean,
|
||||
vol.Optional(CONF_KNX_GROUP_VALUE_READ, default=True): cv.boolean,
|
||||
vol.Optional(CONF_KNX_INCOMING, default=True): cv.boolean,
|
||||
vol.Optional(CONF_KNX_OUTGOING, default=True): cv.boolean,
|
||||
}
|
||||
TELEGRAM_TRIGGER_SCHEMA: Final = {
|
||||
vol.Optional(CONF_KNX_DESTINATION): vol.All(
|
||||
cv.ensure_list,
|
||||
[ga_validator],
|
||||
),
|
||||
**TELEGRAM_TRIGGER_OPTIONS,
|
||||
}
|
||||
# TRIGGER_SCHEMA is exclusive to triggers, the above are used in device triggers too
|
||||
TRIGGER_SCHEMA = cv.TRIGGER_BASE_SCHEMA.extend(
|
||||
{
|
||||
|
@ -319,31 +319,41 @@ async def test_get_trigger_capabilities(
|
||||
"name": "group_value_write",
|
||||
"optional": True,
|
||||
"default": True,
|
||||
"type": "boolean",
|
||||
"selector": {
|
||||
"boolean": {},
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "group_value_response",
|
||||
"optional": True,
|
||||
"default": True,
|
||||
"type": "boolean",
|
||||
"selector": {
|
||||
"boolean": {},
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "group_value_read",
|
||||
"optional": True,
|
||||
"default": True,
|
||||
"type": "boolean",
|
||||
"selector": {
|
||||
"boolean": {},
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "incoming",
|
||||
"optional": True,
|
||||
"default": True,
|
||||
"type": "boolean",
|
||||
"selector": {
|
||||
"boolean": {},
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "outgoing",
|
||||
"optional": True,
|
||||
"default": True,
|
||||
"type": "boolean",
|
||||
"selector": {
|
||||
"boolean": {},
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user