#!/usr/bin/python3
# ===================================================================
# From: www.steves-internet-guide.com/into-mqtt-python-client/
# ===================================================================
import paho.mqtt.client as mqtt
import time
broker   = 'localhost'
instance = 'tom'
topic    = '/test/house/main_light' 
# -------------------------------------------------------------------
# ---- callback function
# ---- it prints the received messages
# -------------------------------------------------------------------
def on_message(client, userdata, message):
    print('----------------------------------------------')
    print("message received ",str(message.payload.decode("utf-8")))
    print("message topic=",message.topic)
    print("message qos=",message.qos)
    print("message retain flag=",message.retain)
    print('----------------------------------------------')
# -------------------------------------------------------------------
# ---- main
# -------------------------------------------------------------------
print(f'creating new client instance {instance}')
client = mqtt.Client("tom")
print('attach function to callback')
client.on_message=on_message
print(f'connecting to broker {broker}')
client.connect(broker)
print('start loop')
client.loop_start()
print(f'subscribing to topic {topic}')
client.subscribe(topic,qos=0)
print('publish message to topic')
client.publish(topic,'ABC')
time.sleep(4)
client.loop_stop()