Added support for configuring MQTT version for connection
This commit is contained in:
parent
189bc4ba38
commit
0d4547e57d
8
.env
8
.env
|
@ -16,6 +16,14 @@ MQTT_KEEPALIVE=60
|
|||
MQTT_TOPIC='msh/israel/#'
|
||||
MQTT_IS_TLS=false
|
||||
|
||||
# MQTT protocol version (default: MQTTv5) the public MQTT server supports MQTTv311
|
||||
# Options: MQTTv311, MQTTv31, MQTTv5
|
||||
MQTT_PROTOCOL=MQTTv311
|
||||
|
||||
# MQTT callback API version (default: VERSION2) the public MQTT server supports VERSION2
|
||||
# Options: VERSION1, VERSION2
|
||||
MQTT_CALLBACK_API_VERSION=VERSION2
|
||||
|
||||
# Exporter configuration
|
||||
## Hide source data in the exporter (default: false)
|
||||
MESH_HIDE_SOURCE_DATA=false
|
||||
|
|
13
constants.py
Normal file
13
constants.py
Normal file
|
@ -0,0 +1,13 @@
|
|||
import paho.mqtt.client as mqtt
|
||||
from paho.mqtt.enums import CallbackAPIVersion
|
||||
|
||||
protocol_map = {
|
||||
'MQTTv31': mqtt.MQTTv31,
|
||||
'MQTTv311': mqtt.MQTTv311,
|
||||
'MQTTv5': mqtt.MQTTv5
|
||||
}
|
||||
|
||||
callback_api_version_map = {
|
||||
'VERSION1': CallbackAPIVersion.VERSION1,
|
||||
'VERSION2': CallbackAPIVersion.VERSION2
|
||||
}
|
8
main.py
8
main.py
|
@ -5,6 +5,8 @@ from datetime import datetime
|
|||
import paho.mqtt.client as mqtt
|
||||
from dotenv import load_dotenv
|
||||
|
||||
from constants import callback_api_version_map, protocol_map
|
||||
|
||||
try:
|
||||
from meshtastic.mesh_pb2 import MeshPacket
|
||||
from meshtastic.mqtt_pb2 import ServiceEnvelope
|
||||
|
@ -87,9 +89,11 @@ if __name__ == "__main__":
|
|||
start_http_server(int(os.getenv('PROMETHEUS_COLLECTOR_PORT', 8000)), registry=registry)
|
||||
|
||||
# Create an MQTT client
|
||||
mqtt_protocol = os.getenv('MQTT_PROTOCOL', 'MQTTv5')
|
||||
mqtt_callback_api_version = os.getenv('MQTT_CALLBACK_API_VERSION', 'VERSION2')
|
||||
mqtt_client = mqtt.Client(
|
||||
callback_api_version=CallbackAPIVersion.VERSION2,
|
||||
protocol=mqtt.MQTTv5
|
||||
callback_api_version=callback_api_version_map.get(mqtt_callback_api_version, mqtt.CallbackAPIVersion.VERSION2),
|
||||
protocol=protocol_map.get(mqtt_protocol, mqtt.MQTTv5)
|
||||
)
|
||||
mqtt_client.on_connect = handle_connect
|
||||
mqtt_client.on_message = handle_message
|
||||
|
|
Loading…
Reference in a new issue