#!/usr/bin/env python3 import paho.mqtt.client as mqtt import time import ssl version = '5' # or '3' mytransport = 'tcp' # or 'websockets' if version == '5': mqttc = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="myPy", transport=mytransport, protocol=mqtt.MQTTv5) if version == '3': mqttc = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="myPy", transport=mytransport, protocol=mqtt.MQTTv311, clean_session=True) mqttc.username_pw_set("alex", "BatManu#171017") '''client.tls_set(certfile=None, keyfile=None, cert_reqs=ssl.CERT_REQUIRED)''' def on_message(client, obj, message, properties=None): print(" Received message " + str(message.payload) + " on topic '" + message.topic + "' with QoS " + str(message.qos)) ''' def on_connect(client, obj, flags, reason_code, properties): print("reason_code: " + str(reason_code)) def on_publish(client, obj, mid, reason_code, properties): print("mid: " + str(mid)) def on_log(client, obj, level, string): print(string) ''' mqttc.on_message = on_message; ''' client.on_connect = mycallbacks.on_connect; client.on_publish = mycallbacks.on_publish; client.on_subscribe = mycallbacks.on_subscribe; ''' broker = 'mqtt' myport = 1883 if version == '5': from paho.mqtt.properties import Properties from paho.mqtt.packettypes import PacketTypes properties=Properties(PacketTypes.CONNECT) properties.SessionExpiryInterval=30*60 # in seconds mqttc.connect(broker, port=myport, clean_start=mqtt.MQTT_CLEAN_START_FIRST_ONLY, properties=properties, keepalive=60); elif version == '3': mqttc.connect(broker,port=myport,keepalive=60); mqttc.loop_start();