Process abbreviated availability options in mqtt discovery payload (#79712)
Expand availability in mqtt discovery payloadpull/79949/head
parent
779d805b5a
commit
11b351f015
|
@ -139,6 +139,14 @@ async def async_start( # noqa: C901
|
|||
key = DEVICE_ABBREVIATIONS.get(key, key)
|
||||
device[key] = device.pop(abbreviated_key)
|
||||
|
||||
if CONF_AVAILABILITY in payload:
|
||||
for availability_conf in cv.ensure_list(payload[CONF_AVAILABILITY]):
|
||||
if isinstance(availability_conf, dict):
|
||||
for key in list(availability_conf):
|
||||
abbreviated_key = key
|
||||
key = ABBREVIATIONS.get(key, key)
|
||||
availability_conf[key] = availability_conf.pop(abbreviated_key)
|
||||
|
||||
if TOPIC_BASE in payload:
|
||||
base = payload.pop(TOPIC_BASE)
|
||||
for key, value in payload.items():
|
||||
|
|
|
@ -945,9 +945,9 @@ async def test_discovery_expansion(hass, mqtt_mock_entry_no_yaml_config, caplog)
|
|||
' "payload_not_available": "not_available"'
|
||||
" },"
|
||||
" {"
|
||||
' "topic":"avail_item2/~",'
|
||||
' "payload_available": "available",'
|
||||
' "payload_not_available": "not_available"'
|
||||
' "t":"avail_item2/~",'
|
||||
' "pl_avail": "available",'
|
||||
' "pl_not_avail": "not_available"'
|
||||
" }"
|
||||
" ],"
|
||||
' "dev":{'
|
||||
|
@ -999,9 +999,9 @@ async def test_discovery_expansion_2(hass, mqtt_mock_entry_no_yaml_config, caplo
|
|||
' "stat_t": "test_topic/~",'
|
||||
' "cmd_t": "~/test_topic",'
|
||||
' "availability": {'
|
||||
' "topic":"~/avail_item1",'
|
||||
' "payload_available": "available",'
|
||||
' "payload_not_available": "not_available"'
|
||||
' "t":"~/avail_item1",'
|
||||
' "pl_avail": "available",'
|
||||
' "pl_not_avail": "not_available"'
|
||||
" },"
|
||||
' "dev":{'
|
||||
' "ids":["5706DF"],'
|
||||
|
|
Loading…
Reference in New Issue