NEWS
absolute Zeitbereiche in der URL (Grafana) angeben
-
Hier geht‘s zur Lösung und Anwendung.
Wer oder was bei mir nicht funktioniert, kann ich am Ende gar nicht sagen. Ein Beispiel mag das Problem verdeutlichen ..
In Safari gebe ich folgendes ein ..
Eingabe:
[http://]192.168.4.72:3000/d/PjVumN-Vz/gas-30d?orgId=1&from=2024-10-01&to=2024-11-30&timezone=browser
.. und erhalte 'no data'
Ich schaute mir daraufhin nach dem Aufruf die URL in der Adresszeile in Safari an und fand eine veränderte, völlig unsinnige URL ..
Ausgabe:
[http://]192.168.4.72:3000/d/PjVumN-Vz/gas-30d?orgId=1&from=1970-01-01T00:00:02.024Z&to=1970-01-01T00:00:02.024Z&timezone=browser
Wer verdattelt hier die Anzeige? Ist's Safari oder Grafana oder .. ?
Weiß jemand Rat?
PS
Relative Zeitangaben (à la form=now-365d&to=now-258d) funktionieren jedoch problemlos.
-
Eine (Teil)Lösung konnte ich bereits (selbst) finden ..
[http://]192.168.4.72:3000/d/PjVumN-Vz/gas-30d?orgId=1&from=2024-11-01T00:23:59.999Z&to=2024-11-30T23:59:59.999Z&timezone=browser
D.h.: Gibt man die Zeitwerte zusätzlich an, funktioniert das Ganze.
Bleibt die Frage: Bug oder Feature
-
Die Zeit ist in ms Epoch (seit 01.01.1970 00:00:00.000 UTC) anzugeben, egal in welcher Schreibweise.
Dieses implizite "Es wird wahrscheinlich Mitternacht UTC (oder doch local Time!?) gemeint sein", zählt nicht.
-
Da wurde offenbar mal wieder herumgeschraubt. Nach meinen Erinnerungen hat das Ganze früher (schon mal) funktioniert. Sei's d'rum. Ich habe also ebenfalls wieder rumgebastelt und jetzt funktioniert's, so wie ich's mir wünsche.
Vorhaben: Gasverbrauch für einen beliebig wählbaren Zeitraum darstellen
Ressourcen
Datenpunkte ..
Datum/Zeit-, iFrame-Widget und AktualisierungsButton ..
Ist das Datum-Widget direkt mit seinen Datenpunkten verknüpft, so wird das iFrame-Widget mittels Binding mit seiner Quelle verbunden. Die Variable baseURL wird mittels share aus Grafana gefüllt.
Skript
let start = '' let ende = '' let toURL = '' let fromURL = '' let baseURL = getState('0_userdata.0.Grafana.baseURL').val on({id: '0_userdata.0.Grafana.Start', change: 'ne'}, function() { start = getState('0_userdata.0.Grafana.Start').val setState('0_userdata.0.Grafana.from', start.substring(0,10) + 'T' + '00:00:00.000Z') }) on({id: '0_userdata.0.Grafana.Ende', change: 'ne'}, function() { ende = getState('0_userdata.0.Grafana.Ende').val setState('0_userdata.0.Grafana.to', ende.substring(0,10) + 'T' + '23:59:59.999Z') }) on({id: '0_userdata.0.Grafana.refresh', change: 'any' }, () => { toURL = getState('0_userdata.0.Grafana.to').val fromURL = getState('0_userdata.0.Grafana.from').val setState('0_userdata.0.Grafana.url',`${baseURL}&from=${fromURL}&to=${toURL}`) });
Ergebnis
-
@legro
Hallo, kannst du mir bitte mal ein Beispiel für die baseURL schicken? Hast du dort den Parameter &kiosk eingetragen? -
Bedeutung der einzelnen Teile ..
- http://192.168.4.72:3000/ -> Aufruf von Grafana
- d/fDs7GA2Vz/gasverbrauch-30d-iobroker -> Referenz auf das darzustellende Dashboard
- orgId -> ??? (vermutlich die Referenz auf die Organisation, in der die Datenbank liegt.)
- kiosk -> Menü unterdrücken
- _dash.hideTimePicker -> Element zur Zeitraumauswahl ausblenden
Bis auf die letzten beiden Elemente werden alle über die share-Option des Dashboards bereitgestellt.
Hat früher der Parameter kiosk ausgereicht, damit nur das reine Dashboard dargestellt wird, so haben die Entwickler von Grafana mal wieder rumgebastelt, sodass man die Zeitauswahl-Option durch den weiteren hier aufgeführten Parameter gezielt ausblenden muss.
-
@legro
Danke dir. Ich hatte den Eintrag "_dash.hideTimePicker" nicht genutzt. Das werde ich mal eintragen.Ich wünsche dir noch ein frohes Fest.