Coder Social home page Coder Social logo

How to test about zigpy-znp HOT 16 CLOSED

zigpy avatar zigpy commented on July 18, 2024
How to test

from zigpy-znp.

Comments (16)

puddly avatar puddly commented on July 18, 2024 1

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.

  1. 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.
  2. 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.

puddly avatar puddly commented on July 18, 2024

I don't believe there is a way to do it without modifying Home Assistant's zha component. The good news is that the change is a single line in homeassistant/components/zha/core/const.py (see the installation instructions in the 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.

tube0013 avatar tube0013 commented on July 18, 2024

thanks I can handle that. I can close this or keep it open if things change?

from zigpy-znp.

puddly avatar puddly commented on July 18, 2024

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.

tube0013 avatar tube0013 commented on July 18, 2024

Very true, I've done that before. I will give it a shot shortly and see how it goes.

from zigpy-znp.

tube0013 avatar tube0013 commented on July 18, 2024

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.

puddly avatar puddly commented on July 18, 2024

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.

tube0013 avatar tube0013 commented on July 18, 2024

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.

puddly avatar puddly commented on July 18, 2024

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.

tube0013 avatar tube0013 commented on July 18, 2024

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.

Adminiuga avatar Adminiuga commented on July 18, 2024

Are you using channel 11,25 or 20?

from zigpy-znp.

tube0013 avatar tube0013 commented on July 18, 2024

15

from zigpy-znp.

puddly avatar puddly commented on July 18, 2024

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.

tube0013 avatar tube0013 commented on July 18, 2024

no I will check that and likely the issue give Konke's channel "feature" - probably tonight.

from zigpy-znp.

puddly avatar puddly commented on July 18, 2024

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.

puddly avatar puddly commented on July 18, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.