Ignore HEOS 1, 3, 5 and 7 for DenonAvr ssdp discovery (#37579)
This commit is contained in:
parent
89599bc3cf
commit
b9f97e64f8
2 changed files with 26 additions and 0 deletions
|
@ -20,6 +20,7 @@ _LOGGER = logging.getLogger(__name__)
|
||||||
DOMAIN = "denonavr"
|
DOMAIN = "denonavr"
|
||||||
|
|
||||||
SUPPORTED_MANUFACTURERS = ["Denon", "DENON", "Marantz"]
|
SUPPORTED_MANUFACTURERS = ["Denon", "DENON", "Marantz"]
|
||||||
|
IGNORED_MODELS = ["HEOS 1", "HEOS 3", "HEOS 5", "HEOS 7"]
|
||||||
|
|
||||||
CONF_SHOW_ALL_SOURCES = "show_all_sources"
|
CONF_SHOW_ALL_SOURCES = "show_all_sources"
|
||||||
CONF_ZONE2 = "zone2"
|
CONF_ZONE2 = "zone2"
|
||||||
|
@ -217,6 +218,9 @@ class DenonAvrFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
||||||
self.serial_number = discovery_info[ssdp.ATTR_UPNP_SERIAL]
|
self.serial_number = discovery_info[ssdp.ATTR_UPNP_SERIAL]
|
||||||
self.host = urlparse(discovery_info[ssdp.ATTR_SSDP_LOCATION]).hostname
|
self.host = urlparse(discovery_info[ssdp.ATTR_SSDP_LOCATION]).hostname
|
||||||
|
|
||||||
|
if self.model_name in IGNORED_MODELS:
|
||||||
|
return self.async_abort(reason="not_denonavr_manufacturer")
|
||||||
|
|
||||||
unique_id = self.construct_unique_id(self.model_name, self.serial_number)
|
unique_id = self.construct_unique_id(self.model_name, self.serial_number)
|
||||||
await self.async_set_unique_id(unique_id)
|
await self.async_set_unique_id(unique_id)
|
||||||
self._abort_if_unique_id_configured({CONF_HOST: self.host})
|
self._abort_if_unique_id_configured({CONF_HOST: self.host})
|
||||||
|
|
|
@ -23,6 +23,7 @@ TEST_MAC = "ab:cd:ef:gh"
|
||||||
TEST_HOST2 = "5.6.7.8"
|
TEST_HOST2 = "5.6.7.8"
|
||||||
TEST_NAME = "Test_Receiver"
|
TEST_NAME = "Test_Receiver"
|
||||||
TEST_MODEL = "model5"
|
TEST_MODEL = "model5"
|
||||||
|
TEST_IGNORED_MODEL = "HEOS 7"
|
||||||
TEST_RECEIVER_TYPE = "avr-x"
|
TEST_RECEIVER_TYPE = "avr-x"
|
||||||
TEST_SERIALNUMBER = "123456789"
|
TEST_SERIALNUMBER = "123456789"
|
||||||
TEST_MANUFACTURER = "Denon"
|
TEST_MANUFACTURER = "Denon"
|
||||||
|
@ -470,6 +471,27 @@ async def test_config_flow_ssdp_missing_info(hass):
|
||||||
assert result["reason"] == "not_denonavr_missing"
|
assert result["reason"] == "not_denonavr_missing"
|
||||||
|
|
||||||
|
|
||||||
|
async def test_config_flow_ssdp_ignored_model(hass):
|
||||||
|
"""
|
||||||
|
Failed flow initialized by ssdp discovery.
|
||||||
|
|
||||||
|
Model in the ignored models list.
|
||||||
|
"""
|
||||||
|
result = await hass.config_entries.flow.async_init(
|
||||||
|
DOMAIN,
|
||||||
|
context={"source": config_entries.SOURCE_SSDP},
|
||||||
|
data={
|
||||||
|
ssdp.ATTR_UPNP_MANUFACTURER: TEST_MANUFACTURER,
|
||||||
|
ssdp.ATTR_UPNP_MODEL_NAME: TEST_IGNORED_MODEL,
|
||||||
|
ssdp.ATTR_UPNP_SERIAL: TEST_SERIALNUMBER,
|
||||||
|
ssdp.ATTR_SSDP_LOCATION: TEST_SSDP_LOCATION,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
assert result["type"] == "abort"
|
||||||
|
assert result["reason"] == "not_denonavr_manufacturer"
|
||||||
|
|
||||||
|
|
||||||
async def test_options_flow(hass):
|
async def test_options_flow(hass):
|
||||||
"""Test specifying non default settings using options flow."""
|
"""Test specifying non default settings using options flow."""
|
||||||
config_entry = MockConfigEntry(
|
config_entry = MockConfigEntry(
|
||||||
|
|
Loading…
Add table
Reference in a new issue