mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 18:57:06 +00:00
Use dataclass properties in konnected discovery (#60717)
Co-authored-by: epenet <epenet@users.noreply.github.com>
This commit is contained in:
parent
cbab0ba9c0
commit
9a8c1cf6c4
@ -9,11 +9,11 @@ from urllib.parse import urlparse
|
|||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant import config_entries
|
from homeassistant import config_entries
|
||||||
|
from homeassistant.components import ssdp
|
||||||
from homeassistant.components.binary_sensor import (
|
from homeassistant.components.binary_sensor import (
|
||||||
DEVICE_CLASS_DOOR,
|
DEVICE_CLASS_DOOR,
|
||||||
DEVICE_CLASSES_SCHEMA,
|
DEVICE_CLASSES_SCHEMA,
|
||||||
)
|
)
|
||||||
from homeassistant.components.ssdp import ATTR_UPNP_MANUFACTURER, ATTR_UPNP_MODEL_NAME
|
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONF_ACCESS_TOKEN,
|
CONF_ACCESS_TOKEN,
|
||||||
CONF_BINARY_SENSORS,
|
CONF_BINARY_SENSORS,
|
||||||
@ -29,6 +29,7 @@ from homeassistant.const import (
|
|||||||
CONF_ZONE,
|
CONF_ZONE,
|
||||||
)
|
)
|
||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
|
from homeassistant.data_entry_flow import FlowResult
|
||||||
from homeassistant.helpers import config_validation as cv
|
from homeassistant.helpers import config_validation as cv
|
||||||
|
|
||||||
from .const import (
|
from .const import (
|
||||||
@ -238,7 +239,7 @@ class KonnectedFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
)
|
)
|
||||||
return await self.async_step_user()
|
return await self.async_step_user()
|
||||||
|
|
||||||
async def async_step_ssdp(self, discovery_info):
|
async def async_step_ssdp(self, discovery_info: ssdp.SsdpServiceInfo) -> FlowResult:
|
||||||
"""Handle a discovered konnected panel.
|
"""Handle a discovered konnected panel.
|
||||||
|
|
||||||
This flow is triggered by the SSDP component. It will check if the
|
This flow is triggered by the SSDP component. It will check if the
|
||||||
@ -247,16 +248,16 @@ class KonnectedFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
_LOGGER.debug(discovery_info)
|
_LOGGER.debug(discovery_info)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if discovery_info[ATTR_UPNP_MANUFACTURER] != KONN_MANUFACTURER:
|
if discovery_info.upnp[ssdp.ATTR_UPNP_MANUFACTURER] != KONN_MANUFACTURER:
|
||||||
return self.async_abort(reason="not_konn_panel")
|
return self.async_abort(reason="not_konn_panel")
|
||||||
|
|
||||||
if not any(
|
if not any(
|
||||||
name in discovery_info[ATTR_UPNP_MODEL_NAME]
|
name in discovery_info.upnp[ssdp.ATTR_UPNP_MODEL_NAME]
|
||||||
for name in KONN_PANEL_MODEL_NAMES
|
for name in KONN_PANEL_MODEL_NAMES
|
||||||
):
|
):
|
||||||
_LOGGER.warning(
|
_LOGGER.warning(
|
||||||
"Discovered unrecognized Konnected device %s",
|
"Discovered unrecognized Konnected device %s",
|
||||||
discovery_info.get(ATTR_UPNP_MODEL_NAME, "Unknown"),
|
discovery_info.upnp.get(ssdp.ATTR_UPNP_MODEL_NAME, "Unknown"),
|
||||||
)
|
)
|
||||||
return self.async_abort(reason="not_konn_panel")
|
return self.async_abort(reason="not_konn_panel")
|
||||||
|
|
||||||
@ -266,7 +267,7 @@ class KonnectedFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
_LOGGER.error("Malformed Konnected SSDP info")
|
_LOGGER.error("Malformed Konnected SSDP info")
|
||||||
else:
|
else:
|
||||||
# extract host/port from ssdp_location
|
# extract host/port from ssdp_location
|
||||||
netloc = urlparse(discovery_info["ssdp_location"]).netloc.split(":")
|
netloc = urlparse(discovery_info.ssdp_location).netloc.split(":")
|
||||||
self._async_abort_entries_match(
|
self._async_abort_entries_match(
|
||||||
{CONF_HOST: netloc[0], CONF_PORT: int(netloc[1])}
|
{CONF_HOST: netloc[0], CONF_PORT: int(netloc[1])}
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user