diff --git a/README.md b/README.md index 1e83f57..073a6e2 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ Export metrics of a VEGAPULS Air connected via TTN as a prometheus service. ## Install ## +- `zypper install python311-paho-mqtt` - `mkdir /opt/ttn-vegapulsair-exporter/` - `cd /opt/ttn-vegapulsair-exporter/` - import `ttn-vegapulsair-exporter.py` and `config.py` diff --git a/ttn-vegapulsair-exporter.py b/ttn-vegapulsair-exporter.py index ca93ab2..68b3e84 100644 --- a/ttn-vegapulsair-exporter.py +++ b/ttn-vegapulsair-exporter.py @@ -12,7 +12,6 @@ import json import sys import config - scrape_healthy = True startTime = datetime.now() lastMqttReception = datetime.now() @@ -132,8 +131,11 @@ def update_metrics(payload, metadata): scrape_healthy = True mutex.release() -def on_connect(mqttc, obj, flags, rc): - print("\nConnected to MQTT: rc = " + str(rc)) +def on_connect(client, userdata, flags, reason_code, properties): + if reason_code == 0: + print("\nConnected to MQTT: reason_code = " + str(reason_code)) + if reason_code > 0: + print("\nNot connected to MQTT: reason_code = " + str(reason_code)) def on_message(mqttc, obj, msg): #print("\nMessage: " + msg.topic + " " + str(msg.qos)) @@ -150,20 +152,24 @@ def on_message(mqttc, obj, msg): mutex.release() print("Unable to parse uplink") -def on_subscribe(mqttc, obj, mid, granted_qos): - print("\nSubscribed to MQTT: " + str(mid) + " " + str(granted_qos)) +def on_subscribe(client, userdata, mid, reason_codes, properties): + print("\nSubscribed to MQTT: " + str(mid)) def poll_mqtt(mqttc): - while True: - mqttc.loop(10) # seconds timeout + mqttc.loop_forever() + +def on_disconnect(client, userdata, flags, reason_code, properties): + print("disconnect occoured") + client.reconnect() def main(): print("starting ...") - mqttc = mqtt.Client(mqtt.CallbackAPIVersion.VERSION1) + mqttc = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2) mqttc.on_connect = on_connect mqttc.on_subscribe = on_subscribe mqttc.on_message = on_message + mqttc.on_disconnect = on_disconnect mqttc.username_pw_set(config.ttn_user, config.ttn_key) mqttc.tls_set() mqttc.connect(config.ttn_region.lower() + ".cloud.thethings.network", 8883, 60) diff --git a/ttn-vegapulsair-exporter.service b/ttn-vegapulsair-exporter.service index e013c26..fb9868c 100644 --- a/ttn-vegapulsair-exporter.service +++ b/ttn-vegapulsair-exporter.service @@ -4,8 +4,9 @@ After=syslog.target After=network.target [Service] +Restart=on-failure RestartSec=2s -Type=oneshot +Type=simple User=prometheus Group=prometheus WorkingDirectory=/opt/ttn-vegapulsair-exporter/