Fix shade compatibility with hunter douglas powerview 1.0 hubs (#36040)
parent
88ebc6a08b
commit
bd32a1fabb
|
@ -68,6 +68,12 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
|||
except asyncio.TimeoutError:
|
||||
# Forced refresh is not required for setup
|
||||
pass
|
||||
if ATTR_POSITION_DATA not in shade.raw_data:
|
||||
_LOGGER.info(
|
||||
"The %s shade was skipped because it is missing position data",
|
||||
name_before_refresh,
|
||||
)
|
||||
continue
|
||||
entities.append(
|
||||
PowerViewShade(
|
||||
shade, name_before_refresh, room_data, coordinator, device_info
|
||||
|
|
|
@ -74,6 +74,17 @@ class ShadeEntity(HDEntity):
|
|||
@property
|
||||
def device_info(self):
|
||||
"""Return the device_info of the device."""
|
||||
|
||||
device_info = {
|
||||
"identifiers": {(DOMAIN, self._shade.id)},
|
||||
"name": self._shade_name,
|
||||
"manufacturer": MANUFACTURER,
|
||||
"via_device": (DOMAIN, self._device_info[DEVICE_SERIAL_NUMBER]),
|
||||
}
|
||||
|
||||
if FIRMWARE_IN_SHADE not in self._shade.raw_data:
|
||||
return device_info
|
||||
|
||||
firmware = self._shade.raw_data[FIRMWARE_IN_SHADE]
|
||||
sw_version = f"{firmware[FIRMWARE_REVISION]}.{firmware[FIRMWARE_SUB_REVISION]}.{firmware[FIRMWARE_BUILD]}"
|
||||
model = self._shade.raw_data[ATTR_TYPE]
|
||||
|
@ -82,11 +93,6 @@ class ShadeEntity(HDEntity):
|
|||
model = shade.description
|
||||
break
|
||||
|
||||
return {
|
||||
"identifiers": {(DOMAIN, self._shade.id)},
|
||||
"name": self._shade_name,
|
||||
"model": str(model),
|
||||
"sw_version": sw_version,
|
||||
"manufacturer": MANUFACTURER,
|
||||
"via_device": (DOMAIN, self._device_info[DEVICE_SERIAL_NUMBER]),
|
||||
}
|
||||
device_info["sw_version"] = sw_version
|
||||
device_info["model"] = model
|
||||
return device_info
|
||||
|
|
Loading…
Reference in New Issue