Seite 2 von 3
Re: [V1.6.0RC6] Nutzung von Variablen in Grafana Parallelinstanz [v7.2.2]
Verfasst: Mi Okt 28, 2020 8:56 am
von Robosoc
Hallo Jens,
ja sorry, meine Lösung mit dem now/d hat nur aufgezeigt, wie Du das gesamte Dashbord auf den heutigen Tag einschränken kannst. Aber das hilft Dir ja nicht.
Im Query scheint man now()/d nicht verwenden zu können. Insofern scheint mir Sensej's Vorschlag zielführend zu sein....
@Sensej Aber müsste die Funktion max(*) nicht durch die Funktion last(*) ersetzt werden?

Re: [V1.6.0RC6] Nutzung von Variablen in Grafana Parallelinstanz [v7.2.2]
Verfasst: Mi Okt 28, 2020 7:17 pm
von blaubaerli
Hallo Sven,
die letztlich genutzte Funktion hängt dann ja wieder konkret von der Befüllung der relevanten Zeitserie ab. Ich habe aktuell da einen Regenmesser dran, der bei einer gewissen Regenmenge einen Kontakt schließt. Das habe ich an einem Binäreingang der als Zähler konfiguriert ist und bei jedem Puls den dann jeweils neuen Zählerstand auf den Bus sendet. Der Zählerstand wird nun aktuell als Rohdaten in eine Zeitreihe geschriben. Parallel schreibe ich derzeit über eine Standard-Multiplikationslogik auch die sich daraus ergebende bisher gefallene Gesamtregenmenge in Millimeter bzw. Liter pro Quadratmeter. Je nach Auswahl der Zeitserie für das Grafana-Diagramm ist nun das ein oder andere zu tun. Konkret dann ja hier sogar ggf. eine Kombi von last und difference.
Beste Grüße
Jens
Re: [V1.6.0RC6] Nutzung von Variablen in Grafana Parallelinstanz [v7.2.2]
Verfasst: Mi Okt 28, 2020 7:54 pm
von blaubaerli
Hi Juri,
ich gebe zu, dass ich im SQL echt nicht der Fitteste bin, daher habe ich mir deine Query mal etwas filetieren müssen...
Sensej hat geschrieben: ↑Di Okt 27, 2020 10:52 pm
select max(*) from (Select sum(*) from "TS00018" WHERE time > now() - 2d GROUP BY time(1d) limit 2)
Aber wenn now() jetzt auf 19:45 des heutigen Tages steht, dann steht now()-2d folglich auf vorgestern 19:45. Damit hast du aber die Einträge von vorgestern 19:45 bis gestern 00:00 in der Treffermenge.
Es ist aber unabhängig vom konkreten Wert von now() der Zeitrahmen Gestern(00:00) bis Gestern(23:59) von Relevanz. Ich bekomme auf diesen Wegen mit dem erzwungenen Basisbezug auf now() nicht die Mitternachtsgrenze ins Spiel, oder habe ich in deiner Query noch was entscheidendes übersehen?
Danke für eure Hilfe.
Beste Grüße
Jens
Re: [V1.6.0RC6] Nutzung von Variablen in Grafana Parallelinstanz [v7.2.2]
Verfasst: Mi Okt 28, 2020 8:30 pm
von blaubaerli
So langsam vermute ich deinen Ansatz zu verstehen....
Re: [V1.6.0RC6] Nutzung von Variablen in Grafana Parallelinstanz [v7.2.2]
Verfasst: Mi Okt 28, 2020 9:11 pm
von Sensej
blaubaerli hat geschrieben: ↑Mi Okt 28, 2020 7:54 pm
Sensej hat geschrieben: ↑Di Okt 27, 2020 10:52 pm
select max(*) from (Select sum(*) from "TS00018" WHERE time > now() - 2d GROUP BY time(1d) limit 2)
Aber wenn now() jetzt auf 19:45 des heutigen Tages steht, dann steht now()-2d folglich auf vorgestern 19:45. Damit hast du aber die Einträge von vorgestern 19:45 bis gestern 00:00 in der Treffermenge.
Danke für eure Hilfe.
Beste Grüße
Jens
Hallo Jens,
in der anderen Datenbank würde ich es anders machen aber mit der Influx-DB habe ich noch nie was zu tun gehabt und ich habe keinen direkten Weg gefunden sowas zu machen. Das Elabnet-Team hat bestimmt einen besseren Vorschlag.
Ich versuche meinen zu erklären
Weil ich keinen Weg gefunden habe Datensätze vom letzten Tag von 24:00 bis 24:00 zu selektieren, habe ich es so gelöst.
Zuerst selektiert man alle Datensätze für die letzten 48 Stunden.
Hier sind die Datensätze von 28.10.2020, 27.10.2020 und 26.10.2020 drin.
Die Tage 28.10.2020 und 26.10.2020 sind nicht vollzählig, aber 27.10.2020 schon.
Select * from "TS00018" WHERE time > now() - 2d
Jetzt machen wir Gruppierung pro Tag und kriegen insgesamt drei Datensätze mit der Summe raus
Select sum(*) from "TS00018" WHERE time > now() - 2d GROUP BY time(1d)
Aus der Gesamtmenge 2 selektieren wir den letzten -> Tipp von Sven
select last(*) from (Select sum(*) from "TS00018" WHERE time > now() - 2d GROUP BY time(1d) limit 2)
Vorschlag: Installiere in Grafana das Influx-Plugin. Da kannst die SQL-Befehle absetzen und sehen was genau raus kommt.
Zur Prüfung kannst du zuerst die Abfrage "Select * from "TS00018" WHERE time > now() - 2d " ausführen und alle Werte für den 27.10.2020 manuell addieren, falls nicht viele hast und dann prüfen, ob die SQL-Abfrage(select last(*) from (Select sum(*) from "TS00018" WHERE time > now() - 2d GROUP BY time(1d) limit 2)) den richtigen Wert rausspuckt.
MfG Juri
Re: [V1.6.0RC6] Nutzung von Variablen in Grafana Parallelinstanz [v7.2.2]
Verfasst: Mi Okt 28, 2020 9:14 pm
von Sensej
Robosoc hat geschrieben: ↑Mi Okt 28, 2020 8:56 am
@Sensej Aber müsste die Funktion max(*) nicht durch die Funktion last(*) ersetzt werden?
Hallo Sven,
ja, wäre besser.
Danke
MfG Juri
Re: [V1.6.0RC6] Nutzung von Variablen in Grafana Parallelinstanz [v7.2.2]
Verfasst: Mi Okt 28, 2020 9:42 pm
von blaubaerli
Hallo zusammen,
ich habe mich jetzt mal an folgendes herangetastet...
select difference(*) from (Select last(*) from "TS00128" WHERE time > now() - 2d GROUP BY time(1d) limit 2)
Damit hole ich mir die beiden jeweils letzten Werte und bilde die Differenz....
@Sensej, danke für deine Detailerklärung.
Über die Query im jeweiligen Panel gibt es ja auch einen Query inspector. Das Ding hat mir geholfen. Habe ich aber jetzt konkret nur in der 7.2.2 probiert.
Jetzt versuche ich mich nur noch mit der Multiplikation des Ergebnisses mit dem Faktor 0,2794 da fliegt mir das noch um die Ohren..
Beste Grüße
Jens
Re: [V1.6.0RC6] Nutzung von Variablen in Grafana Parallelinstanz [v7.2.2]
Verfasst: Mi Okt 28, 2020 9:56 pm
von blaubaerli
So, eigentlich hatte ich gehofft, nun mit
select difference(*) *0.2794 from (Select last(*) from "TS00128" WHERE time > now() - 4d GROUP BY time(1d) limit 2)
rechnen zu können.
Das fliegt mir aber mit einem "InfluxDB Error: unsupported expression with wildcard: difference()" um die Ohren. Was gibt es denn da evtl. noch für nen schlauen Trick?
select difference(*) from (Select last(*) from "TS00128" WHERE time > now() - 4d GROUP BY time(1d) limit 2)
also die Query ohne die Multiplikation mit dem Faktor ergibt jetzt mal nen brauchbaren Integer-Wert der bei Betrachtung der Basisdaten korrekt ist.
Beste Grüße
Jens
PS: bitte nicht von dem -4d irritieren lassen. Es hatte gestern (also mit -2d) nicht geregnet.... Daher hier zum Test der andere Wert
Re: [V1.6.0RC6] Nutzung von Variablen in Grafana Parallelinstanz [v7.2.2]
Verfasst: Mi Okt 28, 2020 10:07 pm
von Robosoc
Für eine Rechnung musst du meines Erachtens die Funktion Math nutzen , probiere mal
Math(difference(*) *0.2794)
Also quasi
select math(difference(*) *0.2794) from (Select last(*) from "TS00128" WHERE time > now() - 4d GROUP BY time(1d) limit 2)
Aus der Diskussion ist übrigens glaube ich alles auch im TWS Grafana (V6...) machbar, insofern wäre es eine Überlegung den Betreff umzustellen. Einzig der Hinweis auf den Query Inspector, der mir auch schon gute Dienste geleistet hat ist eine hier angesprochene Neuheit aus V7, glaub ich.
Re: [V1.6.0RC6] Nutzung von Variablen in Grafana Parallelinstanz [v7.2.2]
Verfasst: Mi Okt 28, 2020 10:13 pm
von Robosoc
Wenn Du magst schreib doch gerne mal was konkret Du machen willst, vielleicht ist das ja jeweils auch eine Anregung für uns Anderen ein ähnliches Panel für uns selber aufzusetzen oder Du bekommst dadurch vielleicht noch Ideen, wie andere es umgesetzt haben.