import random 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): if str(msg.payload) == "b'temperature'": publish.single('homeassistant/sensor/temperature/state', str(random.randint(0, 30)), hostname='192.168.188.30', auth={'username': 'mqtt', 'password': 'mqtt'}) 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'}) ''' publish.single( "homeassistant/sensor/temperature/state", payload="23.5", 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()