NEWS
Best practice gesucht: JSON-Datenpunkte in influxdb2
-
Nur als Beispiel, um mein Problem zu verdeutlichen:
Ich habe einen 3-Phasen-Meter Shelly Pro 3EM installiert. Er liefert seine Werte an den MQTT-Broker in einem Topic namens shellypro3em/events/rpc ab. Der Topic wird mittels des MQTT-Adapters in ioBroker als Datenpunkt bereitgestellt. Der Wert dieses Datenpunktes ist eine JSON-Struktur, wie zum Beispiel die folgende (etwas gekürzt){ "src":"shellypro3em-abcdef", "dst":"shellypro3em/events", "method":"NotifyEvent", "params":{ "ts":1682617620.52, "events":[ { "component":"emdata:0", "id":0, "event":"data", "ts":1682617560.00, "data":{ "ts":1682617560, "period":60, "values":[ [ 3.2128, 3.2170, 0.0000, 0.0000, 0.0000, ... ]]}}]}
In dem values-Array stehen eingentlich die Messwerte an denen ich interessiert bin und die ich visualisieren möchte (zuerst in influxdb und letzten Endes in Grafana).
Wenn ich in den Custom Settings des Datenpunktes ein Logging in die influxdb aktiviere, funktioniert das zwar, aber mit der JSON-Datenstruktur kann influx nix anfangen.Nun meine Frage: Wie macht man das am besten? Ich sehe die folgenden Möglichkeiten:
- in iobroker mittels Skript die JSON-Struktur in einzelne Werte zerlegen und diese dann als separate Datenpunkte schreiben. Nur die neuen Datenpunkte loggen lassen in influxdb und nicht die JSON-Struktur
- In InfluxDB mittels Tasks andere Measurements (quasi Derivate) schaffen, die die einzelnen Messwerte beinhalten (ich hoffe, das kann influxdb überhaupt)
- ???
Übersehe ich noch eine Möglichkeit?
Nur der Klarheit halber, ich fange erst mit influxdb und Grafana an - habe also keine Ahnung.
-
https://forum.iobroker.net/post/982009
Den Shelly Adapter nutzen, der die Daten gleich auseinandernimmt?
-
@marc-berg
Danke für deine Antwort.
Dein Ansatz, den Shelly Adapter zu benutzen, geht natürlich in diesem Fall auch. Es gibt aber auch noch andere Adapter, die JSON Datenpunkte liefern. Daher meine Frage, wie ihr Profis das machen würden, wenn die Shelly-Option nicht zur Verfügung steht. -
Du kannst einfach über einen alias Dir die Werte extrahieren und nur den Alias Datenpunkt in der Influx speichern. Beispiele siehe hier: https://forum.iobroker.net/post/980575
-
@mickym Danke. Das war einfach.