You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.