mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 21:57:51 +00:00
Log ZHA bind/unbind operations status (#29842)
* Log bind/unbind operation result. * Use ZDO consts. * Use device logger for bind/unbind results. * Lint.
This commit is contained in:
parent
1fee400dcd
commit
327b5c3c94
@ -70,8 +70,6 @@ ATTR_IEEE_ADDRESS = "ieee_address"
|
|||||||
ATTR_IEEE = "ieee"
|
ATTR_IEEE = "ieee"
|
||||||
ATTR_SOURCE_IEEE = "source_ieee"
|
ATTR_SOURCE_IEEE = "source_ieee"
|
||||||
ATTR_TARGET_IEEE = "target_ieee"
|
ATTR_TARGET_IEEE = "target_ieee"
|
||||||
BIND_REQUEST = 0x0021
|
|
||||||
UNBIND_REQUEST = 0x0022
|
|
||||||
|
|
||||||
SERVICE_PERMIT = "permit"
|
SERVICE_PERMIT = "permit"
|
||||||
SERVICE_REMOVE = "remove"
|
SERVICE_REMOVE = "remove"
|
||||||
@ -717,9 +715,11 @@ async def websocket_bind_devices(hass, connection, msg):
|
|||||||
zha_gateway = hass.data[DATA_ZHA][DATA_ZHA_GATEWAY]
|
zha_gateway = hass.data[DATA_ZHA][DATA_ZHA_GATEWAY]
|
||||||
source_ieee = msg[ATTR_SOURCE_IEEE]
|
source_ieee = msg[ATTR_SOURCE_IEEE]
|
||||||
target_ieee = msg[ATTR_TARGET_IEEE]
|
target_ieee = msg[ATTR_TARGET_IEEE]
|
||||||
await async_binding_operation(zha_gateway, source_ieee, target_ieee, BIND_REQUEST)
|
await async_binding_operation(
|
||||||
|
zha_gateway, source_ieee, target_ieee, zdo_types.ZDOCmd.Bind_req
|
||||||
|
)
|
||||||
_LOGGER.info(
|
_LOGGER.info(
|
||||||
"Issue bind devices: %s %s",
|
"Issued bind devices: %s %s",
|
||||||
f"{ATTR_SOURCE_IEEE}: [{source_ieee}]",
|
f"{ATTR_SOURCE_IEEE}: [{source_ieee}]",
|
||||||
f"{ATTR_TARGET_IEEE}: [{target_ieee}]",
|
f"{ATTR_TARGET_IEEE}: [{target_ieee}]",
|
||||||
)
|
)
|
||||||
@ -739,9 +739,11 @@ async def websocket_unbind_devices(hass, connection, msg):
|
|||||||
zha_gateway = hass.data[DATA_ZHA][DATA_ZHA_GATEWAY]
|
zha_gateway = hass.data[DATA_ZHA][DATA_ZHA_GATEWAY]
|
||||||
source_ieee = msg[ATTR_SOURCE_IEEE]
|
source_ieee = msg[ATTR_SOURCE_IEEE]
|
||||||
target_ieee = msg[ATTR_TARGET_IEEE]
|
target_ieee = msg[ATTR_TARGET_IEEE]
|
||||||
await async_binding_operation(zha_gateway, source_ieee, target_ieee, UNBIND_REQUEST)
|
await async_binding_operation(
|
||||||
|
zha_gateway, source_ieee, target_ieee, zdo_types.ZDOCmd.Unbind_req
|
||||||
|
)
|
||||||
_LOGGER.info(
|
_LOGGER.info(
|
||||||
"Issue unbind devices: %s %s",
|
"Issued unbind devices: %s %s",
|
||||||
f"{ATTR_SOURCE_IEEE}: [{source_ieee}]",
|
f"{ATTR_SOURCE_IEEE}: [{source_ieee}]",
|
||||||
f"{ATTR_TARGET_IEEE}: [{target_ieee}]",
|
f"{ATTR_TARGET_IEEE}: [{target_ieee}]",
|
||||||
)
|
)
|
||||||
@ -764,22 +766,34 @@ async def async_binding_operation(zha_gateway, source_ieee, target_ieee, operati
|
|||||||
|
|
||||||
zdo = cluster_pair.source_cluster.endpoint.device.zdo
|
zdo = cluster_pair.source_cluster.endpoint.device.zdo
|
||||||
|
|
||||||
_LOGGER.debug(
|
op_msg = "cluster: %s %s --> [%s]"
|
||||||
"processing binding operation for: %s %s %s",
|
op_params = (
|
||||||
f"{ATTR_SOURCE_IEEE}: [{source_ieee}]",
|
cluster_pair.source_cluster.cluster_id,
|
||||||
f"{ATTR_TARGET_IEEE}: [{target_ieee}]",
|
operation.name,
|
||||||
"{}: {}".format("cluster", cluster_pair.source_cluster.cluster_id),
|
target_ieee,
|
||||||
)
|
)
|
||||||
|
zdo.debug("processing " + op_msg, *op_params)
|
||||||
|
|
||||||
bind_tasks.append(
|
bind_tasks.append(
|
||||||
zdo.request(
|
(
|
||||||
operation,
|
zdo.request(
|
||||||
source_device.ieee,
|
operation,
|
||||||
cluster_pair.source_cluster.endpoint.endpoint_id,
|
source_device.ieee,
|
||||||
cluster_pair.source_cluster.cluster_id,
|
cluster_pair.source_cluster.endpoint.endpoint_id,
|
||||||
destination_address,
|
cluster_pair.source_cluster.cluster_id,
|
||||||
|
destination_address,
|
||||||
|
),
|
||||||
|
op_msg,
|
||||||
|
op_params,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
await asyncio.gather(*bind_tasks)
|
res = await asyncio.gather(*(t[0] for t in bind_tasks), return_exceptions=True)
|
||||||
|
for outcome, log_msg in zip(res, bind_tasks):
|
||||||
|
if isinstance(outcome, Exception):
|
||||||
|
fmt = log_msg[1] + " failed: %s"
|
||||||
|
else:
|
||||||
|
fmt = log_msg[1] + " completed: %s"
|
||||||
|
zdo.debug(fmt, *(log_msg[2] + (outcome,)))
|
||||||
|
|
||||||
|
|
||||||
def async_load_api(hass):
|
def async_load_api(hass):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user