sub_02.py

#! /usr/bin/python3
# ===================================================================
# MQTT Publish
# -------------------------------------------------------------------
# Python Client Documentation
# //www.eclipse.org/paho/index.php?page=clients/python/docs/index.php
# -------------------------------------------------------------------
# Simple Python MQTT Publish and Subscribe Example Script
# http://www.steves-internet-guide.com/python-mqtt-publish-subscribe/
# -------------------------------------------------------------------
# Python MQTT Client Connections– Working with Connections
# http://www.steves-internet-guide.com/client-connections-python-mqtt/
# ===================================================================

import paho.mqtt.client as mqtt
import time
import sys

broker = '192.168.1.77'
topic  = 'sensors/sensor2'


# ---- define callbacks

def on_message(client, userdata, message):
    time.sleep(1)
    m = str(message.payload.decode("utf-8"))
    print(f"received message = {m}")

def on_connect(client, userdata, flags, rc):
    if rc==0:
        print(f"connected OK Returned code={rc}")
    else:
        print(f"Bad connection Returned code={rc}")
        sys.exit()


# ---- main

print(f"broker: {broker}")
print(f"topic : {topic}")
print()

print("Create client ...")
client = mqtt.Client("mqtt-client")

print("Bind on_message callback ...")
client.on_message=on_message

print("Bind on_connect callback ...")
client.on_connect=on_connect

print("Connect to broker ...")
client.connect(broker)

#print("Subscribe to topic ...")
#client.subscribe(topic)

print("Start loop to procss messages ...")
client.loop_start()

print("Subscribe to topic ...")
client.subscribe(topic)

print("Sleep ...")
time.sleep(4)

print("Disconnect ...")
client.disconnect()

print("Stop loop ...")
client.loop_stop()