Files
ASE/mqtt_pub.py
2024-12-26 15:47:21 +01:00

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();