NEU! UPGRADE IP 11 verfügbar!
NEU! LICHTWIDGET - DPT 7.600 - Logik Manager Update - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/B9MUEJj2

Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074

Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117

NEU! Ausführliches Video Tutorial zur VISU
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs

[Frage] [V1.6.0RC6] Nutzung von Variablen in Grafana Parallelinstanz [v7.2.2]

Diskussionen über Zeitserien, Logging und Auswertung mit Grafana
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS, CometVisu, Grafana, Edomi oder eine andere Software beteiligt ist, dann auch immer deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

Robosoc
Reactions:
Beiträge: 1884
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 639 Mal
Danksagung erhalten: 775 Mal

#11

Beitrag 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? :think:
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK

Ersteller
blaubaerli
Reactions:
Beiträge: 2324
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 898 Mal
Danksagung erhalten: 700 Mal

#12

Beitrag 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
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung
Bitte WIKI lesen.

Ersteller
blaubaerli
Reactions:
Beiträge: 2324
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 898 Mal
Danksagung erhalten: 700 Mal

#13

Beitrag 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... :confusion-scratchheadyellow:
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
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung
Bitte WIKI lesen.

Ersteller
blaubaerli
Reactions:
Beiträge: 2324
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 898 Mal
Danksagung erhalten: 700 Mal

#14

Beitrag von blaubaerli »

So langsam vermute ich deinen Ansatz zu verstehen....
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung
Bitte WIKI lesen.

Sensej
Reactions:
Beiträge: 901
Registriert: So Aug 12, 2018 9:12 am
Hat sich bedankt: 111 Mal
Danksagung erhalten: 240 Mal

#15

Beitrag 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
Zuletzt geändert von Sensej am Mi Okt 28, 2020 9:11 pm, insgesamt 1-mal geändert.
TWS 2400 ID: 69 + PBM ID: 728 + TP-UART, VPN offen, Reboot erlaubt

Sensej
Reactions:
Beiträge: 901
Registriert: So Aug 12, 2018 9:12 am
Hat sich bedankt: 111 Mal
Danksagung erhalten: 240 Mal

#16

Beitrag 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? :think:
Hallo Sven,

ja, wäre besser.

Danke

MfG Juri
TWS 2400 ID: 69 + PBM ID: 728 + TP-UART, VPN offen, Reboot erlaubt

Ersteller
blaubaerli
Reactions:
Beiträge: 2324
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 898 Mal
Danksagung erhalten: 700 Mal

#17

Beitrag 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
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung
Bitte WIKI lesen.

Ersteller
blaubaerli
Reactions:
Beiträge: 2324
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 898 Mal
Danksagung erhalten: 700 Mal

#18

Beitrag 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
Zuletzt geändert von blaubaerli am Mi Okt 28, 2020 9:58 pm, insgesamt 1-mal geändert.
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung
Bitte WIKI lesen.

Robosoc
Reactions:
Beiträge: 1884
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 639 Mal
Danksagung erhalten: 775 Mal

#19

Beitrag 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.
Zuletzt geändert von Robosoc am Mi Okt 28, 2020 10:11 pm, insgesamt 2-mal geändert.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK

Robosoc
Reactions:
Beiträge: 1884
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 639 Mal
Danksagung erhalten: 775 Mal

#20

Beitrag 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.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK
Antworten

Zurück zu „Zeitserien, Logging & Grafana“