diff --git a/homeassistant/components/upnp/device.py b/homeassistant/components/upnp/device.py index 6bbf0a3dd53..5ebe2a78d0d 100644 --- a/homeassistant/components/upnp/device.py +++ b/homeassistant/components/upnp/device.py @@ -23,7 +23,10 @@ class Device: async def async_discover(cls, hass: HomeAssistantType): """Discovery UPNP/IGD devices.""" _LOGGER.debug('Discovering UPnP/IGD devices') - local_ip = hass.data[DOMAIN]['config'].get(CONF_LOCAL_IP) + local_ip = None + if DOMAIN in hass.data and \ + 'config' in hass.data[DOMAIN]: + local_ip = hass.data[DOMAIN]['config'].get(CONF_LOCAL_IP) if local_ip: local_ip = IPv4Address(local_ip) diff --git a/homeassistant/components/upnp/sensor.py b/homeassistant/components/upnp/sensor.py index 5f544e1a134..708ef314ab4 100644 --- a/homeassistant/components/upnp/sensor.py +++ b/homeassistant/components/upnp/sensor.py @@ -8,8 +8,10 @@ from datetime import datetime import logging from homeassistant.core import callback +from homeassistant.helpers import device_registry as dr from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.entity import Entity +from homeassistant.helpers.typing import HomeAssistantType from .const import DOMAIN as DOMAIN_UPNP, SIGNAL_REMOVE_SENSOR @@ -46,7 +48,9 @@ OUT = 'sent' KBYTE = 1024 -async def async_setup_platform(hass, config, async_add_entities, +async def async_setup_platform(hass: HomeAssistantType, + config, + async_add_entities, discovery_info=None): """Old way of setting up UPnP/IGD sensors.""" _LOGGER.debug('async_setup_platform: config: %s, discovery: %s', @@ -111,8 +115,11 @@ class UpnpSensor(Entity): 'identifiers': { (DOMAIN_UPNP, self.unique_id) }, + 'connections': { + (dr.CONNECTION_UPNP, self._device.udn) + }, 'name': self.name, - 'via_hub': (DOMAIN_UPNP, self._device.udn), + 'manufacturer': self._device.manufacturer, }