Skip to content

Commit 08864b5

Browse files
committed
Fix #269 Adjust method to get list of devices to current ZHA code
1 parent d32e245 commit 08864b5

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

custom_components/zha_toolkit/ota.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ async def download_koenkk_ota(listener, ota_dir):
4444
# Get manufacturers
4545
manfs = {}
4646
for info in [
47-
device.zha_device_info for device in listener.devices.values()
47+
device.zha_device_info for device in u.get_zha_devices(listener)
4848
]:
4949
manfs[info["manufacturer_code"]] = True
5050

@@ -111,7 +111,7 @@ async def download_sonoff_ota(listener, ota_dir):
111111
# Get manufacturers
112112
manfs = {}
113113
for info in [
114-
device.zha_device_info for device in listener.devices.values()
114+
device.zha_device_info for device in u.get_zha_devices(listener)
115115
]:
116116
manfs[info["manufacturer_code"]] = True
117117

custom_components/zha_toolkit/utils.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
MANIFEST: dict[str, str | list[str]] = {}
5959

6060

61-
def get_zha_gateway(hass: HomeAssistant) -> ZHAGateway:
61+
def get_zha_gateway(hass: HomeAssistant) -> ZHAGateway | zha_helpers.ZHAGatewayProxy:
6262
"""Get the ZHA gateway object."""
6363
if parse_version(HA_VERSION) >= parse_version("2024.8"):
6464
return zha_helpers.get_zha_gateway(hass)
@@ -67,6 +67,15 @@ def get_zha_gateway(hass: HomeAssistant) -> ZHAGateway:
6767
return zha.gateway
6868

6969

70+
def get_zha_devices(listener: ZHAGateway | zha_helpers.ZHAGatewayProxy):
71+
devices = getattr(listener, "device_proxies", None)
72+
if devices is None:
73+
# Old method
74+
devices = getattr(listener, "devices", None)
75+
if devices is not None:
76+
return devices.values()
77+
78+
7079
def get_zha_gateway_hass(
7180
hass: HomeAssistant,
7281
) -> ZHAGateway | zha_helpers.ZHAGatewayProxy:

custom_components/zha_toolkit/zha.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ async def zha_devices(
4545
# 'signature'
4646
# 'endpoints'
4747

48-
devices = [device.zha_device_info for device in listener.devices.values()]
48+
devices = [device.zha_device_info for device in listener.device_proxies.values()]
4949

5050
if ieee is not None:
5151
ieee = str(ieee)

0 commit comments

Comments
 (0)