Sensorlogger
Übersicht
Sensorlogger ist ein Programm, um Werte von Sensoren auszulesen, diese in Logbuchtabellen statistisch zusammenzufassen und eintreffende Werte wie auch statistisch ermittelte Werte an einen oder mehrere MQTT-Broker oder eine HomeMatic-CCU weiterzuleiten. Das Programm wurde geschrieben, um die Daten einer mit Tinkerforge-Sensoren ausgestatteten Wetterstation als 15-Minuten-Mittelwerte aufzuzeichnen, ist aber auch für viele andere Szenarien geeignet und sehr flexibel konfigurierbar.
Als Datenquellen werden (ausgewählte) Tinkerforge-Sensoren und JSON-Dateien unterstützt. Außerdem können Werte über Topics von MQTT-Brokern abonniert werden oder über die XML-API einer HomeMatic-CCU ausgelesen werden. Die per MQTT abonnierten Werte können ihrerseits wiederum in JSON-Strings eingebettet sein.
Im Folgenden ist ein kurzes, einfaches Beispiel für eine Logbuch-Datei zu sehen. Hier werden alle 30 Minuten die Mittelwerte für die gemessene Temperatur und Luftfeuchte zusammengefasst.
# Time Temp [°C] Feuchte [%RH] 2021-01-31 15:00:00 2.79615 65.0923 2021-01-31 15:30:00 1.182 70.46 2021-01-31 16:00:00 0.90467 75.36 2021-01-31 16:30:00 0.56 75.8733 2021-01-31 17:00:00 0.0286667 80.5067 2021-01-31 17:30:00 -0.499333 84.76 2021-01-31 18:00:00 -0.926 89.06 2021-01-31 18:30:00 -1.14067 89.1933
Datenakkumulation & Statistische Aufbereitung
Der Sensorlogger ist in der Lage, Tinkerforge-Sensoren und JSON-Werte in angegebenen Zeitintervallen auszulesen und intern zwischenzuspeichern, solange sie für die statistische Auswertung benötigt werden. Nach dem Auslesen können diese Werte sofort an verschiedene MQTT-Broker unter jeweils definierbaren Topics gesendet werden, oder an eine HomeMatic-Zentrale über die XML-API unter Angabe der ISE-ID einer Systemvariablen übertragen werden.
Außerdem können Werte über Interrupts jederzeit empfangen werden, z.B. von Tinkerforge IO-Bricklets oder über abonnierte MQTT-Topics.
Optional können die Messwerte anschließend in sogenannte Logbücher einfließen. Das sind Tabellen in Form von Tab-getrennten Textdateien, die jeweils einen Messzyklus zusammenfassen, z.B. in Form von Mittelwerten, Summen, Minimal- oder Maximalwerten, Frequenzen von Zählern, usw. Der Benutzer stellt sich die einzelnen Logbuchspalten in der Konfiguration selbst zusammen. Die Länge eines Messzyklus kann für jede Logbuchdatei frei gewählt werden. Außerdem können die statistischen Ergebnisse der Logbücher ebenfalls an die MQTT-Broker übermittelt werden, wieder jeweils unter frei wählbaren Topics.