2 Telemetrie
ppfeiffer edited this page 2026-04-19 13:20:42 +02:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Telemetry Monitor

Der Telemetry Monitor fragt Repeater und Room-Server im MeshCore-Netz aktiv nach Telemetrie-Daten ab (Batterie, Temperatur, Luftfeuchte, Luftdruck, GPS) und speichert die Messwerte in der Datenbank. Die Ergebnisse sind im Web-Viewer unter /telemetry einsehbar.


Wie die Datenerfassung funktioniert

Bot  ──req_telemetry_sync()──▶  Repeater (MeshCore-Node)
Bot  ◀──LPP-Telemetrie-Antwort──  Repeater
  1. Bot sendet Telemetrie-Anfrage über das MeshCore-Protokoll (commands.req_telemetry_sync). Das ist kein MQTT oder HTTP — es läuft direkt über das LoRa-Mesh.

  2. Ziel-Node antwortet mit Cayenne Low Power Payload (LPP): Sensordaten werden in einem strukturierten Binärformat zurückgeschickt.

  3. Bot parst und speichert die empfangenen Werte in der Datenbank.

  4. Automatischer Polling-Zyklus: Alle konfigurierten Nodes werden der Reihe nach im eingestellten Intervall abgefragt.

Routing-Modi

Modus Beschreibung
flood Pfad wird vor dem Request zurückgesetzt → Flood-Routing (empfohlen)
direct Nutzt den zuletzt bekannten direkten Pfad zum Node
ef,10 Benutzerdefinierter Pfad als Hex-Bytes (kommagetrennt)

Voraussetzungen am Ziel-Node

Voraussetzung Details
MeshCore-Firmware Der Node muss MeshCore laufen haben
Telemetrie aktiviert In der MeshCore-Node-Konfiguration muss LPP-Telemetrie eingeschaltet sein
Batterie-Monitoring Ist in MeshCore meist standardmäßig aktiv
Umweltsensoren Temperatur, Feuchte, Druck — nur wenn Hardware vorhanden und aktiviert
Node bekannt Der Bot muss den Node als Kontakt kennen (mind. ein empfangenes ADVERT)
Erreichbarkeit Node muss innerhalb des request_timeout antworten

Wichtig: Antwortet der Node nicht innerhalb von request_timeout Sekunden, gilt der Poll als fehlgeschlagen. Bei vielen Hops ggf. Timeout erhöhen.

Erfasste Messwerte

Wert LPP-Typ Einheit
Temperatur temperature °C
Luftfeuchte humidity %
Luftdruck barometer / pressure hPa
Batteriespannung voltage V
Batterieladung berechnet aus Spannung (3,04,2 V) %
GPS-Position gps Lat/Lon/Alt

Konfiguration

config.ini

[TelemetryMonitor]
enabled                  = true
poll_interval_minutes    = 180      # Abfrageintervall in Minuten
request_timeout          = 60       # Maximale Wartezeit auf Antwort (Sekunden)
max_retries              = 3        # Wiederholungsversuche bei Fehler
retry_delay_seconds      = 30       # Pause zwischen Wiederholungen
delay_first_poll         = true     # Ersten Poll nach Bot-Start verzögern
default_path_mode        = flood    # flood | direct | benutzerdefinierter Hex-Pfad

# Datenbank (wird automatisch angelegt)
database_path            = telemetry_data.db

# MQTT (optional  für On-Demand-Anfragen über externe Systeme)
mqtt_enabled             = false
mqtt_topic_request       = meshcore/telemetry/request
mqtt_topic_response      = meshcore/telemetry/response

# Webhook (optional  Benachrichtigung bei niedrigem Akkustand)
webhook_enabled          = false
webhook_url              =
webhook_interval_minutes = 0        # 0 = nur bei Akkuwarnung
battery_threshold        = 20.0     # Akkuwarnung unter diesem Wert (%)

Wichtige Parameter

poll_interval_minutes Wie oft alle Nodes abgefragt werden. Bei vielen Nodes den Wert erhöhen, damit einzelne Polls nicht zu dicht aufeinanderfolgen.

request_timeout Bei Nodes mit langen Pfaden (viele Hops) diesen Wert erhöhen. Faustregel: +10 Sekunden pro zusätzlichem Hop.

default_path_mode flood ist die sicherste Wahl. Nur auf direct wechseln wenn der Pfad stabil und bekannt ist.


Einrichtung im Web-Viewer

  1. Seite /telemetry aufrufen
  2. Node hinzufügen Name muss exakt dem Node-Namen im Kontaktbuch entsprechen (wie er per ADVERT übertragen wird)
  3. Node per Toggle aktivieren
  4. Optional: Jetzt abfragen für einen sofortigen manuellen Poll

Der gewählte Node muss als Kontakt bekannt sein. Neue Nodes erscheinen im Dropdown sobald der Bot ein ADVERT von ihnen empfangen hat.


Häufige Probleme

Kein Telemetrie-Ergebnis (Timeout)

  • Node antwortet nicht innerhalb von request_timeout → Wert erhöhen
  • Node ist nicht erreichbar (zu weit entfernt, kein Pfad)
  • Node-Name stimmt nicht mit dem ADVERT-Namen überein

Node erscheint nicht im Dropdown

  • Noch kein ADVERT vom Bot empfangen → Node muss mindestens einmal senden
  • Node-Name in der Kontaktliste prüfen (/contacts)

Batterie-Prozent unplausibel

  • Berechnung basiert auf Lithium-Zell-Spannung (3,04,2 V)
  • Bei anderen Akkutypen weicht der Prozentwert ab
  • Roh-Spannung ist immer korrekt

MQTT On-Demand-Anfragen funktionieren nicht

  • mqtt_enabled = true setzen
  • Globales MQTT-Flag in /settings/mqtt prüfen (muss aktiviert sein)
  • MQTT-Broker-Verbindung testen