35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
import paho.mqtt.client as mqtt
|
|
import paho.mqtt.publish as publish
|
|
|
|
|
|
# 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/#")
|
|
client.subscribe('test/topic')
|
|
client.subscribe('homeassistant/status')
|
|
publish.single('test/topic', 'Hello, MQTT!', hostname='192.168.188.30', auth={'username': 'mqtt', 'password': 'mqtt'})
|
|
|
|
|
|
# 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(protocol=mqtt.MQTTv5)
|
|
mqttc.username_pw_set('mqtt', 'mqtt')
|
|
mqttc.on_connect = on_connect
|
|
mqttc.on_message = on_message
|
|
|
|
mqttc.connect("192.168.188.30", 1883, 60)
|
|
|
|
publish.single('test/topic', 'Hello, MQTT!', hostname='192.168.188.30', auth={'username': 'mqtt', 'password': 'mqtt'})
|
|
publish.single('test/topic/temp', '2', hostname='192.168.188.30', auth={'username': 'mqtt', 'password': 'mqtt'})
|
|
|
|
# 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()
|