Metainformationen zur Seite
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
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.