Skip to content

Commit bd32a1f

Browse files
bdracofrenck
authored andcommitted
Fix shade compatibility with hunter douglas powerview 1.0 hubs (#36040)
1 parent 88ebc6a commit bd32a1f

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

homeassistant/components/hunterdouglas_powerview/cover.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,12 @@ async def async_setup_entry(hass, entry, async_add_entities):
6868
except asyncio.TimeoutError:
6969
# Forced refresh is not required for setup
7070
pass
71+
if ATTR_POSITION_DATA not in shade.raw_data:
72+
_LOGGER.info(
73+
"The %s shade was skipped because it is missing position data",
74+
name_before_refresh,
75+
)
76+
continue
7177
entities.append(
7278
PowerViewShade(
7379
shade, name_before_refresh, room_data, coordinator, device_info

homeassistant/components/hunterdouglas_powerview/entity.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,17 @@ def __init__(self, coordinator, device_info, shade, shade_name):
7474
@property
7575
def device_info(self):
7676
"""Return the device_info of the device."""
77+
78+
device_info = {
79+
"identifiers": {(DOMAIN, self._shade.id)},
80+
"name": self._shade_name,
81+
"manufacturer": MANUFACTURER,
82+
"via_device": (DOMAIN, self._device_info[DEVICE_SERIAL_NUMBER]),
83+
}
84+
85+
if FIRMWARE_IN_SHADE not in self._shade.raw_data:
86+
return device_info
87+
7788
firmware = self._shade.raw_data[FIRMWARE_IN_SHADE]
7889
sw_version = f"{firmware[FIRMWARE_REVISION]}.{firmware[FIRMWARE_SUB_REVISION]}.{firmware[FIRMWARE_BUILD]}"
7990
model = self._shade.raw_data[ATTR_TYPE]
@@ -82,11 +93,6 @@ def device_info(self):
8293
model = shade.description
8394
break
8495

85-
return {
86-
"identifiers": {(DOMAIN, self._shade.id)},
87-
"name": self._shade_name,
88-
"model": str(model),
89-
"sw_version": sw_version,
90-
"manufacturer": MANUFACTURER,
91-
"via_device": (DOMAIN, self._device_info[DEVICE_SERIAL_NUMBER]),
92-
}
96+
device_info["sw_version"] = sw_version
97+
device_info["model"] = model
98+
return device_info

0 commit comments

Comments
 (0)