Grafana Graph true/false

Woran ich lange verzweifelt bin ist das Zeichnen eines Graphen in Grafana, wenn in der Influx-Datenbank ‚true‘ und ‚false‘ stehen statt ‚0‘ oder ‚1‘.  

true/false statements einer Pumpe in grün gezeichnet

Da Grafana ‚time series data‘ verarbeitet, müssen Daten eigentlich numerisch oder null sein. Um die Strings ‚true‘ und ‚false‘ zu visualisieren geht ein Status-Feld, aber leider kein Graph. Grafana beherrscht nur das Value-Mapping und kein Text-Mapping. So komme ich auch nicht weiter.

Der Trick besteht darin, das Vorkommen von ‚true‘ oder ‚false‘ im angegebenen Zeitraum zu zählen. Bei mir schreibt ein Python-Skript alle 4 Minuten die Daten einer Heizung in die Influx-Datenbank. Grafana greift darauf zu.

Der Query-String:

SELECT count("circ1_L_pummp")*20 FROM "heizung" WHERE "circ1_L_pummp" = 'true' AND $timeFilter GROUP BY time(4m) fill(null)

mit count() wird gezählt, wie oft in der database „heizung“ das field ‚circ1_L_pummp‘ den Wert ‚true‘ angenommen hat. Der Zeitfilter wird auf die 4 Minuten gesetzt in denen ich Daten schreibe. Die mathematische Operation ‚*20‘ dient nur dazu den Wert in der Tabelle deutlicher zu machen. Im oberen Bild ist das Ein-/Ausschalten der Zirkulationspumpe im Verhältnis zu den Temperaturen gezeichnet. 

Ich hätte im Python-Skript ja easy aus true/false auch 1/0 machen können. Das hätte ich aber vor Monaten machen müssen als ich das Skript erstellt habe. Erst kürzlich hat mich das Verhalten der Zirkulationspumpe interessiert. Im JSON-File der Heizung steht der string true/false drin.

Alle anderen Lösungen weisen auf den Wechsel der Datenquelle hin. In MySQL gibt es einfachere Möglichkeiten. In meinem Fall läuft auf einem Raspberry Pi ein Influx mit zahlreichen Datenbanken für unterschiedliche Monitoring-Anwendungen. Deshalb habe ich gesucht, wie ich bei Influx bleiben kann.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.