Releases: digidotcom/xbee-python
XBee Python library 1.5.0
v1.5.0 - 08/08/2024
- 
Support for new hardware variants:
- XBee 3 Cellular Global LTE Cat 1
 - XBee 3 Cellular North America LTE Cat 1
 - XBee 3 Cellular LTE-M/NB-IoT Low Power
 - XBee RR TH Pro/Non-Pro
 - XBee 3 Cellular Global Cat 4
 - XBee 3 Cellular North America Cat 4
 - XBee XR 868 TH
 - XBee XR 900 TH
 - XBee 3 BLU
 
 - 
Support to retrieve XBee statistics.
 - 
Send/receive explicit data in 802.15.4.
(XBee 3 modules support this feature) - 
Firmware/profile update support for:
- XBee RR MMT/SMT/TH Pro/Non-Pro (XBPL-384)
 - XBee XR 868 MMT/SMT/TH, local and remote (LCG-398)
 - XBee XR 900 MMT/SMT/TH, local and remote (LCG-398)
 - XBee 3 BLU, local (XBPL-391)
 
 - 
Support for sending BLE Generic Access Profile (GAP) scans.
(Only XBee 3 BLU modules support this feature) (XBPL-391) - 
Remove
pysrpdependency.The library includes support to generate salt and verifier required to configure
$S,$V,$W,$X, and$YXBee parameters to
establish Bluetooth password. - 
Bug fixing:
- Fix 
TransmitOptions.ENABLE_UNICAST_TRACE_ROUTEvalue. - Python 3.10 compatibility: Fix removed deprecated 
collectionsmodule.
See collections.abc, Removed, and Changes in the Python API sections at What’s New In Python 3.10.
(DAL-5918) - Fix order of nodes when creating a Zigbee source route (#278)
 - Firmware update: Do not check XBee region for 'skip' code in XML firmware file (XBPL-394)
 - Salt/verifier generation using 
pysrpwas not working with certain passwords (see cocagne/pysrp#55)
Solved by removingpysrpdependency and implementing the code to generate them. - Several minor bug fixes.
 
 - Fix 
 
Full Changelog: 1.4.1...1.5.0
XBee Python library 1.4.1
v1.4.1 - 12/22/2021
- 
Support for new hardware variants:
- XBee 3 Cellular LTE-M/NB-IoT (Telit)
 - XBee 3 Reduced RAM
 - S2C P5
 - XB3-DMLR
 - XB3-DMLR868
 
 - 
OTA firmware update:
- 
Implementation of considerations for versions 1009, 300A, 200A or prior
(XBPL-375)
See: - 
When updating a remote profile, let the library calculate the
*.otbfile path based on the*.xmlfirmware file, as it does for the*.ota. 
 - 
 - 
XBee Cellular:
- Do not work with network if the XBee does not support it (XBPL-374)
 - Fix creation of IMEI when reading cellular information.
 
 - 
Support to update a bunch of nodes at the same time (DAL-5285)
 - 
Documentation:
- Add info about the 
force_settingsparameter ofopenmethod (#241) - Add missing 
exportutilsmodule to documentation. 
 - Add info about the 
 - 
Set exclusive access mode to the XBee serial port (#222, #252)
 - 
Do not stop frames reader if a serial buffer empty exception occurs (#222, #252)
 - 
Do not use 'os.path.join()' for relative paths of zip entries (#247)
 - 
Fix bad conditions when checking for a received packet (#242)
 - 
Fix attribute name in find neighbors debug message (#122)
 - 
Fix remote firmware update issue with binary file on SX devices.
 - 
Fix protocol change issues during firmware update operation on SX devices.
 - 
Do not reconfigure SP and SN values after a firmware update operation in P2MP protocol.
 - 
Add new method to update salt and verifier values of Bluetooth password SRP authentication.
 - 
Several minor bug fixes.
 
XBee Python library 1.4.0
v1.4.0 - 03/18/2021
- 
Deep node discovery for Zigbee, DigiMesh, and 802.15.4.
 - 
Get route from local XBee to a remote XBee:
- New method to register a callback to listen for new received routes (
add_route_received_callback()) - New blocking method to ask for the route to the remote node (
get_route_to_node()) 
 - New method to register a callback to listen for new received routes (
 - 
Allow to recover a local node from a profile not only from firmware.
 - 
Support to be notified when new frames are received from a specific node (
add_packet_received_from_callback()). - 
Update network information from sent/received AT Command frames.
 - 
New optional argument for parameter value in
execute_command(). - 
New optional argument to apply pending settings in
get_parameter(),set_parameter(), andexecute_command(). - 
XBee 3:
- Support to update remote file system OTA images.
 
 - 
XBee SX 900/868:
- Firmware update for local and remote XBee devices.
 - Profile update for local and remote XBee devices.
 
 - 
XBee S2C:
- OTA firmware/profile update support for remote nodes.
 
 - 
Zigbee:
- Methods to get nodes routing and neighbor tables: 
get_routes()andget_neighbors(). - Methods to get/set many-to-one broadcasting time:
get_many_to_one_broadcasting_time()and
set_many_to_one_broadcasting_time(). - Support for source route creation: 
create_source_route(). - New frames:
- 'Route Record Indicator' (0xA1)
 - 'Create Source Route Packet' (0x21)
 
 
 - Methods to get nodes routing and neighbor tables: 
 - 
DigiMesh:
- Method to get node neighbors: 
get_neighbors(). - Method to build aggregate route: 
build_aggregate_routes(). - New frames:
- 'Route Information Packet' (0x8D)
 
 
 - Method to get node neighbors: 
 - 
Documentation update
 - 
Bug fixing:
- 
Captured possible exception while determining the XBee role (#103)
 - 
Memory leak: empty list of last discovered nodes using ND (#172)
 - 
Fix Python 3.9 syntax error (#204)
 - 
Use least significant nibble of status field in local/remote AT Command Responses (XCTUNG-376)
 - 
Do not lose already registered socket callbacks when closing a local XBee.
 - 
Reload node information after firmware/profile update (XBPL-348)
 - 
OTA firmware update:
- Fix sequence number in ZCL responses during fw update (XCTUNG-1975)
 - Immediate update after transferring the OTA file (XBPL-350)
 - Use requested file offset and size instead of fixed chunks (XBPL-344)
 - Mechanism to calculate the proper block size based on the maximum size received by the client and the maximum payload size (XBPL-346)
 - For asyncronous sleeping nodes (Zigbee, DigiMesh, 802.15.4) and synchronous sleeping networks (DigiMesh), configure a minimum sleep time before update and restore settings at the end.
For DigiMesh synchronous sleeping network, the local XBee must be a non-sleeping node but synchronized with the network (SM=7) 
 - 
Profile application:
- Do not uncompress profile when reading its information. This change avoids extra processing time and required space when retrieving profile info.
 - Remove profile extracted files. A profile is opened to access to its contents, and must be closed when done with it.
 - Fixed the application of XBee profiles with 'AP' setting changes (XBPL-340)
 - Fixed bootloader update from profile due to bootloader image path mismatch (XBPL-338)
 - Fix bootloader update operation by waiting some time until the new bootloader is running (XBPL-339)
 - Fixed application of profile with filesystem from Windows(XBPL-341)
 - Read firmware version as an hexadecimal value (#177)
 
 - 
Several minor bug fixes.
 
 - 
 
XBee Python library 1.3.0
v1.3.0 - 11/12/2019
- Zigbee: Support to register joining devices to a trust center.
 - Cellular: XBee TCP/UDP socket support.
 - XBee 3:
- Firmware update for local and remote XBee devices.
 - Profile update for local and remote XBee devices.
 - File system management for local XBee devices.
 
 - New recover serial connection functionality to force the XBee serial connection settings.
 - Support for notification of network cache modifications events (new node added, removed of existing node, network clear, ...)
 - Deprecate 
get_api_output_modeandset_api_output_modemethods to use newget_api_output_mode_valueandset_api_output_mode_valuewithAPIOutputModeBitenumeration. - Role as one of the cached parameters.
 - Report an error on 'finished discovery' callback if node discovery fails.
 - Several minor bug fixes.
 
XBee Python library 1.2.0
v1.2.0 - 07/05/2019
- Add new methods to send and receive data from other XBee interfaces through
User Data Relay frames. - Add new methods to manage the Bluetooth interface.
 - Add support to set AT parameters without applying them with the AT Command
Queue packet. - Improve the callbacks mechanism:
- Callbacks are now executed in parallel.
 - Internal callbacks are now defined when needed to avoid issues when more
than one callback of the same type is defined. 
 - Add missing 'Transmit Status', 'Modem Status' and 'Cellular Association
Indication Status' values to cover all XBee Cellular/XBee3 Cellular features. - Bug Fixing:
- Fix some bugs related to package spec data.
 - Log an error when processing a wrong frame instead of stopping the reader.
 - Fix an issue parsing Explicit RX Indicator packets.
 - Fix a couple of leaks with StreamHandlers.
 
 
XBee Python library 1.1.1
v1.1.1 - 04/25/2018
- Add support for DigiMesh and 802.15.4 protocols on XBee3 modules.
 - Return an unknown XBee packet when the received packet is not supported by
the library instead of raising an exception. - Change logging handler to log messages in the console.
 - Bug Fixing:
- Fix a problem when closing the device connection in the reader.
 - Fix how is determined whether the module has entered in AT command mode
or not. - Fix the string encoding and decoding in some API packets.
 - Fix the message displayed when the XBee device protocol is not correct one.
 
 
XBee Python library 1.1.0
v1.1.0 - 01/19/2018
- Add support for new hardware variants:
- XB8X
 
 - Add missing 'Modem Status' values for Remote Manager connect and disconnect
events. - Bug Fixing:
- Fix timeouts on Unix plaforms.
 - Fix the return source endpoint method from the 'ExplicitRXIndicatorPacket'
class. - Perform general bug fixing when working in API escaped mode.
 
 
XBee Python library 1.0.0
v1.0.0 - 10/31/2017
Initial release of XBee Python library. The main features of the library
include:
- Support for ZigBee, 802.15.4, DigiMesh, Point-to-Multipoint, Wi-Fi,
Cellular and NB-IoT devices. - Support for API and API escaped operating modes.
 - Management of local (attached to the PC) and remote XBee device objects.
 - Discovery of remote XBee devices associated with the same network as the
local device. - Configuration of local and remote XBee devices:
- Configure common parameters with specific setters and getters.
 - Configure any other parameter with generic methods.
 - Execute AT commands.
 - Apply configuration changes.
 - Write configuration changes.
 - Reset the device.
 
 - Transmission of data to all the XBee devices on the network or to a
specific device. - Reception of data from remote XBee devices:
- Data polling.
 - Data reception callback.
 
 - Transmission and reception of IP and SMS messages.
 - Reception of network status changes related to the local XBee device.
 - IO lines management:
- Configure IO lines.
 - Set IO line value.
 - Read IO line value.
 - Receive IO data samples from any remote XBee device on the network.
 
 - Support for explicit frames and application layer fields (Source endpoint,
Destination endpoint, Profile ID, and Cluster ID). - Multiple examples that show how to use the available APIs.