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_TOPIC='msh/israel/#'
|
||||||
MQTT_IS_TLS=false
|
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
|
# Exporter configuration
|
||||||
## Hide source data in the exporter (default: false)
|
## Hide source data in the exporter (default: false)
|
||||||
MESH_HIDE_SOURCE_DATA=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
|
import paho.mqtt.client as mqtt
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
from constants import callback_api_version_map, protocol_map
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from meshtastic.mesh_pb2 import MeshPacket
|
from meshtastic.mesh_pb2 import MeshPacket
|
||||||
from meshtastic.mqtt_pb2 import ServiceEnvelope
|
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)
|
start_http_server(int(os.getenv('PROMETHEUS_COLLECTOR_PORT', 8000)), registry=registry)
|
||||||
|
|
||||||
# Create an MQTT client
|
# 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(
|
mqtt_client = mqtt.Client(
|
||||||
callback_api_version=CallbackAPIVersion.VERSION2,
|
callback_api_version=callback_api_version_map.get(mqtt_callback_api_version, mqtt.CallbackAPIVersion.VERSION2),
|
||||||
protocol=mqtt.MQTTv5
|
protocol=protocol_map.get(mqtt_protocol, mqtt.MQTTv5)
|
||||||
)
|
)
|
||||||
mqtt_client.on_connect = handle_connect
|
mqtt_client.on_connect = handle_connect
|
||||||
mqtt_client.on_message = handle_message
|
mqtt_client.on_message = handle_message
|
||||||
|
|
Loading…
Reference in a new issue