Allow SSDP discovery modern Hue hubs (#47725)
This commit is contained in:
parent
78c974d527
commit
3ad4c26f98
2 changed files with 14 additions and 10 deletions
|
@ -25,7 +25,7 @@ from .const import ( # pylint: disable=unused-import
|
|||
)
|
||||
from .errors import AuthenticationRequired, CannotConnect
|
||||
|
||||
HUE_MANUFACTURERURL = "http://www.philips.com"
|
||||
HUE_MANUFACTURERURL = ("http://www.philips.com", "http://www.philips-hue.com")
|
||||
HUE_IGNORED_BRIDGE_NAMES = ["Home Assistant Bridge", "Espalexa"]
|
||||
HUE_MANUAL_BRIDGE_ID = "manual"
|
||||
|
||||
|
@ -179,7 +179,10 @@ class HueFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
|||
host is already configured and delegate to the import step if not.
|
||||
"""
|
||||
# Filter out non-Hue bridges #1
|
||||
if discovery_info.get(ssdp.ATTR_UPNP_MANUFACTURER_URL) != HUE_MANUFACTURERURL:
|
||||
if (
|
||||
discovery_info.get(ssdp.ATTR_UPNP_MANUFACTURER_URL)
|
||||
not in HUE_MANUFACTURERURL
|
||||
):
|
||||
return self.async_abort(reason="not_hue_bridge")
|
||||
|
||||
# Filter out non-Hue bridges #2
|
||||
|
|
|
@ -375,14 +375,15 @@ async def test_flow_link_unknown_host(hass):
|
|||
assert result["reason"] == "cannot_connect"
|
||||
|
||||
|
||||
async def test_bridge_ssdp(hass):
|
||||
@pytest.mark.parametrize("mf_url", config_flow.HUE_MANUFACTURERURL)
|
||||
async def test_bridge_ssdp(hass, mf_url):
|
||||
"""Test a bridge being discovered."""
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
const.DOMAIN,
|
||||
context={"source": "ssdp"},
|
||||
data={
|
||||
ssdp.ATTR_SSDP_LOCATION: "http://0.0.0.0/",
|
||||
ssdp.ATTR_UPNP_MANUFACTURER_URL: config_flow.HUE_MANUFACTURERURL,
|
||||
ssdp.ATTR_UPNP_MANUFACTURER_URL: mf_url,
|
||||
ssdp.ATTR_UPNP_SERIAL: "1234",
|
||||
},
|
||||
)
|
||||
|
@ -411,7 +412,7 @@ async def test_bridge_ssdp_emulated_hue(hass):
|
|||
data={
|
||||
ssdp.ATTR_SSDP_LOCATION: "http://0.0.0.0/",
|
||||
ssdp.ATTR_UPNP_FRIENDLY_NAME: "Home Assistant Bridge",
|
||||
ssdp.ATTR_UPNP_MANUFACTURER_URL: config_flow.HUE_MANUFACTURERURL,
|
||||
ssdp.ATTR_UPNP_MANUFACTURER_URL: config_flow.HUE_MANUFACTURERURL[0],
|
||||
ssdp.ATTR_UPNP_SERIAL: "1234",
|
||||
},
|
||||
)
|
||||
|
@ -426,7 +427,7 @@ async def test_bridge_ssdp_missing_location(hass):
|
|||
const.DOMAIN,
|
||||
context={"source": "ssdp"},
|
||||
data={
|
||||
ssdp.ATTR_UPNP_MANUFACTURER_URL: config_flow.HUE_MANUFACTURERURL,
|
||||
ssdp.ATTR_UPNP_MANUFACTURER_URL: config_flow.HUE_MANUFACTURERURL[0],
|
||||
ssdp.ATTR_UPNP_SERIAL: "1234",
|
||||
},
|
||||
)
|
||||
|
@ -442,7 +443,7 @@ async def test_bridge_ssdp_missing_serial(hass):
|
|||
context={"source": "ssdp"},
|
||||
data={
|
||||
ssdp.ATTR_SSDP_LOCATION: "http://0.0.0.0/",
|
||||
ssdp.ATTR_UPNP_MANUFACTURER_URL: config_flow.HUE_MANUFACTURERURL,
|
||||
ssdp.ATTR_UPNP_MANUFACTURER_URL: config_flow.HUE_MANUFACTURERURL[0],
|
||||
},
|
||||
)
|
||||
|
||||
|
@ -458,7 +459,7 @@ async def test_bridge_ssdp_espalexa(hass):
|
|||
data={
|
||||
ssdp.ATTR_SSDP_LOCATION: "http://0.0.0.0/",
|
||||
ssdp.ATTR_UPNP_FRIENDLY_NAME: "Espalexa (0.0.0.0)",
|
||||
ssdp.ATTR_UPNP_MANUFACTURER_URL: config_flow.HUE_MANUFACTURERURL,
|
||||
ssdp.ATTR_UPNP_MANUFACTURER_URL: config_flow.HUE_MANUFACTURERURL[0],
|
||||
ssdp.ATTR_UPNP_SERIAL: "1234",
|
||||
},
|
||||
)
|
||||
|
@ -478,7 +479,7 @@ async def test_bridge_ssdp_already_configured(hass):
|
|||
context={"source": "ssdp"},
|
||||
data={
|
||||
ssdp.ATTR_SSDP_LOCATION: "http://0.0.0.0/",
|
||||
ssdp.ATTR_UPNP_MANUFACTURER_URL: config_flow.HUE_MANUFACTURERURL,
|
||||
ssdp.ATTR_UPNP_MANUFACTURER_URL: config_flow.HUE_MANUFACTURERURL[0],
|
||||
ssdp.ATTR_UPNP_SERIAL: "1234",
|
||||
},
|
||||
)
|
||||
|
@ -617,7 +618,7 @@ async def test_ssdp_discovery_update_configuration(hass):
|
|||
context={"source": "ssdp"},
|
||||
data={
|
||||
ssdp.ATTR_SSDP_LOCATION: "http://1.1.1.1/",
|
||||
ssdp.ATTR_UPNP_MANUFACTURER_URL: config_flow.HUE_MANUFACTURERURL,
|
||||
ssdp.ATTR_UPNP_MANUFACTURER_URL: config_flow.HUE_MANUFACTURERURL[0],
|
||||
ssdp.ATTR_UPNP_SERIAL: "aabbccddeeff",
|
||||
},
|
||||
)
|
||||
|
|
Loading…
Add table
Reference in a new issue