From 5f3031de9f8c02b5973884a5e6ff5bf4c4853ac7 Mon Sep 17 00:00:00 2001 From: Gleb Tcivie Date: Wed, 3 Jul 2024 11:42:48 +0300 Subject: [PATCH 1/2] Update to try and use newer file structure --- .idea/meshtastic-metrics-exporter.iml | 5 ++++- exporter/client_details.py | 8 +++++-- exporter/processor_base.py | 10 +++++++-- exporter/processors.py | 30 ++++++++++++++++++++------- main.py | 10 +++++++-- requirements.txt | 4 ++-- 6 files changed, 50 insertions(+), 17 deletions(-) diff --git a/.idea/meshtastic-metrics-exporter.iml b/.idea/meshtastic-metrics-exporter.iml index 2c80e12..eb9ce46 100644 --- a/.idea/meshtastic-metrics-exporter.iml +++ b/.idea/meshtastic-metrics-exporter.iml @@ -4,7 +4,10 @@ - + + + \ No newline at end of file diff --git a/exporter/client_details.py b/exporter/client_details.py index 3e462d0..73f2326 100644 --- a/exporter/client_details.py +++ b/exporter/client_details.py @@ -1,5 +1,9 @@ -from meshtastic.config_pb2 import Config -from meshtastic.mesh_pb2 import HardwareModel +try: + from meshtastic.config_pb2 import Config + from meshtastic.mesh_pb2 import HardwareModel +except ImportError: + from meshtastic.protobuf.config_pb2 import Config + from meshtastic.protobuf.mesh_pb2 import HardwareModel class ClientDetails: diff --git a/exporter/processor_base.py b/exporter/processor_base.py index 3fc03a3..ce2b307 100644 --- a/exporter/processor_base.py +++ b/exporter/processor_base.py @@ -3,8 +3,14 @@ import os from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes -from meshtastic.mesh_pb2 import MeshPacket, Data, HardwareModel -from meshtastic.portnums_pb2 import PortNum + +try: + from meshtastic.mesh_pb2 import MeshPacket, Data, HardwareModel + from meshtastic.portnums_pb2 import PortNum +except ImportError: + from meshtastic.protobuf.mesh_pb2 import MeshPacket, Data, HardwareModel + from meshtastic.protobuf.portnums_pb2 import PortNum + from prometheus_client import CollectorRegistry, Counter, Histogram, Gauge from psycopg_pool import ConnectionPool diff --git a/exporter/processors.py b/exporter/processors.py index c33fc4c..0b566c8 100644 --- a/exporter/processors.py +++ b/exporter/processors.py @@ -4,14 +4,28 @@ from venv import logger import psycopg import unishox2 -from meshtastic.admin_pb2 import AdminMessage -from meshtastic.mesh_pb2 import Position, User, HardwareModel, Routing, Waypoint, RouteDiscovery, NeighborInfo -from meshtastic.mqtt_pb2 import MapReport -from meshtastic.paxcount_pb2 import Paxcount -from meshtastic.portnums_pb2 import PortNum -from meshtastic.remote_hardware_pb2 import HardwareMessage -from meshtastic.storeforward_pb2 import StoreAndForward -from meshtastic.telemetry_pb2 import Telemetry, DeviceMetrics, EnvironmentMetrics, AirQualityMetrics, PowerMetrics + +try: + from meshtastic.admin_pb2 import AdminMessage + from meshtastic.mesh_pb2 import Position, User, HardwareModel, Routing, Waypoint, RouteDiscovery, NeighborInfo + from meshtastic.mqtt_pb2 import MapReport + from meshtastic.paxcount_pb2 import Paxcount + from meshtastic.portnums_pb2 import PortNum + from meshtastic.remote_hardware_pb2 import HardwareMessage + from meshtastic.storeforward_pb2 import StoreAndForward + from meshtastic.telemetry_pb2 import Telemetry, DeviceMetrics, EnvironmentMetrics, AirQualityMetrics, PowerMetrics +except ImportError: + from meshtastic.protobuf.admin_pb2 import AdminMessage + from meshtastic.protobuf.mesh_pb2 import Position, User, HardwareModel, Routing, Waypoint, RouteDiscovery, \ + NeighborInfo + from meshtastic.protobuf.mqtt_pb2 import MapReport + from meshtastic.protobuf.paxcount_pb2 import Paxcount + from meshtastic.protobuf.portnums_pb2 import PortNum + from meshtastic.protobuf.remote_hardware_pb2 import HardwareMessage + from meshtastic.protobuf.storeforward_pb2 import StoreAndForward + from meshtastic.protobuf.telemetry_pb2 import Telemetry, DeviceMetrics, EnvironmentMetrics, AirQualityMetrics, \ + PowerMetrics + from prometheus_client import CollectorRegistry from psycopg_pool import ConnectionPool diff --git a/main.py b/main.py index a932302..2236d7b 100644 --- a/main.py +++ b/main.py @@ -4,8 +4,14 @@ from datetime import datetime import paho.mqtt.client as mqtt from dotenv import load_dotenv -from meshtastic.mesh_pb2 import MeshPacket -from meshtastic.mqtt_pb2 import ServiceEnvelope + +try: + from meshtastic.mesh_pb2 import MeshPacket + from meshtastic.mqtt_pb2 import ServiceEnvelope +except ImportError: + from meshtastic.protobuf.mesh_pb2 import MeshPacket + from meshtastic.protobuf.mqtt_pb2 import ServiceEnvelope + from paho.mqtt.enums import CallbackAPIVersion from prometheus_client import CollectorRegistry, start_http_server from psycopg_pool import ConnectionPool diff --git a/requirements.txt b/requirements.txt index 3773ecb..bebeb52 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,8 +1,8 @@ paho-mqtt~=2.1.0 python-dotenv~=1.0.1 -meshtastic~=2.3.11 prometheus_client~=0.20.0 unishox2-py3~=1.0.0 cryptography~=42.0.8 psycopg~=3.1.19 -psycopg_pool~=3.2.2 \ No newline at end of file +psycopg_pool~=3.2.2 +meshtastic>=2.3.13 \ No newline at end of file From b68ffddce6ebee954427950f0930c7c5608c1331 Mon Sep 17 00:00:00 2001 From: Gleb Tcivie Date: Wed, 3 Jul 2024 11:43:44 +0300 Subject: [PATCH 2/2] Keep support for ~2.3.12 and 2.3.13 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index bebeb52..4ce87a1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,4 +5,4 @@ unishox2-py3~=1.0.0 cryptography~=42.0.8 psycopg~=3.1.19 psycopg_pool~=3.2.2 -meshtastic>=2.3.13 \ No newline at end of file +meshtastic~=2.3.13 \ No newline at end of file