zigpy-znp

TI CC2531, CC13x2, CC26x2 radio support for Zigpy and ZHA

GPL-3.0 License

Downloads
547.2K
Stars
137

Bot releases are hidden (Show)

zigpy-znp - v0.6.4

Published by puddly almost 3 years ago

Bugfixes

Full Changelog: https://github.com/zigpy/zigpy-znp/compare/v0.6.3...v0.6.4

zigpy-znp - v0.6.3

Published by puddly almost 3 years ago

What's Changed

Full Changelog: https://github.com/zigpy/zigpy-znp/compare/v0.6.2...v0.6.3

zigpy-znp - v0.6.2

Published by puddly almost 3 years ago

New features

  • Use ZDO converter for Mgmt_NWK_Update_req by @puddly in https://github.com/zigpy/zigpy-znp/pull/102
  • Startup RTS and DTR pin states are now configurable:
    zha:
      zigpy_config:
        znp_config:
          connect_rts_pin_states: [off, on, off]
          connect_dtr_pin_states: [off, off, off]
    

Bugfixes

Full Changelog: https://github.com/zigpy/zigpy-znp/compare/v0.6.1...v0.6.2

zigpy-znp - v0.6.1

Published by puddly almost 3 years ago

Changes

  • This release only changes packaging dependencies: the pyserial-asyncio dependency constraint has been relaxed and any version can be used on non-Windows platforms. On Windows, any version of pyserial-asyncio other than 0.5 can be used. This was the behavior prior to the release of zigpy_znp==0.6.0.
zigpy-znp - v0.6.0

Published by puddly almost 3 years ago

New features

  • Network settings management has been abstracted into the ControllerApplication.load_network_info and ControllerApplication.write_network_info methods.

Bugfixes

Changes

Breaking changes

  • The functionality in zigpy_znp.utils has been moved into the zigpy_znp.api.ZNP class.
  • Network backups created with zigpy-znp 0.6.0 cannot be restored by older releases.

Full Changelog: https://github.com/zigpy/zigpy-znp/compare/v0.5.4...v0.6.0

zigpy-znp - v0.5.4

Published by puddly about 3 years ago

Changes

zigpy-znp - v0.5.3

Published by puddly about 3 years ago

zigpy-znp - v0.5.2

Published by puddly about 3 years ago

Bugfixes

New features

zigpy-znp - v0.5.1

Published by puddly over 3 years ago

Bugfixes

  • Command line tools failed to write JSON/binary output to STDOUT and read it from STDIN: 8300994439bb2cd75e3c2ea58aecef65bc1230fd
zigpy-znp - v0.5.0

Published by puddly over 3 years ago

New Features

  • Huge thank you to @castorw from the Z2M project for working with me to bring concurrent support for the Open Coordinator Backup format to Z2M. This allows for bidirectional migration between any coordinators supported by zigpy-znp. More documentation is available in TOOLS.md#Backup and restore.
  • Multicast and broadcast requests are sent immediately
  • Log a warning when using the Z2M default network key.

Changes

  • Maximum time to wait for a device announcement after a device join before sending the zigpy device_joined signal has been increased from 2 seconds to 5 seconds.
  • Write both PRECFGKEYS_ENABLE and EXTENDED_PAN_ID OSAL NVRAM items to ensure Z2M works with adapters commissioned with zigpy-znp.
  • Retry using manual source routing first, before route discovery.
  • If an exception is encountered when passing a frame from the UART object to ZNP, log the entire frame.
  • If an unknown frame is passed to ZNP, log it but do not throw an exception.
  • The -c command line flag has been removed from zigpy_znp.tools.nvram_reset and is now the default.

Internal Changes

  • Add a force_form keyword argument to ControllerApplication.startup.
  • All CC2531-specific types have been removed with the addition of the CStruct class, which computes struct padding and alignment during serialization/deserialization. This is autodetected at startup.
  • The ZNP class can now be used more independently of ControllerApplication, especially without a formed network.
    • ControllerApplication._reset has been moved to ZNP.reset.
    • Complete network information is extracted from NVRAM at startup and populates the ZNP instance's network_info attribute.
  • New helper methods to read and write NVRAM tables.

Breaking changes

  • Serialization and deserialization of complex types is strongly encouraged to be done via znp.nvram.serialize/deserialize instead of the object's serialize/deserialize methods, which takes into account structure alignment and padding.
  • item_type is now a required keyword argument for all NVRAM reads and no trailing data after deserialization is permitted. Old behavior can be preserved by passing item_type=t.Bytes.
zigpy-znp - v0.4.0

Published by puddly over 3 years ago

