mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 18:57:06 +00:00
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
@ -203,4 +203,5 @@ DEVICE_ABBREVIATIONS = {
|
|||||||
"mf": "manufacturer",
|
"mf": "manufacturer",
|
||||||
"mdl": "model",
|
"mdl": "model",
|
||||||
"sw": "sw_version",
|
"sw": "sw_version",
|
||||||
|
"sa": "suggested_area",
|
||||||
}
|
}
|
||||||
|
@ -63,6 +63,7 @@ CONF_MODEL = "model"
|
|||||||
CONF_SW_VERSION = "sw_version"
|
CONF_SW_VERSION = "sw_version"
|
||||||
CONF_VIA_DEVICE = "via_device"
|
CONF_VIA_DEVICE = "via_device"
|
||||||
CONF_DEPRECATED_VIA_HUB = "via_hub"
|
CONF_DEPRECATED_VIA_HUB = "via_hub"
|
||||||
|
CONF_SUGGESTED_AREA = "suggested_area"
|
||||||
|
|
||||||
MQTT_AVAILABILITY_SINGLE_SCHEMA = vol.Schema(
|
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_NAME): cv.string,
|
||||||
vol.Optional(CONF_SW_VERSION): cv.string,
|
vol.Optional(CONF_SW_VERSION): cv.string,
|
||||||
vol.Optional(CONF_VIA_DEVICE): cv.string,
|
vol.Optional(CONF_VIA_DEVICE): cv.string,
|
||||||
|
vol.Optional(CONF_SUGGESTED_AREA): cv.string,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
validate_device_has_at_least_one_identifier,
|
validate_device_has_at_least_one_identifier,
|
||||||
@ -491,6 +493,9 @@ def device_info_from_config(config):
|
|||||||
if CONF_VIA_DEVICE in config:
|
if CONF_VIA_DEVICE in config:
|
||||||
info["via_device"] = (DOMAIN, config[CONF_VIA_DEVICE])
|
info["via_device"] = (DOMAIN, config[CONF_VIA_DEVICE])
|
||||||
|
|
||||||
|
if CONF_SUGGESTED_AREA in config:
|
||||||
|
info["suggested_area"] = config[CONF_SUGGESTED_AREA]
|
||||||
|
|
||||||
return info
|
return info
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ DEFAULT_CONFIG_DEVICE_INFO_ID = {
|
|||||||
"name": "Beer",
|
"name": "Beer",
|
||||||
"model": "Glass",
|
"model": "Glass",
|
||||||
"sw_version": "0.1-beta",
|
"sw_version": "0.1-beta",
|
||||||
|
"suggested_area": "default_area",
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFAULT_CONFIG_DEVICE_INFO_MAC = {
|
DEFAULT_CONFIG_DEVICE_INFO_MAC = {
|
||||||
@ -28,6 +29,7 @@ DEFAULT_CONFIG_DEVICE_INFO_MAC = {
|
|||||||
"name": "Beer",
|
"name": "Beer",
|
||||||
"model": "Glass",
|
"model": "Glass",
|
||||||
"sw_version": "0.1-beta",
|
"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.name == "Beer"
|
||||||
assert device.model == "Glass"
|
assert device.model == "Glass"
|
||||||
assert device.sw_version == "0.1-beta"
|
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):
|
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.name == "Beer"
|
||||||
assert device.model == "Glass"
|
assert device.model == "Glass"
|
||||||
assert device.sw_version == "0.1-beta"
|
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):
|
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",'
|
' "name":"DiscoveryExpansionTest1 Device",'
|
||||||
' "mdl":"Generic",'
|
' "mdl":"Generic",'
|
||||||
' "sw":"1.2.3.4",'
|
' "sw":"1.2.3.4",'
|
||||||
' "mf":"None"'
|
' "mf":"None",'
|
||||||
|
' "sa":"default_area"'
|
||||||
" }"
|
" }"
|
||||||
"}"
|
"}"
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user