# python 3.6 import random import time from paho.mqtt import client as mqtt_client name = 'test' broker = '192.168.0.196' port = 1883 topic = "home/switch/test/config" # generate client ID with pub prefix randomly client_id = f'python-mqtt-{random.randint(0, 1000)}' username = 'mqtt' password = 'falrenforbreakfast' def connect_mqtt(): 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 publish(client): msg = '{"name": "test", "device_class": "switch", "state_topic": "home/switch/test/state"}' result = client.publish(topic, msg) # result: [0, 1] status = result[0] if status == 0: print(f"Send `{msg}` to topic `{topic}`") else: print(f"Failed to send message to topic {topic}") def run(): client = connect_mqtt() client.loop_start() publish(client) if __name__ == '__main__': run()