New Features

  • The default LED mode is now off.
  • Support for ZDOCmd.Unbind_req (#54).
  • Very verbose TRACE-level debug logging is now hidden behind the logger object in zigpy_znp.logger. To enable it again in Home Assistant, add the following to your logging configuration:
    logger:
      logs:
        zigpy_znp.logger: debug
    
  • Periodically pings Z-Stack to detect soft lockups and treat this failure as a disconnect. For sticks that reset upon reconnect, like slaesh's CC2652RB stick, this will make recovery automatic.
  • Log network settings on startup under the INFO log level. For security, the network key will be logged under the DEBUG level.
  • During request retrying, always attempt source routing, even if a device's relays are not present.

Bugfixes

  • permit_ncp is now a no-op and all calls to ControllerApplication.permit will open joins on the coordinator, even when joins are permitted only through another router (https://github.com/zigpy/zigpy-znp/issues/53). A full solution will require changes to Z-Stack.
  • Do not attempt manual child aging on older coordinators, as their firmware does not have the required command and MT serialization inconsistencies will cause errors to be logged.
  • Prevent the installation of pyserial_asyncio==0.5 on Windows, which breaks writes (https://github.com/pyserial/pyserial-asyncio/issues/69).
zigpy-znp - v0.3.0

Published by puddly almost 4 years ago

Security Fixes

New Features

  • Handle errors internal to Z-Stack by retrying requests within zigpy-znp. Missing routes are explicitly re-discovered using a few different methods, including manual source routing as a last resort. Thanks zigbee-herdsman!
  • Check for and re-discover missing routes before sending ZDO requests.
  • Upon receipt of a Trust Center key exchange notification, handle_join will be delayed for at most two seconds, until a device sends a ZDO Parent Announce broadcast.

Bugfixes

  • NVRAM backup and restore did not read/write tables except for the first and last items. This is now properly handled but the backup format is now backwards-incompatible.
  • ControllerApplication.force_remove does not throw exceptions (https://github.com/zigpy/zigpy/issues/563).
  • Fix communication with devices using nonstandard profiles by always defaulting to endpoint 1 (#43)
  • Fix ZDOCmd.Mgmt_Rtg_req ZDO converter incorrectly sending ZDO.MgmtLqiReq instead of ZDO.MgmtRtgReq.

Internal Changes

  • NwkNvIds and OsalNvIds were improperly named. NwkNvIds are now OsalNvIds and OsalNvIds are now ExNvIds. The new-style and legacy NVRAM operations are now exposed via ZNP.nvram.read and ZNP.nvram.legacy_read, respectively. The ZNP.nvram object transparently handles items that require multiple reads/writes to fully populate and bypasses NVRAM read protection for secure items when used with certain builds of Z-Stack Home 1.2.
  • Shield request/response/callback coroutines from cancellation in order to reduce the number of logged unhandled command warnings.
  • Remove handling of "auto" as a device path.
zigpy-znp - v0.2.2

Published by puddly about 4 years ago

Bugfixes

  • Fix LED control for CC2531s running Z-Stack Home 1.2 (reported by @JeffResc).

Tools

  • Support zigpy_znp.tools.network_scan on Z-Stack Home 1.2.
  • Include complete beacon information in zigpy_znp.tools.network_scan, including LQI.
  • Allow duplicate beacons to be printed with zigpy_znp.tools.network_scan by passing the --allow-duplicates (-a) flag.
zigpy-znp - v0.2.1

Published by puddly about 4 years ago

Bugfixes

  • Fix tests being erroneously installed as a Python package along with zigpy_znp.
  • Support Python 3.8.6 by fixing enum incompatibilities (https://bugs.python.org/issue41889) and requiring at least zigpy 0.25.0.
  • Explicitly handle device announcement and source routing messages generated by devices on the network that are not known to zigpy, preventing unnecessary tracebacks from being logged (reported by @Samantha-uk).
  • Reduce the logging level of missing NVRAM item messages in zigpy_znp.tools.nvram_reset from WARNING to DEBUG (reported by @Samantha-uk).
zigpy-znp - v0.2.0

Published by puddly about 4 years ago

New Features

  • Support for slae.sh's CC2562R USB coordinator (@MarhyCZ)
  • 🎉 Z-Stack Home 1.2 support 🎉
  • Preliminary support for permitting joins with Zigbee 3.0 Install Codes via ControllerApplication.permit_with_key.

New Tools

  • python -m zigpy_znp.tools.network_scan: performs an active network scan on the specified channels and prints out all unique beacons with timestamps.
  • python -m zigpy_znp.tools.nvram_reset: new -c deletes every known NVRAM item, effectively resetting your hardware to its newly-flashed state.

Bugfixes

  • Fix ControllerApplication.probe() failing when other zigpy radio libraries have previously attempted to communicate with a radio's serial port at the wrong baudrate.
  • Add support for Mgmt_Lqi_req and Mgmt_Rtg_req ZDO commands, fixing issues with https://github.com/zha-ng/zha-map (@Samantha-uk)
  • Populate the coordinator's zigpy.device.Device object's node descriptor.
  • Fix sporadic resource cleanup race condition multiple request/response/callbacks where the first one fails.
  • ZNP.nvram_read/write/delete will now perform multiple reads and writes with offsets if an item is too long to read or write in one request.

Breaking Changes

  • ControllerApplication.form_network() will not store the channel mask in NVRAM if a specific logical channel is provided as well. If no logical channel is provided, the coordinator will perform a scan for existing networks and pick a channel at random from the provided mask.
  • Minimum zigpy version has been upgraded from 0.23.0 to 0.24.1.
zigpy-znp - v0.1.1

Published by puddly about 4 years ago

Bugfixes

  • Fix ControllerApplication.probe() leaving the serial connection open.
zigpy-znp - v0.1.0

Published by puddly about 4 years ago

New Features

  • zigpy_znp.tools.nvram_reset resets a device.
  • zigpy_znp.tools.nvram_write takes a -r argument to reset a device after writing new firmware.
  • zigpy_znp.tools.nvram_write now allows firmware downgrades back to unsupported versions of Z-Stack.
  • If a TRACE logging level exists (must be equal to 5 or named TRACE, and be more verbose than DEBUG), zigpy-znp will log very verbose messages with that level. Otherwise, DEBUG will be used.

Changes

  • Increase minimum zigpy version to 0.23.0.
  • Drop the attr package as a dependency.
  • Add autodetection for the CC2531 and slae.sh's CC2652R USB stick
  • Limit concurrent requests to 2 for CC2531 and 16 for more capable coordinators (can be overridden with the max_concurrent_requests setting). Future releases may intelligently limit requests in response to memory errors.
  • VERBOSE and TRACE logging is available in all command line tools, defaulting to INFO.

Bugfixes

  • Fixed bug where a callback responding to one of multiple ZDO requests of the same type would be erroneously accepted by all.
  • Networks formed with a channel mask and a fixed channel did not always use the fixed channel. ` is used in the configuration
zigpy-znp - v0.0.11

Published by puddly about 4 years ago

Changes

  • Add a tool to scan Zigbee channels: zigpy_znp.tools.energy_scan. More information is in the README.
  • Move DEBUG verbosity in all tools behind a -v flag. Default is now INFO.
  • Re-add an endpoint with the ZLL profile.

Bugfixes

  • Some data confirmation messages were not being handled properly when sent from certain endpoints.
  • Bind/unbind ZDO commands were not working for certain endpoints.

zigpy-znp is nearly finished and will probably move from "alpha" to "beta" status in the next release.

zigpy-znp - v0.0.10

Published by puddly about 4 years ago

Changes

  • Add the coordinator itself to the device list, allowing Zigbee groups to work in HA after a restart (issue #27)
  • Rewrite HA custom component to inject much earlier and thus more reliably (234b1f2925b31281a8da888436ede4984162a40c).
  • Condense all unnecessary endpoints into a single endpoint with multiple in/out clusters (0b6100cb25552b0fe7777300f6fa847f5a8e9aa4).
  • Remove the custom TRACE log level and instead use DEBUG (e9c1aef941eac5cc2ae7613799fa270061fd4463).
  • Add a converter for ZDOCmd.Mgmt_Permit_Joining_req and an explicit error message for missing converters (65269da61f7cb93f0268dc84bfed654169cb782c).
  • Support both old- and new-style zigpy structs (https://github.com/zigpy/zigpy/pull/440)
zigpy-znp - v0.0.9

Published by puddly over 4 years ago

Global changes

  • Support Zigbee groups and multicast requests
  • Expose the current Zigbee channel on startup, not just the channel mask.
  • Implement LED control. Set it with led_mode: one of (off, on, blink, flash, toggle)

Preliminary CC2531 support!

  • Network formation and simple commands have been superficially tested
  • Validate binary firmware CRCs before firmware flashing with python -m zigpy_znp.tools.flash_write
  • Skip the 60 second bootloader delay
  • Support NVRAM backup/restore. Warning: don't mix CC2531 backups with ZZH and LAUNCHXL backups. It will not work and you might softlock your device and need to reflash.