Python Client
The Paho Python Client provides a client class with support for MQTT v5.0, MQTT v3.1.1, and v3.1 on Python 3.7+. It also provides some helper functions to make publishing one off messages to an MQTT server very straightforward.
Features
Source
https://github.com/eclipse-paho/paho.mqtt.python
Download
The Python client can be downloaded and installed from PyPI using the pip tool:
pip install paho-mqtt
Building from source
The project can be installed from the repository as well. To do this:
git clone https://github.com/eclipse-paho/paho.mqtt.python.git cd paho.mqtt.python pip install -e .
Documentation
Reference documentation is online here.
Getting Started
There are example clients in the examples directory of the repository.
Here is a very simple example that subscribes to the broker $SYS topic tree and prints out the resulting messages:
import paho.mqtt.client as mqtt
# The callback for when the client receives a CONNACK response from the server.
def on_connect(client, userdata, flags, reason_code, properties):
print(f"Connected with result code {reason_code}")
# Subscribing in on_connect() means that if we lose the connection and
# reconnect then subscriptions will be renewed.
client.subscribe("$SYS/#")
# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
mqttc = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
mqttc.on_connect = on_connect
mqttc.on_message = on_message
mqttc.connect("mqtt.eclipseprojects.io", 1883, 60)
# Blocking call that processes network traffic, dispatches callbacks and
# handles reconnecting.
# Other loop*() functions are available that give a threaded interface and a
# manual interface.
mqttc.loop_forever()
