#!/usr/bin/python3 import time import random from datetime import datetime from paho.mqtt import client as mqtt_client broker = '192.168.X.Y' port = 1883 # Generate a Client ID with the subscribe prefix. client_id = f'subscribe-{random.randint(0, 100)}' username = 'mqttuser' password = 'mqttpassword' mqtt = {} def connect_mqtt() -> mqtt_client: def on_connect(client, userdata, flags, rc): if rc == 0: print("Connected to MQTT Broker!") else: print("Failed to connect, return code %d\n", rc) client = mqtt_client.Client(client_id) client.username_pw_set(username, password) client.on_connect = on_connect client.connect(broker, port) return client def subscribe(client: mqtt_client, topic): def on_message(client, userdata, msg): global mqttdict #print(f"Received `{msg.payload.decode()}` from `{msg.topic}` topic") mqtt[msg.topic] = msg.payload.decode() client.subscribe(topic) client.on_message = on_message def run(): client = connect_mqtt() subscribe(client, "#") client.loop_start() time.sleep(1) client.disconnect() #print(mqtt) print('ALL MQTT:') for topic, payload in mqtt.items(): print(f"{topic} - {payload}") if __name__ == '__main__': run()