mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Add configuration_url to hunterdouglas_powerview (#72837)
Co-authored-by: J. Nick Koston <nick@koston.org>
This commit is contained in:
parent
74e2d5c5c3
commit
d6e5c26b24
@ -37,6 +37,7 @@ from .const import (
|
|||||||
HUB_NAME,
|
HUB_NAME,
|
||||||
MAC_ADDRESS_IN_USERDATA,
|
MAC_ADDRESS_IN_USERDATA,
|
||||||
PV_API,
|
PV_API,
|
||||||
|
PV_HUB_ADDRESS,
|
||||||
PV_ROOM_DATA,
|
PV_ROOM_DATA,
|
||||||
PV_SCENE_DATA,
|
PV_SCENE_DATA,
|
||||||
PV_SHADE_DATA,
|
PV_SHADE_DATA,
|
||||||
@ -72,6 +73,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
try:
|
try:
|
||||||
async with async_timeout.timeout(10):
|
async with async_timeout.timeout(10):
|
||||||
device_info = await async_get_device_info(pv_request)
|
device_info = await async_get_device_info(pv_request)
|
||||||
|
device_info[PV_HUB_ADDRESS] = hub_address
|
||||||
|
|
||||||
async with async_timeout.timeout(10):
|
async with async_timeout.timeout(10):
|
||||||
rooms = Rooms(pv_request)
|
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 = PowerviewShadeUpdateCoordinator(hass, shades, hub_address)
|
||||||
coordinator.async_set_updated_data(PowerviewShadeData())
|
coordinator.async_set_updated_data(PowerviewShadeData())
|
||||||
|
|
||||||
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = {
|
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = {
|
||||||
PV_API: pv_request,
|
PV_API: pv_request,
|
||||||
PV_ROOM_DATA: room_data,
|
PV_ROOM_DATA: room_data,
|
||||||
|
@ -54,6 +54,7 @@ STATE_ATTRIBUTE_ROOM_NAME = "roomName"
|
|||||||
|
|
||||||
PV_API = "pv_api"
|
PV_API = "pv_api"
|
||||||
PV_HUB = "pv_hub"
|
PV_HUB = "pv_hub"
|
||||||
|
PV_HUB_ADDRESS = "pv_hub_address"
|
||||||
PV_SHADES = "pv_shades"
|
PV_SHADES = "pv_shades"
|
||||||
PV_SCENE_DATA = "pv_scene_data"
|
PV_SCENE_DATA = "pv_scene_data"
|
||||||
PV_SHADE_DATA = "pv_shade_data"
|
PV_SHADE_DATA = "pv_shade_data"
|
||||||
|
@ -21,6 +21,7 @@ from .const import (
|
|||||||
FIRMWARE_REVISION,
|
FIRMWARE_REVISION,
|
||||||
FIRMWARE_SUB_REVISION,
|
FIRMWARE_SUB_REVISION,
|
||||||
MANUFACTURER,
|
MANUFACTURER,
|
||||||
|
PV_HUB_ADDRESS,
|
||||||
)
|
)
|
||||||
from .coordinator import PowerviewShadeUpdateCoordinator
|
from .coordinator import PowerviewShadeUpdateCoordinator
|
||||||
from .shade_data import PowerviewShadeData, PowerviewShadePositions
|
from .shade_data import PowerviewShadeData, PowerviewShadePositions
|
||||||
@ -40,6 +41,7 @@ class HDEntity(CoordinatorEntity[PowerviewShadeUpdateCoordinator]):
|
|||||||
super().__init__(coordinator)
|
super().__init__(coordinator)
|
||||||
self._room_name = room_name
|
self._room_name = room_name
|
||||||
self._attr_unique_id = unique_id
|
self._attr_unique_id = unique_id
|
||||||
|
self._hub_address = device_info[PV_HUB_ADDRESS]
|
||||||
self._device_info = device_info
|
self._device_info = device_info
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -62,6 +64,7 @@ class HDEntity(CoordinatorEntity[PowerviewShadeUpdateCoordinator]):
|
|||||||
name=self._device_info[DEVICE_NAME],
|
name=self._device_info[DEVICE_NAME],
|
||||||
suggested_area=self._room_name,
|
suggested_area=self._room_name,
|
||||||
sw_version=sw_version,
|
sw_version=sw_version,
|
||||||
|
configuration_url=f"http://{self._hub_address}/api/shades",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -97,6 +100,7 @@ class ShadeEntity(HDEntity):
|
|||||||
manufacturer=MANUFACTURER,
|
manufacturer=MANUFACTURER,
|
||||||
model=str(self._shade.raw_data[ATTR_TYPE]),
|
model=str(self._shade.raw_data[ATTR_TYPE]),
|
||||||
via_device=(DOMAIN, self._device_info[DEVICE_SERIAL_NUMBER]),
|
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:
|
for shade in self._shade.shade_types:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user