Getting started with the XBee Smart Modem Development Kit
You can verify the response from the broker as a CONNACK by comparing it to the structure of a
CONNACK packet in the MQTT documentation, which is available at
open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718081).
Example: send messages (publish) with MQTT
A basic Python example of a node publishing (sending) a message is:
mqttc = mqtt.Client("digitest")
"digitest"
mqttc.connect("m2m.eclipse.org", 1883)
time)
mqttc.loop_start()
mqttc.publish("digitest/test1", "Hello, World!")
/test1" topic
mqttc.loop_stop()
Note
You can easily copy and paste code from the online version of this Guide. Use caution with the
PDF version, as it may not maintain essential indentations.
This example imports the MQTT library, allowing you to use the MQTT protocol via APIs in the library,
such as the connect(), subscribe(), and publish() methods.
The second line creates an instance of the client, named mqttc. The client ID is the argument you
passed in: digitest (this is optional).
In line 3, the client connects to a public broker, in this case m2m.eclipse.org, on port 1883 (the default
MQTT port, or 8883 for MQTT over SSL). There are many publicly available brokers available, you can
find a list of them here: https://github.com/mqtt/mqtt.github.io/wiki/brokers.
Line 4 starts the networking daemon with client.loop_start() to handle the background
network/data tasks.
Finally, the client publishes its message Hello, World! to the broker under the topic
digitest/backlog/test1. Any nodes (devices, phones, computers, even microcontrollers) subscribed to
that same topic on the same broker receive the message.
Once no more messages need to be published, the last line stops the network daemon with
client.loop_stop().
Example: receive messages (subscribe) with MQTT
This example describes how a client would receive messages from within a specific topic on the
broker:
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
connects to the broker
print("Connected with result code {0}".format(str(rc)))
connection attempt
client.subscribe("digitest/test1")
"digitest/test1", receive any messages published on it
def on_message(client, userdata, msg):
is received from the server.
print("Message received-> " + msg.topic + " " + str(msg.payload))
Digi XBee3 Cellular LTE-M Global Smart Modem User Guide
# Create instance of client with client ID
# Start networking daemon
# Kill networking daemon
http://docs.oasis-
# Connect to (broker, port, keepalive-
# Publish message to "digitest
# The callback for when the client
# Subscribe to the topic
# The callback for when a PUBLISH message
Get started with MQTT
# Print result of
# Print a
34
Need help?
Do you have a question about the XB3-C-A2-UT series and is the answer not in the manual?