From 830e2bc47a4f68e0bb252e0a59570c5c5cb739ab Mon Sep 17 00:00:00 2001 From: starkillerOG Date: Fri, 8 Oct 2021 18:03:21 +0200 Subject: [PATCH] Netgear fix port and device model beeing overwritten (#57277) Co-authored-by: Martin Hjelmare --- homeassistant/components/netgear/config_flow.py | 11 +++++++++-- homeassistant/components/netgear/router.py | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/netgear/config_flow.py b/homeassistant/components/netgear/config_flow.py index 18813ac27cd..62985c7104c 100644 --- a/homeassistant/components/netgear/config_flow.py +++ b/homeassistant/components/netgear/config_flow.py @@ -1,4 +1,5 @@ """Config flow to configure the Netgear integration.""" +import logging from urllib.parse import urlparse from pynetgear import DEFAULT_HOST, DEFAULT_PORT, DEFAULT_USER @@ -20,6 +21,8 @@ from .const import CONF_CONSIDER_HOME, DEFAULT_CONSIDER_HOME, DEFAULT_NAME, DOMA from .errors import CannotLoginException from .router import get_api +_LOGGER = logging.getLogger(__name__) + def _discovery_schema_with_defaults(discovery_info): return vol.Schema(_ordered_shared_schema(discovery_info)) @@ -120,15 +123,19 @@ class NetgearFlowHandler(config_entries.ConfigFlow, domain=DOMAIN): device_url = urlparse(discovery_info[ssdp.ATTR_SSDP_LOCATION]) if device_url.hostname: updated_data[CONF_HOST] = device_url.hostname - if device_url.port: - updated_data[CONF_PORT] = device_url.port if device_url.scheme == "https": updated_data[CONF_SSL] = True else: updated_data[CONF_SSL] = False + _LOGGER.debug("Netgear ssdp discovery info: %s", discovery_info) + await self.async_set_unique_id(discovery_info[ssdp.ATTR_UPNP_SERIAL]) self._abort_if_unique_id_configured(updates=updated_data) + + if device_url.port: + updated_data[CONF_PORT] = device_url.port + self.placeholders.update(updated_data) self.discovered = True diff --git a/homeassistant/components/netgear/router.py b/homeassistant/components/netgear/router.py index 53cc4f32728..cc508f043ff 100644 --- a/homeassistant/components/netgear/router.py +++ b/homeassistant/components/netgear/router.py @@ -274,8 +274,8 @@ class NetgearDeviceEntity(Entity): """Return the device information.""" return { "connections": {(CONNECTION_NETWORK_MAC, self._mac)}, - "name": self._device_name, - "model": self._device["device_model"], + "default_name": self._device_name, + "default_model": self._device["device_model"], "via_device": (DOMAIN, self._router.unique_id), }