6. Stats4Lox MQTT Collector

Der MQTT Collector ist eine Datenquelle für Stats4Lox. Durch Konfiguration von Subscriptions im MQTT Collector werden MQTT-Daten direkt in die Influx-Datenbank gespeichert. Der Loxone Miniserver ist dabei nicht beteiligt (Wenn du eigentlich Live-Daten vom Miniserver mit S4L erfassen möchtest, dann verwende MQTT Live.)

Funktionen

  • Push: Daten werden unmittelbar bei jeder MQTT-Übertragung an Influx übermittelt (kein Polling)
  • Automatisches Auflösen von Booleans (true, false)
  • Automatisches Expandieren von JSON-Datensätzen
  • Optionales Aktivieren der Nummern-Extraktion: Eine Zahl innerhalb eines Textes wird übernommen (z.B. "Heute hat es 15.3°C" wird als 15.3 übertragen)
  • Optionales Aktivieren der String-Übertragung: Damit werden nicht nur Zahlenwerte, sondern auch Strings an die Datenbank übergeben.

Einrichtung

Subscription anlegen

Trag in jede Zeile eine Subscription ein. Die Subscription darf die Joker + und # enthalten, achte aber auf die möglicherweise so zustande kommenden Datenmengen!

Json-Datensätze werden automatisch aufgelöst, dass heißt, jedes Attribut einer JSON-Payload wird als separater Wert gespeichert. Du kannst nicht auf einzelne Datensätze einer Json-Payload filtern!

Extract Numbers

Standardmäßig werden nur klar als Nummern erkennbare Datensätze an die Datenbank übertragen. Damit wird in der Standardeinstellung vermieden, dass für Charts unnötige Zeichenketten in der Datenbank gespeichert werden. Mit Extract Numbers wird zusätzlich in Strings nach Zahlenwerten gesucht. Wird innerhalb eines Strings eine Zahl gefunden, wird diese Zahl extrahiert und nur die Zahl an die Datenbank übertragen.

Beispiel 1: "-6.235246°C" wird zur Zahl -6.235246

Beispiel 2: "Input: 12V" wird zur Zahl 12  

Sind mehrere Zahlenwerte im String enthalten, wird die erste Zahl verwendet.

Collect Strings

Der MQTT Collector ignoriert standardmäßig Zeichenketten, weil diese in der Regel nicht in einem Chart benötigt werden.

Ist Collect Strings aktiv, wird der String in der Datenbank gespeichert. Zeichenketten können in Grafana in einer Tabelle dargestellt werden.

Ist zusätzlich auch Extract Numbers aktiv, wird zuerst versucht, eine Nummer zu extrahieren. Wird keine Nummer gefunden, wird die gesamte Zeichenkette gespeichert. 

Speichern

Mit Save and Apply werden die Änderungen übernommen.

Achte darauf, dass deine Subscriptions keine Syntaxfehler enthalten (macht aber bei einem Irrtum nix, fehlerhafte Subscriptions werden am Server ausgesiebt).

Die Änderung wird in ein paar Sekunden übernommen.

Daten in Grafana einrichten

Folgendes Beispiel verwendet zwei Subscriptions:

  • nuki/441612989 (überträgt einen JSON-Datensatz)
  • +/mqttgateway/# (überträgt mehrere interne Statistikwerte und das keepaliveepoch)

Einzelwerte

Einzelne Werte werden jeweils in measurement und field mit dem Topic abgelegt. 

JSON-Datensätze

Dabei wird das measurement entsprechend des Topics gewählt.

Die Einzelwerte des JSON-Datensatzes werden als field gespeichert.

Verschachtelte Hierarchien im JSON werden ausgeflacht und mit Unterstrich _ im field angezeigt.

Weitere Hinweise zum MQTT Collector

  • Der MQTT Collector ist technisch integriert in MQTT Live. Wenn der MQTT Live Dienst nicht läuft, funktioniert auch der MQTT Collector nicht.