2025-09-11 15:21:03 +02:00
|
|
|
import random
|
|
|
|
|
2025-09-11 12:57:12 +02:00
|
|
|
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.
|
2025-09-11 13:54:49 +02:00
|
|
|
#client.subscribe("$SYS/#")
|
|
|
|
client.subscribe('test/topic')
|
2025-09-11 12:57:12 +02:00
|
|
|
client.subscribe('homeassistant/status')
|
2025-09-11 13:54:49 +02:00
|
|
|
publish.single('test/topic', 'Hello, MQTT!', hostname='192.168.188.30', auth={'username': 'mqtt', 'password': 'mqtt'})
|
2025-09-11 12:57:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
# The callback for when a PUBLISH message is received from the server.
|
|
|
|
def on_message(client, userdata, msg):
|
2025-09-11 15:21:03 +02:00
|
|
|
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'})
|
2025-09-11 12:57:12 +02:00
|
|
|
|
|
|
|
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'})
|
|
|
|
|
2025-09-11 15:21:03 +02:00
|
|
|
'''
|
|
|
|
publish.single(
|
|
|
|
"homeassistant/sensor/temperature/state",
|
|
|
|
payload="23.5",
|
|
|
|
hostname="192.168.188.30",
|
|
|
|
auth={"username": "mqtt", "password": "mqtt"}
|
|
|
|
)
|
|
|
|
'''
|
2025-09-11 12:57:12 +02:00
|
|
|
# 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()
|