65 lines
1.9 KiB
Python
Executable File
65 lines
1.9 KiB
Python
Executable File
#!/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(); |