I got python to subscribe to an MQTT broker from a CentOS 6 box.
First off you need to install the mqtt libraries for python. In this example we use the paho-mqtt libraries.
You don’t use YUM, you use easy_install. Here is the command
easy_install paho-mqtt
After that you can connect via python whether this is a script or in the interpreter
Here is the script scrubbed of usernames and passwords
import paho.mqtt.client as mqtt
def on_connect(mqttc, userdata, rc):
print('connected...rc=' + str(rc))
mqttc.subscribe(topic='home/message', qos=0)
def on_disconnect(mqttc, userdata, rc):
print('disconnected...rc=' + str(rc))
def on_message(mqttc, userdata, msg):
print('message received...')
print('topic: ' + msg.topic + ', qos: ' +
str(msg.qos) + ', message: ' + str(msg.payload))
def on_subscribe(mqttc, userdata, mid, granted_qos):
print('subscribed (qos=' + str(granted_qos) + ')')
def on_unsubscribe(mqttc, userdata, mid, granted_qos):
print('unsubscribed (qos=' + str(granted_qos) + ')')
mqttc = mqtt.Client()
mqttc.on_connect = on_connect
mqttc.on_disconnect = on_disconnect
mqttc.on_message = on_message
mqttc.on_subscribe = on_subscribe
mqttc.on_unsubscribe = on_unsubscribe
mqttc.username_pw_set('usernamehere', 'passwordhere')
mqttc.connect(host='mqttbroker.example.local', port=1883)
mqttc.loop_forever()
This was pretty easy for subscribing.
Here is the code that matters, just need to inject what the script will do.
def on_message(mqttc, userdata, msg):
print('message received...')
print('topic: ' + msg.topic + ', qos: ' +
str(msg.qos) + ', message: ' + str(msg.payload))
Was pretty easy to get this subscribe working, not sure how the publish will work.
Larry,
Looks like you are working OT on this project.
Your postings are way over my head, however I really like the results, “IT WORKS”
Hope to see you at next meet up, will be much clearer when described/demonstrated.
Jim