Comments (16)
I've tested again with a newly flashed zzh and indeed there were a few bugs introduced recently that prevented new networks from being formed. Thanks for letting me know.
- I've added installation instructions and a configurable custom component that will inject zigpy-znp into
zha
without requiring any modifications of the Home Assistant source code. - NVRAM backup and restoration is also working so if you want to try again but already have a network formed, follow the instructions in the README for performing a backup and then re-flash the zzh using
cc2538-bsl.py
. I've tested it with my network of 50 devices and it starts up again just fine after a restore is performed (it's normal for the first request or two to fail as the routing table is being rebuilt).
from zigpy-znp.
I don't believe there is a way to do it without modifying Home Assistant's (see the installation instructions in the zha
component. The good news is that the change is a single line in homeassistant/components/zha/core/const.py
README
):
diff --git a/const.py b/const.py
index 8a99a8a..4e55c17 100644
--- a/const.py
+++ b/const.py
@@ -169,6 +169,7 @@ POWER_BATTERY_OR_UNKNOWN = "Battery or Unknown"
class RadioType(enum.Enum):
"""Possible options for radio type."""
+ znp = ("ZNP", __import__("zigpy_znp.zigbee.application"))
ezsp = (
"ESZP: HUSBZB-1, Elelabs, Telegesis, Silabs EmberZNet protocol",
bellows.zigbee.application.ControllerApplication,
from zigpy-znp.
thanks I can handle that. I can close this or keep it open if things change?
from zigpy-znp.
I've not tested the above code or zigpy-znp with Home Assistant so let me know if it works.
As an alternative to editing the HA source code, you might also be able to create a custom component that monkey patches that enum in zha
, allowing you to perform updates and such without having this config get overwritten. I'll try it out when I have some free time and post installation instructions in this project's README
if it works.
from zigpy-znp.
Very true, I've done that before. I will give it a shot shortly and see how it goes.
from zigpy-znp.
So I tried this as a custom component... I ended up adding:
"zigpy-znp==0.0.4" to the manifest.json
and for testing in const.py I added and import at the end of the imports:
import zigpy_znp.zigbee.application
and to make things simpler just changed the zigpy-cc line in const.py to:
znp = (
"ZNP: CC2531, CC2530, CC2652R, CC1352 etc, Texas Instruments ZNP protocol",
zigpy_znp.zigbee.application.ControllerApplication,
)
Auto detection fails, I can point to the serial port, and I seem to have better luck by unplugging/plugging back in the stick right before submitting. the network seems to get formed but the process to add just hangs. I can close it and the zha panel shows in integrations but I never get the zha config panel.
Not a pressing issue, just wanted to record what I tried.
log from adding the integration until it just hangs spinning
2020-05-28 18:39:22 DEBUG (MainThread) [zigpy_znp.zigbee.application] Probing /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
2020-05-28 18:39:22 DEBUG (MainThread) [zigpy_znp.uart] Connecting to /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 at 115200 baud
2020-05-28 18:39:22 DEBUG (MainThread) [zigpy_znp.uart] Opened /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 serial port
2020-05-28 18:39:22 DEBUG (MainThread) [zigpy_znp.uart] Connected to /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 at 115200 baud
2020-05-28 18:39:22 DEBUG (MainThread) [zigpy_znp.api] Testing connection to /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
2020-05-28 18:39:22 DEBUG (MainThread) [zigpy_znp.api] Sending request: Sys.Ping.Req()
2020-05-28 18:39:22 DEBUG (MainThread) [zigpy_znp.api] Received command: Sys.Ping.Rsp(Capabilities=<MTCapabilities.CAP_APP_CNF|CAP_GP|CAP_UTIL|CAP_ZDO|CAP_AF|CAP_SYS: 1625>)
2020-05-28 18:39:22 DEBUG (MainThread) [zigpy_znp.api] Connected to /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 at 115200 baud
2020-05-28 18:39:22 DEBUG (MainThread) [zigpy_znp.api] We were disconnected from /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0: None
2020-05-28 18:39:22 DEBUG (MainThread) [zigpy_znp.uart] Closing /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 serial port
2020-05-28 18:39:22 INFO (MainThread) [homeassistant.setup] Setting up zha
2020-05-28 18:39:22 INFO (MainThread) [homeassistant.setup] Setup of domain zha took 0.0 seconds.
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy.appdb] Loading application state from /config/zigbee.db
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.uart] Connecting to /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 at 115200 baud
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.uart] Opened /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 serial port
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.uart] Connected to /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 at 115200 baud
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Testing connection to /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Sending request: Sys.Ping.Req()
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Received command: Sys.Ping.Rsp(Capabilities=<MTCapabilities.CAP_APP_CNF|CAP_GP|CAP_UTIL|CAP_ZDO|CAP_AF|CAP_SYS: 1625>)
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Connected to /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 at 115200 baud
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Sending request: Sys.OSALNVWrite.Req(Id=<NwkNvIds.CONCENTRATOR_ENABLE: 50>, Offset=0, Value=b'\x01')
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Received command: Sys.OSALNVWrite.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Sending request: Sys.OSALNVWrite.Req(Id=<NwkNvIds.CONCENTRATOR_DISCOVERY: 51>, Offset=0, Value=b'\x78')
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Received command: Sys.OSALNVWrite.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Sending request: Sys.OSALNVWrite.Req(Id=<NwkNvIds.CONCENTRATOR_RC: 54>, Offset=0, Value=b'\x01')
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Received command: Sys.OSALNVWrite.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Sending request: Sys.OSALNVWrite.Req(Id=<NwkNvIds.SRC_RTG_EXPIRY_TIME: 56>, Offset=0, Value=b'\xFF')
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Received command: Sys.OSALNVWrite.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Sending request: Sys.OSALNVWrite.Req(Id=<NwkNvIds.NWK_CHILD_AGE_ENABLE: 62>, Offset=0, Value=b'\x00')
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Received command: Sys.OSALNVWrite.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Sending request: Sys.ResetReq.Req(Type=<ResetType.Soft: 1>)
2020-05-28 18:39:23 DEBUG (MainThread) [zigpy_znp.api] Request has no response, not waiting for one.
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Received command: Sys.ResetInd.Callback(Reason=<ResetReason.PowerUp: 0>, TransportRev=2, ProductId=1, MajorRel=2, MinorRel=7, MaintRel=1)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Sending request: Sys.OSALNVRead.Req(Id=<NwkNvIds.HAS_CONFIGURED_ZSTACK3: 96>, Offset=0)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Received command: Sys.OSALNVRead.Rsp(Status=<Status.INVALID_PARAMETER: 2>, Value=b'')
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Sending request: Sys.OSALNVWrite.Req(Id=<NwkNvIds.STARTUP_OPTION: 3>, Offset=0, Value=b'\x02')
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Received command: Sys.OSALNVWrite.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Sending request: Sys.OSALNVWrite.Req(Id=<NwkNvIds.LOGICAL_TYPE: 135>, Offset=0, Value=b'\x01')
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Received command: Sys.OSALNVWrite.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Sending request: Util.SetChannels.Req(Channels=<Channels.CHANNEL_25|CHANNEL_20|CHANNEL_15: 34635776>)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Received command: Util.SetChannels.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Sending request: AppConfig.BDBSetChannel.Req(IsPrimary=<Bool.true: 1>, Channel=<Channels.CHANNEL_25|CHANNEL_20|CHANNEL_15: 34635776>)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Received command: AppConfig.BDBSetChannel.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Sending request: AppConfig.BDBSetChannel.Req(IsPrimary=<Bool.false: 0>, Channel=<Channels.NO_CHANNELS: 0>)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Received command: AppConfig.BDBSetChannel.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Sending request: Util.SetPanId.Req(PanId=0xffff)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Received command: Util.SetPanId.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Sending request: Sys.OSALNVWrite.Req(Id=<NwkNvIds.EXTENDED_PAN_ID: 45>, Offset=0, Value=b'\x68\x21\x98\xF2\x2E\x72\x7B\x10')
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Received command: Sys.OSALNVWrite.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Sending request: Util.SetPreConfigKey.Req(PreConfigKey=[110, 209, 132, 72, 227, 178, 182, 9, 64, 236, 249, 237, 78, 44, 21, 50])
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Received command: Util.SetPreConfigKey.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Sending request: Sys.OSALNVWrite.Req(Id=<NwkNvIds.PRECFGKEYS_ENABLE: 99>, Offset=0, Value=b'\x01')
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Received command: Sys.OSALNVWrite.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Sending request: Sys.OSALNVWrite.Req(Id=<NwkNvIds.ZDO_DIRECT_CB: 143>, Offset=0, Value=b'\x01')
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Received command: Sys.OSALNVWrite.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Sending request: Sys.ResetReq.Req(Type=<ResetType.Soft: 1>)
2020-05-28 18:39:26 DEBUG (MainThread) [zigpy_znp.api] Request has no response, not waiting for one.
2020-05-28 18:39:28 DEBUG (MainThread) [zigpy_znp.api] Received command: Sys.ResetInd.Callback(Reason=<ResetReason.PowerUp: 0>, TransportRev=2, ProductId=1, MajorRel=2, MinorRel=7, MaintRel=1)
2020-05-28 18:39:28 DEBUG (MainThread) [zigpy_znp.api] Sending request: AppConfig.BDBStartCommissioning.Req(Mode=<BDBCommissioningMode.NwkFormation: 4>)
2020-05-28 18:39:31 DEBUG (MainThread) [zigpy_znp.api] Received command: AppConfig.BDBStartCommissioning.Rsp(Status=<Status.SUCCESS: 0>)
2020-05-28 18:39:31 DEBUG (MainThread) [zigpy_znp.api] Received command: AppConfig.BDBCommissioningNotification.Callback(Status=<BDBCommissioningStatus.NoNetwork: 2>, Mode=<BDBCommissioningMode.NONE: 0>, RemainingModes=<BDBCommissioningMode.NONE: 0>)
2020-05-28 18:39:31 WARNING (MainThread) [zigpy_znp.api] Received an unhandled command: AppConfig.BDBCommissioningNotification.Callback(Status=<BDBCommissioningStatus.NoNetwork: 2>, Mode=<BDBCommissioningMode.NONE: 0>, RemainingModes=<BDBCommissioningMode.NONE: 0>)
2020-05-28 18:39:32 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.StateChangeInd.Callback(State=<DeviceState.DiscoveringPANs: 2>)
2020-05-28 18:39:32 WARNING (MainThread) [zigpy_znp.api] Received an unhandled command: ZDO.StateChangeInd.Callback(State=<DeviceState.DiscoveringPANs: 2>)
from zigpy-znp.
Thanks for the info, I appreciate the testing.
The ZZH isn't auto detected at the moment because it just shows up as a generic CH340 USB serial adapter, which for me makes them indistinguishable from every other CH340 device out there, like most cheap Arduinos. I'll have to check if there's a better way.
As for the network formation failure, I'll have to check it out myself again. There's some magic combination of requests to get it to happen reliably, I guess I just haven't run into it yet.
Are you in a dense Zigbee environment? I haven't run into that specific status yet.
from zigpy-znp.
Yes, the area I'm testing it has a bunch of other zigbee devices.. have about 8 other zigbee devices from my production environment in the general area.
from zigpy-znp.
All of the network details have been written to the adapter so it should work fine now with zigpy-znp, zigpy-cc, and zigbee2mqtt. It might even just start working if you re-plug it and restart HA.
from zigpy-znp.
I reflashed the zzh, set up the custom_component to inject znp into zha, and set up the custom dep for the python package as I'm using supervised and was able to set up a network and join a couple sensors to test. I did have trouble joining a konke temp/humidity sensor - I have several of these in my prod network so not sure if it is the sensor or what I'll keep testing and let you know if I have any issues/feedback.
from zigpy-znp.
Are you using channel 11,25 or 20?
from zigpy-znp.
15
from zigpy-znp.
Did you use a sniffer to verify? The channel
network configuration option is not actually utilized because Z-Stack doesn't expose the exact channel it's using, just the mask.
from zigpy-znp.
no I will check that and likely the issue give Konke's channel "feature" - probably tonight.
from zigpy-znp.
The default channel mask is 15, 20, and 25, which is compatible with Konke. Is it joining the network but not being discovered properly? You should be able to see all of that in the debug logs.
from zigpy-znp.
I've added installation instructions to the README
and fixed the network formation issue so I'm going to close this issue. Feel free to open a new one if you encounter any more problems.
from zigpy-znp.
Related Issues (20)
- zigpy-packet-api integration in z4d HOT 7
- zigpy-znp application examples HOT 3
- Python3.7 HOT 2
- OTA for Texas Instruments CC1352/CC2652, Z-Stack HOT 7
- Unable to start zigpy-znp HOT 5
- (zigpy_znp.__version__) not available HOT 3
- Dubious licensing HOT 2
- Various failing tests with zigpy==0.54.0 HOT 1
- Dependencies are unclear to me - Docker /alpine/v3.16 HOT 2
- timeout error when read CC2652 Sonoff dongle HOT 1
- Unable to form network - No module named form_network HOT 2
- zigpy_znp.tools.network_backup fails with asyncio.exceptions.CancelledError on SkyConnect HOT 5
- Develco Products "ZigBee Wallplug HA SP2" unsupported frame
- test_on_af_message_callback fails with zigpy==0.59.0
- Unable to pair devices HOT 13
- Better Error Reporting HOT 5
- command "zigpy_znp.tools.nvram_read" Timeout
- `zigpy_znp.tools.network_restore` fails with `AttributeError` HOT 2
- CC2674 (CC2674P/CC2674R) and CC1354 (CC1354P) Zigbee Coordinator compatibility with with zigpy-znp? HOT 1
- MotionSensor detected but stuck at configuration within HomeAssistant (ZHA) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zigpy-znp.