Skip to content

Commit

Permalink
Merge pull request #181 from mdeweerd/dev
Browse files Browse the repository at this point in the history
fix (2) for zigpy>=0.56.2, HA2023.7.2 - change reference to zigpy.__version__
  • Loading branch information
mdeweerd authored Jul 14, 2023
2 parents 813fa26 + cfe0915 commit 9ac2bc1
Show file tree
Hide file tree
Showing 6 changed files with 67 additions and 35 deletions.
1 change: 1 addition & 0 deletions STATS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Badges showing number of downloads per version

- ![badge latest](https://img.shields.io/github/downloads/mdeweerd/zha-toolkit/latest/total.svg)
- ![badge v0.9.4](https://img.shields.io/github/downloads/mdeweerd/zha-toolkit/v0.9.4/total.svg)
- ![badge v0.9.3](https://img.shields.io/github/downloads/mdeweerd/zha-toolkit/v0.9.3/total.svg)
- ![badge v0.9.2](https://img.shields.io/github/downloads/mdeweerd/zha-toolkit/v0.9.2/total.svg)
- ![badge v0.9.1](https://img.shields.io/github/downloads/mdeweerd/zha-toolkit/v0.9.1/total.svg)
Expand Down
3 changes: 1 addition & 2 deletions custom_components/zha_toolkit/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

import homeassistant.helpers.config_validation as cv
import voluptuous as vol
import zigpy
from homeassistant.util import dt as dt_util
from zigpy import types as t

Expand Down Expand Up @@ -701,7 +700,7 @@ async def toolkit_service(service):
# Preload event_data
event_data = {
"zha_toolkit_version": u.getVersion(),
"zigpy_version": zigpy.__version__,
"zigpy_version": u.getZigpyVersion(),
"zigpy_rf_version": u.get_radio_version(app),
"ieee_org": ieee_str,
"ieee": str(ieee),
Expand Down
58 changes: 48 additions & 10 deletions custom_components/zha_toolkit/binds.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ async def bind_group(

src_dev = app.get_device(ieee=ieee)

# Get tries
tries = params[p.TRIES]

if not data:
LOGGER.error("missing cmd_data")
return
Expand Down Expand Up @@ -82,8 +85,14 @@ async def bind_group(
)
bind_result = {"endpoint_id": src_epid, "cluster_id": src_out_cluster}

res = await zdo.request(
ZDOCmd.Bind_req, src_dev.ieee, src_epid, src_out_cluster, dst_addr
res = await u.retry_wrapper(
zdo.request,
ZDOCmd.Bind_req,
src_dev.ieee,
src_epid,
src_out_cluster,
dst_addr,
tries=tries,
)
bind_result["result"] = res
results[src_epid].append(bind_result)
Expand Down Expand Up @@ -130,8 +139,14 @@ async def bind_group(
)
bind_result = {"endpoint_id": src_epid, "cluster_id": src_in_cluster}

res = await zdo.request(
ZDOCmd.Bind_req, src_dev.ieee, src_epid, src_in_cluster, dst_addr
res = await u.retry_wrapper(
zdo.request,
ZDOCmd.Bind_req,
src_dev.ieee,
src_epid,
src_in_cluster,
dst_addr,
tries=tries,
)
bind_result["result"] = res
results[src_epid].append(bind_result)
Expand Down Expand Up @@ -161,6 +176,9 @@ async def unbind_group(

group_id = u.str2int(data)

# Get tries
tries = params[p.TRIES]

zdo = src_dev.zdo
src_out_cls = BINDABLE_OUT_CLUSTERS

Expand Down Expand Up @@ -196,8 +214,14 @@ async def unbind_group(
)

unbind_result = {"endpoint_id": src_ep, "cluster_id": src_out_cluster}
res = await zdo.request(
ZDOCmd.Unbind_req, src_dev.ieee, src_ep, src_out_cluster, dst_addr
res = await u.retry_wrapper(
zdo.request,
ZDOCmd.Unbind_req,
src_dev.ieee,
src_ep,
src_out_cluster,
dst_addr,
tries=tries,
)
unbind_result["result"] = res
results[src_ep].append(unbind_result)
Expand All @@ -221,6 +245,9 @@ async def bind_ieee(

dst_dev = await u.get_device(app, listener, data)

# Get tries
tries = params[p.TRIES]

# Coordinator has nwk address 0
isCoordinatorTarget = dst_dev.nwk == 0x0000

Expand Down Expand Up @@ -290,12 +317,14 @@ async def bind_ieee(
str(dst_dev.ieee),
dst_epid,
)
res = await zdo.request(
res = await u.retry_wrapper(
zdo.request,
ZDOCmd.Bind_req,
src_dev.ieee,
src_ep,
src_out_cluster,
dst_addr,
tries=tries,
)
LOGGER.debug(
"0x%04x: binding ieee %s: %s",
Expand Down Expand Up @@ -360,8 +389,14 @@ async def bind_ieee(
"dst_endpoint_id": dst_epid,
"cluster_id": src_in_cluster,
}
res = await zdo.request(
ZDOCmd.Bind_req, src_dev.ieee, src_ep, src_in_cluster, dst_addr
res = await u.retry_wrapper(
zdo.request,
ZDOCmd.Bind_req,
src_dev.ieee,
src_ep,
src_in_cluster,
dst_addr,
tries=tries,
)
bind_result["result"] = res
results[src_ep] = bind_result
Expand Down Expand Up @@ -528,6 +563,9 @@ async def binds_get(
src_dev = app.get_device(ieee=ieee)
zdo = src_dev.zdo

# Get tries
tries = params[p.TRIES]

idx = 0
done = False

Expand All @@ -538,7 +576,7 @@ async def binds_get(
while not done:
# Todo: continue when reply is incomplete (update start index)
reply = await u.retry_wrapper(
zdo.request, ZDOCmd.Mgmt_Bind_req, idx, tries=params[p.TRIES]
zdo.request, ZDOCmd.Mgmt_Bind_req, idx, tries=tries
)
event_data["replies"].append(reply)

Expand Down
4 changes: 0 additions & 4 deletions custom_components/zha_toolkit/ezsp.py
Original file line number Diff line number Diff line change
Expand Up @@ -336,10 +336,6 @@ async def ezsp_backup(

from bellows.cli import backup as bellows_backup

# from pkg_resources import parse_version
# bellows_version = bellows.__version__
# use_click = (parse_version(bellows_version)>parse_version("0.3.1"))

try:
# Network is already initialised, fake result for backup function
org_network_init = app._ezsp.networkInit
Expand Down
4 changes: 1 addition & 3 deletions custom_components/zha_toolkit/ota.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
from glob import glob

import aiohttp
from pkg_resources import parse_version
from zigpy import __version__ as zigpy_version

from . import DEFAULT_OTAU
from . import utils as u
Expand Down Expand Up @@ -213,7 +211,7 @@ async def ota_notify(
LOGGER.debug("Configured reporting: %s", ret)

ret = None
if parse_version(zigpy_version) < parse_version("0.45.0"):
if not u.is_zigpy_ge("0.45.0"):
ret = await cluster.image_notify(0, 100)
else:
cmd_args = [0, 100]
Expand Down
32 changes: 16 additions & 16 deletions custom_components/zha_toolkit/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,16 @@
MANIFEST: dict[str, str | list[str]] = {}


def getHaVersion() -> str:
"""Get HA Version"""
return HA_VERSION


def getZigpyVersion() -> str:
"""Get zigpy Version"""
return ZIGPY_VERSION


def getVersion() -> str:
# pylint: disable=global-variable-undefined,used-before-assignment
# pylint: disable=global-statement
Expand Down Expand Up @@ -200,18 +210,14 @@ def get_radio_version(app):
if hasattr(zigpy_znp, "__version__"):
return zigpy_znp.__version__

import pkg_resources

return pkg_resources.get_distribution("zigpy_znp").version
return get_distribution("zigpy_znp").version
if hasattr(app, "_ezsp"):
import bellows

if hasattr(bellows, "__version__"):
return bellows.__version__

import pkg_resources

return pkg_resources.get_distribution("bellows").version
return get_distribution("bellows").version
if hasattr(app, "_api"):
rt = get_radiotype(app)
if rt == RadioType.DECONZ:
Expand All @@ -220,27 +226,21 @@ def get_radio_version(app):
if hasattr(zigpy_deconz, "__version__"):
return zigpy_deconz.__version__

import pkg_resources

return pkg_resources.get_distribution("zigpy_deconz").version
return get_distribution("zigpy_deconz").version
if rt == RadioType.ZIGATE:
import zigpy_zigate

if hasattr(zigpy_zigate, "__version__"):
return zigpy_zigate.__version__

import pkg_resources

return pkg_resources.get_distribution("zigpy_zigate").version
return get_distribution("zigpy_zigate").version
if rt == RadioType.XBEE:
import zigpy_xbee

if hasattr(zigpy_xbee, "__version__"):
return zigpy_xbee.__version__

import pkg_resources

return pkg_resources.get_distribution("zigpy_xbee").version
return get_distribution("zigpy_xbee").version

# if rt == RadioType.ZIGPY_CC:
# import zigpy_cc
Expand Down Expand Up @@ -960,4 +960,4 @@ def get_local_dir() -> str:
def is_zigpy_ge(version: str) -> bool:
"""Test if zigpy library is newer than version"""
# Example version value: "0.45.0"
return parse_version(ZIGPY_VERSION) >= parse_version(version)
return parse_version(getZigpyVersion()) >= parse_version(version)

0 comments on commit 9ac2bc1

Please sign in to comment.