Add configuration_url to hunterdouglas_powerview (#72837)

Co-authored-by: J. Nick Koston <nick@koston.org>
pull/72855/head
kingy444 2022-06-02 03:41:20 +10:00 committed by GitHub
parent 74e2d5c5c3
commit d6e5c26b24
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 0 deletions

View File

@ -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,

View File

@ -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"

View File

@ -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: