diff --git a/homeassistant/components/hunterdouglas_powerview/__init__.py b/homeassistant/components/hunterdouglas_powerview/__init__.py index 97f7f8de931..587bf8aef12 100644 --- a/homeassistant/components/hunterdouglas_powerview/__init__.py +++ b/homeassistant/components/hunterdouglas_powerview/__init__.py @@ -37,6 +37,7 @@ from .const import ( HUB_NAME, MAC_ADDRESS_IN_USERDATA, PV_API, + PV_HUB_ADDRESS, PV_ROOM_DATA, PV_SCENE_DATA, PV_SHADE_DATA, @@ -72,6 +73,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: try: async with async_timeout.timeout(10): device_info = await async_get_device_info(pv_request) + device_info[PV_HUB_ADDRESS] = hub_address async with async_timeout.timeout(10): rooms = Rooms(pv_request) @@ -97,6 +99,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: coordinator = PowerviewShadeUpdateCoordinator(hass, shades, hub_address) coordinator.async_set_updated_data(PowerviewShadeData()) + hass.data.setdefault(DOMAIN, {})[entry.entry_id] = { PV_API: pv_request, PV_ROOM_DATA: room_data, diff --git a/homeassistant/components/hunterdouglas_powerview/const.py b/homeassistant/components/hunterdouglas_powerview/const.py index 1cc9f79df40..7146d40c737 100644 --- a/homeassistant/components/hunterdouglas_powerview/const.py +++ b/homeassistant/components/hunterdouglas_powerview/const.py @@ -54,6 +54,7 @@ STATE_ATTRIBUTE_ROOM_NAME = "roomName" PV_API = "pv_api" PV_HUB = "pv_hub" +PV_HUB_ADDRESS = "pv_hub_address" PV_SHADES = "pv_shades" PV_SCENE_DATA = "pv_scene_data" PV_SHADE_DATA = "pv_shade_data" diff --git a/homeassistant/components/hunterdouglas_powerview/entity.py b/homeassistant/components/hunterdouglas_powerview/entity.py index 174e3def2d6..04885fa576e 100644 --- a/homeassistant/components/hunterdouglas_powerview/entity.py +++ b/homeassistant/components/hunterdouglas_powerview/entity.py @@ -21,6 +21,7 @@ from .const import ( FIRMWARE_REVISION, FIRMWARE_SUB_REVISION, MANUFACTURER, + PV_HUB_ADDRESS, ) from .coordinator import PowerviewShadeUpdateCoordinator from .shade_data import PowerviewShadeData, PowerviewShadePositions @@ -40,6 +41,7 @@ class HDEntity(CoordinatorEntity[PowerviewShadeUpdateCoordinator]): super().__init__(coordinator) self._room_name = room_name self._attr_unique_id = unique_id + self._hub_address = device_info[PV_HUB_ADDRESS] self._device_info = device_info @property @@ -62,6 +64,7 @@ class HDEntity(CoordinatorEntity[PowerviewShadeUpdateCoordinator]): name=self._device_info[DEVICE_NAME], suggested_area=self._room_name, sw_version=sw_version, + configuration_url=f"http://{self._hub_address}/api/shades", ) @@ -97,6 +100,7 @@ class ShadeEntity(HDEntity): manufacturer=MANUFACTURER, model=str(self._shade.raw_data[ATTR_TYPE]), via_device=(DOMAIN, self._device_info[DEVICE_SERIAL_NUMBER]), + configuration_url=f"http://{self._hub_address}/api/shades/{self._shade.id}", ) for shade in self._shade.shade_types: