
Get started with Digi Remote Manager
Manage data in Remote Manager
Digi XBee3 Cellular LTE-M/NB-IoT Global Smart Modem User Guide
93
data = """
<sci_request version="1.0">
<update_firmware filename="firmware.ebin">
<targets>
<device id="{}"/>
</targets>
<file>{}</file>
</update_firmware>
</sci_request>
""".format(device_id, firmware_path)
# Post request
r = requests.post(url, auth=(username, password), data=data)
if (r.status_code != 200) or ("error" in r.content.decode('utf-8')):
print("firmware update failed")
else:
print("firmware update success")
Example: update the XBee .gbl firmware synchronously with Python 3.0
import base64
import requests
# Location of firmware image
firmware_path = 'XBXC.gbl'
# Remote Manager device ID of the device being updated
device_id = '00010000-00000000-03526130-70153378'
# Remote Manager username and password
username = "my_Remote_manager_username"
password = "my_remote_manager_password"
url = 'https://remotemanager.digi.com/ws/sci'
# Get firmware image
fw_file = open(firmware_path, 'rb')
fw_data = fw_file.read()
fw_data = base64.encodebytes(fw_data).decode('utf-8')
# Form update_firmware request
data = """
<sci_request version="1.0">
<update_firmware filename="firmware.gbl">
<targets>
<device id="{}"/>
</targets>
<data>{}</data>
</update_firmware>
</sci_request>
""".format(device_id, fw_data)
# Post request
r = requests.post(url, auth=(username, password), data=data)
if (r.status_code != 200) or ("error" in r.content.decode('utf-8')):
print("firmware update failed")
else:
print("firmware update success")