NEWS
[gelöst]boolean grafisch mit influxdb2 und Grafana
-
Re: InfluxDB2 - Boolean grafisch darstellen
@crunchip, und alle influxDB2 Nutzer
Ich möchte ebenfalls gerne booleans als Graph darstellen, stoße dabei aber auf das Problem:
Eine geloggte Datenreiche aus einem HM-IP Fußbodenaktor, der in Abhängigkeit vom Ventil true oder false anzeigt.
Wird in Grafana mit Flux wie folgt abgefragt:
from(bucket: "iobroker") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "hm-rpc.2.00059709AC2E5B.5.STATE") |> filter(fn: (r) => r["_field"] == "value") |> toInt() |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: "last")
Die Funktion
toInt()
soll gemäß diesem Hinweis ein boolean in 0 oder 1 wandeln.
Das Ergebnis in der Tabellenansicht zeigt schon das Problem:
Und Grafana zeigt:
Hat jemand für dieses Problem vielleicht eine Erklärung und sogar eine Lösung?
Vielen Dank
Jo -
@xxjooo sagte in boolean grafisch mit influxdb2 und Grafana darstellen:
Hat jemand für dieses Problem vielleicht eine Erklärung und sogar eine Lösung?
Vielen Dank
JoDu erzeugst mit "mean" einen Mittelwert, der (wenn Du in einem Zeitfenster sowohl eine 0 als auch eine 1 hast) natürlich 0,5 ergibt. Mir ist nicht ganz klar, was erreicht werden soll, aber ich würde die Zeile mit "aggregateWindow" einfach weglassen.
-
@marc-berg sagte in boolean grafisch mit influxdb2 und Grafana darstellen:
Zeile mit "aggregateWindow" einfach weglassen.
Herrje, das war schnell und einfach:
Jetzt geht es, vielen Dank!!!
-
@xxjooo wie kommst du auf mich?
Hab v2 noch gar nicht aktiv laufen, nur vor einiger Zeit mal rein geschnuppert. -
ich dachte, Du wärst nach Deinem Beitrag in dem oben zitierten thread mittlerweile auch umgestiegen...
-
@xxjooo ne so wie es da auch im Thread steht....noch nicht weiter damit beschäftigt
-
was für eine Anzeige erwartest du?
du hast genau 2 Werte. Evtl kannst du noch die Höhe des Balkens bei true/1 definieren.oder willst du evtl die länge häufigkeit von true oder false in einem zeitabschnitt zeigen? da hab ich keine idee wie man das mit grafana macht.
evtl müsste man den wert auch in einem skript vorberechnen und den daraus resultierenden wert grafisch durch grafana anzeigen lassen.
messung einmal pro sekunde, wenn true +1, wenn false -1, es werden aber immer nur werte der letzten 60 sekunden in die berechnung mit einbezogen. theoretisch müssten dann werte in der bandbreite minimal -60 (60 sekunden lang false) bis maximal +60 (60 sekunden lang true) rauskommen oder werte dazwischen, je nachdem wie häufig dann true und false gemessen wird. -