From abb6cd56388ac7adf5f79d01e7bf8c84db031dd9 Mon Sep 17 00:00:00 2001 From: prairiesnpr Date: Thu, 7 Feb 2019 22:08:55 -0500 Subject: [PATCH 1/7] Update nwk if changed --- zigpy_xbee/zigbee/application.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/zigpy_xbee/zigbee/application.py b/zigpy_xbee/zigbee/application.py index 825c256..91491a9 100644 --- a/zigpy_xbee/zigbee/application.py +++ b/zigpy_xbee/zigbee/application.py @@ -129,9 +129,13 @@ def handle_rx(self, src_ieee, src_nwk, src_ep, dst_ep, cluster_id, profile_id, r ember_ieee = zigpy.types.EUI64(src_ieee) if ember_ieee not in self.devices: + LOGGER.debug('New Device') self.handle_join(src_nwk, ember_ieee, 0) # TODO: Parent nwk self._devices_by_nwk[src_nwk] = src_ieee device = self.get_device(ember_ieee) + if device.nwk != src_nwk: + LOGGER.debug('nwk changed') + self.handle_join(src_nwk, ember_ieee, 0) try: tsn, command_id, is_reply, args = self.deserialize(device, src_ep, cluster_id, data) From 3c14c6cd52681a330d006188b5e86dc8681900f6 Mon Sep 17 00:00:00 2001 From: prairiesnpr Date: Fri, 8 Feb 2019 14:44:58 -0500 Subject: [PATCH 2/7] Prevent duplicate devices Remove existing nwk from registry prior to adding new nwk --- zigpy_xbee/zigbee/application.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/zigpy_xbee/zigbee/application.py b/zigpy_xbee/zigbee/application.py index 91491a9..db7a8e9 100644 --- a/zigpy_xbee/zigbee/application.py +++ b/zigpy_xbee/zigbee/application.py @@ -130,12 +130,13 @@ def handle_rx(self, src_ieee, src_nwk, src_ep, dst_ep, cluster_id, profile_id, r ember_ieee = zigpy.types.EUI64(src_ieee) if ember_ieee not in self.devices: LOGGER.debug('New Device') - self.handle_join(src_nwk, ember_ieee, 0) # TODO: Parent nwk - self._devices_by_nwk[src_nwk] = src_ieee - device = self.get_device(ember_ieee) + self.handle_join(src_nwk, ember_ieee, 0) # TODO: Parent nwk + device = self.get_device(ember_ieee) if device.nwk != src_nwk: LOGGER.debug('nwk changed') self.handle_join(src_nwk, ember_ieee, 0) + self._devices_by_nwk.pop(src_nwk, None) + self._devices_by_nwk[src_nwk] = src_ieee try: tsn, command_id, is_reply, args = self.deserialize(device, src_ep, cluster_id, data) From cdc0a696d02c22a5d0a1302c3331e19e90a72533 Mon Sep 17 00:00:00 2001 From: prairiesnpr Date: Fri, 8 Feb 2019 17:40:34 -0500 Subject: [PATCH 3/7] Remove the old nwk from the registry --- zigpy_xbee/zigbee/application.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zigpy_xbee/zigbee/application.py b/zigpy_xbee/zigbee/application.py index db7a8e9..7048f70 100644 --- a/zigpy_xbee/zigbee/application.py +++ b/zigpy_xbee/zigbee/application.py @@ -135,7 +135,7 @@ def handle_rx(self, src_ieee, src_nwk, src_ep, dst_ep, cluster_id, profile_id, r if device.nwk != src_nwk: LOGGER.debug('nwk changed') self.handle_join(src_nwk, ember_ieee, 0) - self._devices_by_nwk.pop(src_nwk, None) + self._devices_by_nwk.pop(device.nwk, None) self._devices_by_nwk[src_nwk] = src_ieee try: From 2af36dd4dfd00b6b0ce2fb9e3ea5395f31a6b509 Mon Sep 17 00:00:00 2001 From: prairiesnpr Date: Sat, 9 Feb 2019 11:06:37 -0500 Subject: [PATCH 4/7] Remove trailing whitespace --- zigpy_xbee/zigbee/application.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zigpy_xbee/zigbee/application.py b/zigpy_xbee/zigbee/application.py index 7048f70..62a5989 100644 --- a/zigpy_xbee/zigbee/application.py +++ b/zigpy_xbee/zigbee/application.py @@ -130,8 +130,8 @@ def handle_rx(self, src_ieee, src_nwk, src_ep, dst_ep, cluster_id, profile_id, r ember_ieee = zigpy.types.EUI64(src_ieee) if ember_ieee not in self.devices: LOGGER.debug('New Device') - self.handle_join(src_nwk, ember_ieee, 0) # TODO: Parent nwk - device = self.get_device(ember_ieee) + self.handle_join(src_nwk, ember_ieee, 0) # TODO: Parent nwk + device = self.get_device(ember_ieee) if device.nwk != src_nwk: LOGGER.debug('nwk changed') self.handle_join(src_nwk, ember_ieee, 0) From 83ee8699755f1fc18d81b25a3c07012f2b41230f Mon Sep 17 00:00:00 2001 From: prairiesnpr Date: Sat, 9 Feb 2019 11:07:45 -0500 Subject: [PATCH 5/7] Fix indentation --- zigpy_xbee/api.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zigpy_xbee/api.py b/zigpy_xbee/api.py index 0d0d56c..4742fce 100644 --- a/zigpy_xbee/api.py +++ b/zigpy_xbee/api.py @@ -300,10 +300,10 @@ async def api_mode_at_commands(self, baudrate): for cmd in cmds: if await self.command_mode_at_cmd(cmd + '\r'): - LOGGER.debug("Successfuly sent %s cmd", cmd) + LOGGER.debug("Successfuly sent %s cmd", cmd) else: - LOGGER.debug("No response to %s cmd", cmd) - return None + LOGGER.debug("No response to %s cmd", cmd) + return None return True async def init_api_mode(self): From 2e26a7a50f895e9549800edbe422cd3792321077 Mon Sep 17 00:00:00 2001 From: prairiesnpr Date: Sat, 9 Feb 2019 11:15:19 -0500 Subject: [PATCH 6/7] Removed extraneous logging --- zigpy_xbee/zigbee/application.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/zigpy_xbee/zigbee/application.py b/zigpy_xbee/zigbee/application.py index 62a5989..61b728d 100644 --- a/zigpy_xbee/zigbee/application.py +++ b/zigpy_xbee/zigbee/application.py @@ -129,11 +129,9 @@ def handle_rx(self, src_ieee, src_nwk, src_ep, dst_ep, cluster_id, profile_id, r ember_ieee = zigpy.types.EUI64(src_ieee) if ember_ieee not in self.devices: - LOGGER.debug('New Device') self.handle_join(src_nwk, ember_ieee, 0) # TODO: Parent nwk device = self.get_device(ember_ieee) if device.nwk != src_nwk: - LOGGER.debug('nwk changed') self.handle_join(src_nwk, ember_ieee, 0) self._devices_by_nwk.pop(device.nwk, None) self._devices_by_nwk[src_nwk] = src_ieee From e7da6b5f00ac7f71b35c3c2690d2f640c8764cad Mon Sep 17 00:00:00 2001 From: prairiesnpr Date: Wed, 13 Feb 2019 19:19:27 -0500 Subject: [PATCH 7/7] Conflated if statement on handle join --- zigpy_xbee/zigbee/application.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/zigpy_xbee/zigbee/application.py b/zigpy_xbee/zigbee/application.py index 08a00c8..d549dcd 100644 --- a/zigpy_xbee/zigbee/application.py +++ b/zigpy_xbee/zigbee/application.py @@ -144,11 +144,10 @@ def handle_rx(self, src_ieee, src_nwk, src_ep, dst_ep, cluster_id, profile_id, r return ember_ieee = zigpy.types.EUI64(src_ieee) - if ember_ieee not in self.devices: - self.handle_join(src_nwk, ember_ieee, 0) # TODO: Parent nwk + if src_nwk not in self._devices_by_nwk: + self.handle_join(src_nwk, ember_ieee, 0) # TODO: Parent nwk device = self.get_device(ember_ieee) if device.nwk != src_nwk: - self.handle_join(src_nwk, ember_ieee, 0) self._devices_by_nwk.pop(device.nwk, None) self._devices_by_nwk[src_nwk] = src_ieee