Sensorlogger
Sensorwerte aus JSON-Dateien
Als Quelle für Werte können auch JSON-Strukturen dienen, die entweder lokal im Dateisystem als Dateien vorhanden sind, oder über HTTP(s) erreichbar sind. Um einen solchen Sensor zu konfigurieren, muss der Ort (URL) der JSON-Struktur angegeben werden, sowie die komplette Schlüsselfolge, über die der Wert in der Struktur gefunden wird.
"sensors": [ ... { "sensor_id": "Sensor/JSONTemp", "json_file": "/home/user/wetter.json", "json_key": ["Wetterstation", "Temperatur"], "factor": 1, "offset": 0, "mqtt_publish": "Haus/Wetterstation/Temperatur/aktuell", "homematic_publish": "12345", "rest_period": {"value": 5, "unit": "s"}, "retry_time": {"value": 2, "unit": "s"} }, ... ]
"sensor_id": Allgemeine, eindeutige ID für den Sensor, um später bei der Definition der Logbücher hierauf Bezug nehmen zu können.
"json_file": Pfadangabe der JSON-Datei, die in regelmäßigen Abständen ausgelesen werden soll. Dies kann der Ort einer Datei im lokalen Dateisystem sein, oder eine URL, die per HTTP(s) erreichbar ist.
"json_key": Schlüsselangabe der Position des Wertes im JSON-Baum. Für die obere Ebene genügt eine einfache Zeichenkette. Falls der Wert auf tieferen Ebenen liegt, muss über ein Array von Strings der Schlüsselpfad angegeben werden. Ist der Wert an irgend einer Stelle in ein JSON-Array eingebettet und damit nicht direkt über Schlüsselnamen zugreifbar, können im json_key-Array auch Ganzzahlen verwendet werden, um die entsprechenden Indexpositionen in Arrays anzugeben (Zählung beginnend bei 0).
"factor": Korrekturfaktor, siehe nächster Punkt.
Standardwert: 1
"offset": Korrekturoffset. Der resultierende Wert für den Sensor wird anhand der Formel factor·(Messwert+offset) ermittelt.
Standardwert: 0
"mqtt_publish": Topic, unter dem der ausgelesene und ggf. korrigierte Wert per MQTT verteilt werden soll.
Standardwert: null
"homematic_publish": ISE-ID der Systemvariable, deren Wert auf den ausgelesenen und ggf. korrigierten Sensorwert gesetzt werden soll.
Standardwert: null
"counter": Legt fest, ob es sich bei diesem Sensor um einen reinen Zähler handeln soll. In diesem Fall muss die Variable auf den Wert true gesetzt werden. Der Sensorlogger speichert dann immer nur den letzten Wert des Sensors, und zählt die durchgeführten Messungen. Im Logbuch können später nur die Anzahl der Messungen und Frequenzen ausgewertet werden, keine anderen statistischen Operationen (z.B. Mittelwert). Falls Messungen sehr häufig durchgeführt werden, kann es Arbeitsspeicher sparen, nicht alle Messwerte des aktuellen Messzyklus aufzuheben.
Ereignisse werden allerdings immer gezählt, unabhängig vom Wert dieses Parameters. Dadurch funktioniert die Zähl- und Frequenzstatistik, die evtl. in Logbücher einfließen soll, ebenfalls immer.
Standardwert: false
"rest_period": Ausleseintervall der JSON-Datei. Der numerische Wert wird über "value" angegeben, die Einheit über "unit". Folgende Einheiten sind erlaubt: "ms", "s", "min", "h", "d".
Standardwert: default_rest_period, Minimum: 100 ms
"retry_time": Wiederanlaufzeit für den Sensor. Wenn der Sensor nicht ausgelesen werden kann, wird der nächste Ausleseversuch nach der Wiederanlaufzeit unternommen (sofern sie kürzer ist als die Ruhezeit des Sensors). Der numerische Wert wird über "value" angegeben, die Einheit über "unit". Folgende Einheiten sind erlaubt: "ms", "s", "min", "h", "d".
Standardwert: default_retry_time, Minimum: 100 ms