NEWS
[Gelöst] Daten von MQTT nach Influx?
-
Hallo,
ich versuche gerade, von fhem auf iobroker umzusteigen und stehe vor dem Problem, die Influx-DB mit Werten zu füllen.Ich bekomme vom mqtt-Broker (mosquitto) Datensätze folgenden Formats geliefert:
{"wWComfort":"Hot","wWSelTemp":57,"wWDesiredTemp":70,"selFlowTemp":46,"selBurnPow":100,"curBurnPow":0,"pumpMod":33,"wWCircPump":0,"outdoorTemp":2.5,"wWCurTmp":52.5,"wWCurFlow":0,"curFlowTemp":40.9,"switchTemp":0,"wWActivated":"on","wWOnetime":"off","burnGas":"off","flameCurr":0,"heatPmp":"on","fanWork":"off","ignWork":"off","wWCirc":"off","heating_temp":80,"pump_mod_max":100,"pump_mod_min":10,"wWHeat":"off","wWStarts":1453,"wWWorkM":22021,"UBAuptime":2657573,"burnStarts":119821,"burnWorkMin":348923,"heatWorkMin":326902,"ServiceCode":"0Y","ServiceCodeNumber":204}Mittels des Influx-Adapters klappt es auch, diese Datensätze direkt in die DB zu speichern. Allerdings ist das Format für die Auswertungen wohl weniger geeignet.
Mir schwebt deshalb vor, mit Node-Red die Sätze vom mqtt-Broker abzuholen, mittels einer Funktion zu zerlegen und die relevanten Daten einzeln in der passenden Struktur in die Influx-DB zu schreiben.
Nur mag mir das mit meinem derzeitigen (geringen) Node-Red und Influx-DB Know-How nicht gelingen.
Infos hierzu habe ich im Forum und Doku auch nicht so richtig gefunden...
Kann mir hier jemand weiterhelfen?
Wie müßte ich z.B. einen Datensatz für "curFlowTemp" gestalten, um über die Influx-DB die Historie dieser Datensätze abspeichern zu können und wie bekomme ich dann die Datensätze in die DB?Vielen Dank schon mal für eure Hilfe!
Martin -
Hallo,
ich versuche gerade, von fhem auf iobroker umzusteigen und stehe vor dem Problem, die Influx-DB mit Werten zu füllen.Ich bekomme vom mqtt-Broker (mosquitto) Datensätze folgenden Formats geliefert:
{"wWComfort":"Hot","wWSelTemp":57,"wWDesiredTemp":70,"selFlowTemp":46,"selBurnPow":100,"curBurnPow":0,"pumpMod":33,"wWCircPump":0,"outdoorTemp":2.5,"wWCurTmp":52.5,"wWCurFlow":0,"curFlowTemp":40.9,"switchTemp":0,"wWActivated":"on","wWOnetime":"off","burnGas":"off","flameCurr":0,"heatPmp":"on","fanWork":"off","ignWork":"off","wWCirc":"off","heating_temp":80,"pump_mod_max":100,"pump_mod_min":10,"wWHeat":"off","wWStarts":1453,"wWWorkM":22021,"UBAuptime":2657573,"burnStarts":119821,"burnWorkMin":348923,"heatWorkMin":326902,"ServiceCode":"0Y","ServiceCodeNumber":204}Mittels des Influx-Adapters klappt es auch, diese Datensätze direkt in die DB zu speichern. Allerdings ist das Format für die Auswertungen wohl weniger geeignet.
Mir schwebt deshalb vor, mit Node-Red die Sätze vom mqtt-Broker abzuholen, mittels einer Funktion zu zerlegen und die relevanten Daten einzeln in der passenden Struktur in die Influx-DB zu schreiben.
Nur mag mir das mit meinem derzeitigen (geringen) Node-Red und Influx-DB Know-How nicht gelingen.
Infos hierzu habe ich im Forum und Doku auch nicht so richtig gefunden...
Kann mir hier jemand weiterhelfen?
Wie müßte ich z.B. einen Datensatz für "curFlowTemp" gestalten, um über die Influx-DB die Historie dieser Datensätze abspeichern zu können und wie bekomme ich dann die Datensätze in die DB?Vielen Dank schon mal für eure Hilfe!
Martin -
In node-red habe ich die Vereinzelung schon hinbekommen und konnte auch schon was auf eine Datei was raus schreiben.
var msg1 = {};
var msg2 = {};msg1.payload = {"curFlowTemp": msg.payload.curFlowTemp};
msg2.payload = [{"curFlowTemp": msg.payload.curFlowTemp, "flameCurr": msg.payload.flameCurr, "pumpMod": msg.payload.pumpMod}];return [msg1,msg2];
Wie bekomme ich die erzeugten JSON-Daten dann aber in die Influx-DB?
Gibts da einen Influx-DB-Out Connector, oder geht das mit dem iobroker-out Connector (wie?).
Oder schreibe ich die Datensätze auf ein eigenes iobroker-Objekt raus und aktiviere dann bei dem den Influx-DB Connector?Oder muß ich eher über Blockly gehen?
Martin
-
Mittlerweile habe ich es geschafft, die Daten von MQTT in die Influx-DB zu bringen - mittels eines zusätzlich installierten Node-Red Nodes für die Influx-DB.
Die Daten lassen sich nun mit der Influx-Kommandozeile korrekt selektieren und anzeigen.
Jetzt kommt das nächste Problem:
Wie bekomme ich die Daten in die Flot-Visualisierung rein?
Wenn ich die influxdb.0 Instanz als Datenquelle angebe, erhalte ich keine Vorschläge zur Auswahl einer ID...Hat da jemand einen Tip?
Martin
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
