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:
|
except asyncio.TimeoutError:
|
||||||
# Forced refresh is not required for setup
|
# Forced refresh is not required for setup
|
||||||
pass
|
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(
|
entities.append(
|
||||||
PowerViewShade(
|
PowerViewShade(
|
||||||
shade, name_before_refresh, room_data, coordinator, device_info
|
shade, name_before_refresh, room_data, coordinator, device_info
|
||||||
|
|
|
@ -74,6 +74,17 @@ class ShadeEntity(HDEntity):
|
||||||
@property
|
@property
|
||||||
def device_info(self):
|
def device_info(self):
|
||||||
"""Return the device_info of the device."""
|
"""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]
|
firmware = self._shade.raw_data[FIRMWARE_IN_SHADE]
|
||||||
sw_version = f"{firmware[FIRMWARE_REVISION]}.{firmware[FIRMWARE_SUB_REVISION]}.{firmware[FIRMWARE_BUILD]}"
|
sw_version = f"{firmware[FIRMWARE_REVISION]}.{firmware[FIRMWARE_SUB_REVISION]}.{firmware[FIRMWARE_BUILD]}"
|
||||||
model = self._shade.raw_data[ATTR_TYPE]
|
model = self._shade.raw_data[ATTR_TYPE]
|
||||||
|
@ -82,11 +93,6 @@ class ShadeEntity(HDEntity):
|
||||||
model = shade.description
|
model = shade.description
|
||||||
break
|
break
|
||||||
|
|
||||||
return {
|
device_info["sw_version"] = sw_version
|
||||||
"identifiers": {(DOMAIN, self._shade.id)},
|
device_info["model"] = model
|
||||||
"name": self._shade_name,
|
return device_info
|
||||||
"model": str(model),
|
|
||||||
"sw_version": sw_version,
|
|
||||||
"manufacturer": MANUFACTURER,
|
|
||||||
"via_device": (DOMAIN, self._device_info[DEVICE_SERIAL_NUMBER]),
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue