Applications
Use the Paho MQTT python library
IX20 User Guide
465
6. Use
Ctrl-D
to exit the Python session. You can also exit the session using
exit()
or
quit()
.
Use the Paho MQTT python library
Your IX20 device includes support for the Paho MQTT python library. MQTT is a lightweight messaging
protocol used to communicate with various applications including cloud-based applications such as
Amazon Web Services and Microsoft Azure. The following is example code that reads some data from
updates the device firmware, then publishes information about DHCP clients and system information
to the MQTT server.
"""
MQTT client example:
- Reporting some device metrics from runt
- Reporting DHCP clients
- Firmware update feature (simple implementation, read TODO in cmd_fwupdate)
"""
import sys
import time
import paho.mqtt.client as mqtt
import json
from acl import runt, config
from http import HTTPStatus
import urllib.request
import tempfile
import os
from digidevice import cli
POLL_TIME = 60
def cmd_reboot(params):
print("Rebooting unit...")
try:
cli.execute("reboot", 10)
except:
print("Failed to run 'reboot' command")
return HTTPStatus.INTERNAL_SERVER_ERROR
return HTTPStatus.OK
def cmd_fwupdate(params):
try:
fw_uri = params["uri"]
except:
print("Firmware file URI not passed")
return HTTPStatus.BAD_REQUEST
print("Request to update firmware with URI: {}".format(fw_uri))
try:
fd, fname = tempfile.mkstemp()
os.close(fd)
try:
urllib.request.urlretrieve(fw_uri, fname)
except:
print("Failed to download FW file from URI {}".format(fw_uri))
return HTTPStatus.NOT_FOUND