Fix shade compatibility with hunter douglas powerview 1.0 hubs (#36040)

pull/36070/head
J. Nick Koston 2020-05-23 12:56:27 -05:00 committed by Franck Nijhof
parent 88ebc6a08b
commit bd32a1fabb
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
2 changed files with 20 additions and 8 deletions

View File

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

View File

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