Hallo,
ich habe folgendes Log, von dem ich gerne Sensor 1 und Sensor 2 die Temperatur und Luftfeuchtigkeit plotten möchte.
2019-03-04_15:01:22 mqttTempSensor sensor1: {"temperature":22.95,"linkquality":134,"humidity":53.04,"pressure":981,"battery":100,"voltage":3005}
2019-03-04_15:04:40 mqttTempSensor sensor2: {"temperature":21.4,"linkquality":42,"humidity":54.35,"pressure":981,"battery":100,"voltage":3005}
2019-03-04_15:04:40 mqttTempSensor transmission-state: incoming publish received
Wie muss ich beim SVG Plot die Felder Column, Regexp,DefaultValue und Function ausfüllen, damit er die werte aus den String extrahiert? wie definiert man beispielsweise dass er den String zwischen "temperature:" und "," auswählt?
Eigentlich konvertiert man diese Daten in Einzel-Readings beim Empfang (z.Bsp. macht MQTT2_DEVICE das bei autocreate mit json2nameValue automatisch), und man protokolliert die Einzel-Readings. Wen man unbedingt mehrere Werte in einer Zeile haben will, dann kann man mit userReadings diese wieder zusammenstellen, dann sind diese Zeilen mit SVG einfach verdaulich.
In diesem Fall muss man regexp bemuehen. D.h. im SVG-Editor traegt man ein:
- in der Filter Spalte mqttTempSensor.sensor1:
- in der Function Spalte $fld[3]=~m/"temperature":([\d.]*)/?$1:0
usw.
Im sysmon RAM plot wird auch ein log Eintrag auf 3 Linien geteilt.
Schau doch dort ab wie es geht.
Gesendet von meinem Doogee S60 mit Tapatalk