Add suggested_area to MQTT discovery (#47903)
* Add suggested_area to MQTT Discovery This adds suggested_area to MQTT discovery, so that the discovered devices could be automatically added to the proper area. * Add abbreviation for MQTT suggested_area * Remove extra whitespace * Remove extra whitespace #2 * Added tests for MQTT Dicovery of suggested_area * Fix test for MQTT suggested_area * Better tests of MQTT suggested_area Changes made as per feedback from @emontnemery
This commit is contained in:
parent
07c197687f
commit
9f4c2f6260
4 changed files with 12 additions and 1 deletions
|
@ -203,4 +203,5 @@ DEVICE_ABBREVIATIONS = {
|
|||
"mf": "manufacturer",
|
||||
"mdl": "model",
|
||||
"sw": "sw_version",
|
||||
"sa": "suggested_area",
|
||||
}
|
||||
|
|
|
@ -63,6 +63,7 @@ CONF_MODEL = "model"
|
|||
CONF_SW_VERSION = "sw_version"
|
||||
CONF_VIA_DEVICE = "via_device"
|
||||
CONF_DEPRECATED_VIA_HUB = "via_hub"
|
||||
CONF_SUGGESTED_AREA = "suggested_area"
|
||||
|
||||
MQTT_AVAILABILITY_SINGLE_SCHEMA = vol.Schema(
|
||||
{
|
||||
|
@ -129,6 +130,7 @@ MQTT_ENTITY_DEVICE_INFO_SCHEMA = vol.All(
|
|||
vol.Optional(CONF_NAME): cv.string,
|
||||
vol.Optional(CONF_SW_VERSION): cv.string,
|
||||
vol.Optional(CONF_VIA_DEVICE): cv.string,
|
||||
vol.Optional(CONF_SUGGESTED_AREA): cv.string,
|
||||
}
|
||||
),
|
||||
validate_device_has_at_least_one_identifier,
|
||||
|
@ -491,6 +493,9 @@ def device_info_from_config(config):
|
|||
if CONF_VIA_DEVICE in config:
|
||||
info["via_device"] = (DOMAIN, config[CONF_VIA_DEVICE])
|
||||
|
||||
if CONF_SUGGESTED_AREA in config:
|
||||
info["suggested_area"] = config[CONF_SUGGESTED_AREA]
|
||||
|
||||
return info
|
||||
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ DEFAULT_CONFIG_DEVICE_INFO_ID = {
|
|||
"name": "Beer",
|
||||
"model": "Glass",
|
||||
"sw_version": "0.1-beta",
|
||||
"suggested_area": "default_area",
|
||||
}
|
||||
|
||||
DEFAULT_CONFIG_DEVICE_INFO_MAC = {
|
||||
|
@ -28,6 +29,7 @@ DEFAULT_CONFIG_DEVICE_INFO_MAC = {
|
|||
"name": "Beer",
|
||||
"model": "Glass",
|
||||
"sw_version": "0.1-beta",
|
||||
"suggested_area": "default_area",
|
||||
}
|
||||
|
||||
|
||||
|
@ -739,6 +741,7 @@ async def help_test_entity_device_info_with_identifier(hass, mqtt_mock, domain,
|
|||
assert device.name == "Beer"
|
||||
assert device.model == "Glass"
|
||||
assert device.sw_version == "0.1-beta"
|
||||
assert device.suggested_area == "default_area"
|
||||
|
||||
|
||||
async def help_test_entity_device_info_with_connection(hass, mqtt_mock, domain, config):
|
||||
|
@ -764,6 +767,7 @@ async def help_test_entity_device_info_with_connection(hass, mqtt_mock, domain,
|
|||
assert device.name == "Beer"
|
||||
assert device.model == "Glass"
|
||||
assert device.sw_version == "0.1-beta"
|
||||
assert device.suggested_area == "default_area"
|
||||
|
||||
|
||||
async def help_test_entity_device_info_remove(hass, mqtt_mock, domain, config):
|
||||
|
|
|
@ -442,7 +442,8 @@ async def test_discovery_expansion(hass, mqtt_mock, caplog):
|
|||
' "name":"DiscoveryExpansionTest1 Device",'
|
||||
' "mdl":"Generic",'
|
||||
' "sw":"1.2.3.4",'
|
||||
' "mf":"None"'
|
||||
' "mf":"None",'
|
||||
' "sa":"default_area"'
|
||||
" }"
|
||||
"}"
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue