mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 05:07:41 +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 .project import KNXProject
|
||||||
from .trigger import (
|
from .trigger import (
|
||||||
CONF_KNX_DESTINATION,
|
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,
|
PLATFORM_TYPE_TRIGGER_TELEGRAM,
|
||||||
TELEGRAM_TRIGGER_OPTIONS,
|
|
||||||
TELEGRAM_TRIGGER_SCHEMA,
|
TELEGRAM_TRIGGER_SCHEMA,
|
||||||
TRIGGER_SCHEMA as TRIGGER_TRIGGER_SCHEMA,
|
TRIGGER_SCHEMA as TRIGGER_TRIGGER_SCHEMA,
|
||||||
)
|
)
|
||||||
@ -79,7 +83,21 @@ async def async_get_trigger_capabilities(
|
|||||||
options=options,
|
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}
|
} | {CONF_PLATFORM: PLATFORM_TYPE_TRIGGER_TELEGRAM}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
TRIGGER_TRIGGER_SCHEMA(trigger_config)
|
trigger_config = TRIGGER_TRIGGER_SCHEMA(trigger_config)
|
||||||
except vol.Invalid as err:
|
except vol.Invalid as err:
|
||||||
raise InvalidDeviceAutomationConfig(f"{err}") from err
|
raise InvalidDeviceAutomationConfig(f"{err}") from err
|
||||||
|
|
||||||
|
@ -296,7 +296,23 @@
|
|||||||
},
|
},
|
||||||
"device_automation": {
|
"device_automation": {
|
||||||
"trigger_type": {
|
"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": {
|
"services": {
|
||||||
|
@ -31,20 +31,15 @@ CONF_KNX_GROUP_VALUE_RESPONSE: Final = "group_value_response"
|
|||||||
CONF_KNX_INCOMING: Final = "incoming"
|
CONF_KNX_INCOMING: Final = "incoming"
|
||||||
CONF_KNX_OUTGOING: Final = "outgoing"
|
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_WRITE, default=True): cv.boolean,
|
||||||
vol.Optional(CONF_KNX_GROUP_VALUE_RESPONSE, 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_GROUP_VALUE_READ, default=True): cv.boolean,
|
||||||
vol.Optional(CONF_KNX_INCOMING, default=True): cv.boolean,
|
vol.Optional(CONF_KNX_INCOMING, default=True): cv.boolean,
|
||||||
vol.Optional(CONF_KNX_OUTGOING, 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 is exclusive to triggers, the above are used in device triggers too
|
||||||
TRIGGER_SCHEMA = cv.TRIGGER_BASE_SCHEMA.extend(
|
TRIGGER_SCHEMA = cv.TRIGGER_BASE_SCHEMA.extend(
|
||||||
{
|
{
|
||||||
|
@ -319,31 +319,41 @@ async def test_get_trigger_capabilities(
|
|||||||
"name": "group_value_write",
|
"name": "group_value_write",
|
||||||
"optional": True,
|
"optional": True,
|
||||||
"default": True,
|
"default": True,
|
||||||
"type": "boolean",
|
"selector": {
|
||||||
|
"boolean": {},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "group_value_response",
|
"name": "group_value_response",
|
||||||
"optional": True,
|
"optional": True,
|
||||||
"default": True,
|
"default": True,
|
||||||
"type": "boolean",
|
"selector": {
|
||||||
|
"boolean": {},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "group_value_read",
|
"name": "group_value_read",
|
||||||
"optional": True,
|
"optional": True,
|
||||||
"default": True,
|
"default": True,
|
||||||
"type": "boolean",
|
"selector": {
|
||||||
|
"boolean": {},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "incoming",
|
"name": "incoming",
|
||||||
"optional": True,
|
"optional": True,
|
||||||
"default": True,
|
"default": True,
|
||||||
"type": "boolean",
|
"selector": {
|
||||||
|
"boolean": {},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "outgoing",
|
"name": "outgoing",
|
||||||
"optional": True,
|
"optional": True,
|
||||||
"default": True,
|
"default": True,
|
||||||
"type": "boolean",
|
"selector": {
|
||||||
|
"boolean": {},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user