Mit Variablen arbeiten

Grafana-Dashboard-Variablen mit ENLYZE-Daten nutzen.

Lernziele

  • Dashboard-Variablen für dynamische Filterung erstellen

  • Dropdown-Auswahl für Standort und Maschine bauen

  • Variablen verketten, sodass Maschinenoptionen vom gewählten Standort abhängen

  • Variablen in Infinity-Queries verwenden

  • Versteckte Hilfsvariablen erstellen

Voraussetzungen

  • Tutorial 4.1 und 4.2 abgeschlossen

  • Verständnis von Infinity-Queries und JSONata


Überblick

Dashboard-Variablen erzeugen interaktive Dropdowns, mit denen Nutzende Daten filtern können, ohne Queries zu bearbeiten. Sie sind unverzichtbar für:

  • Standortauswahl - Bestimmen, welcher Standort angezeigt wird

  • Maschinenauswahl - Auf bestimmte Maschinen filtern

  • Zeitraumauswahl - Individuelle Zeiträume definieren

  • Dashboards für mehrere Nutzende - Ein Dashboard deckt verschiedene Anforderungen ab

Variablentypen

Typ
Beschreibung
Anwendungsfall

Query

Werte aus API/Datenbank

Standort-, Maschinen-, Produkt-Dropdowns

Custom

Feste Werteliste

Schichtnamen, Statusoptionen

Text box

Vom Nutzer eingegebener Wert

Suchfilter

Constant

Einzelner versteckter Wert

Base URLs, feste IDs

Interval

Zeitintervalle

Aktualisierungsraten


Erste Variable erstellen

Erstelle ein Standort-Dropdown, das die ENLYZE API abfragt.

Schritt 1: Variablen-Einstellungen öffnen

  1. Öffne dein Dashboard

  2. Klicke auf das Zahnrad-Symbol (Dashboard-Einstellungen)

  3. Wähle Variables im linken Menü

  4. Klicke auf Add variable

[SCREENSHOT: Dashboard settings with Variables menu]

Schritt 2: Grundeinstellungen konfigurieren

Einstellung
Wert

Name

site

Type

Query

Label

Site

Hide

(leer lassen, Variable anzeigen)

Wichtig: Variablennamen sollten kleingeschrieben und ohne Leerzeichen sein. Verwende bei Bedarf Unterstriche (z. B. machine_uuid).

[SCREENSHOT: Variable basic settings]

Schritt 3: Query konfigurieren

Unter Query Options:

  1. Setze Data source auf Infinity

  2. Setze Query type auf Infinity

Der Query-Editor erscheint. Konfiguriere ihn wie eine Panel-Query:

Einstellung
Wert

Type

JSON

Parser

Backend

Source

URL

URL

sites

Root selector

$.data

[SCREENSHOT: Variable query configuration]

Schritt 4: Wertezuordnung konfigurieren

Scrolle zu den Value-Optionen:

Einstellung
Wert
Beschreibung

Regex

(leer lassen)

Ergebnisse filtern

Sort

Alphabetical (asc)

Optionen sortieren

Das Dropdown muss wissen, welche Felder angezeigt und gespeichert werden:

  • Display-Wert: Was Nutzende sehen (Standortname)

  • Stored-Wert: Was in Queries verwendet wird (Standort-UUID)

Bei Infinity-Variablen wird die erste Spalte zum Display-Wert. Falls eine zweite Spalte vorhanden ist, wird sie zum gespeicherten Wert.

Um dies zu steuern, füge Spalten zu deiner Query hinzu:

  1. Scrolle zu Columns in der Query

  2. Füge zwei Spalten hinzu:

Selector
Title
Type

name

Name

String

uuid

UUID

String

[SCREENSHOT: Column configuration for variable]

Schritt 5: Vorschau und Speichern

  1. Klicke auf Run query, um Werte anzuzeigen

  2. Überprüfe, ob das Dropdown Standortnamen anzeigt

  3. Klicke auf Apply, um zu speichern

Das Standort-Dropdown sollte nun oben im Dashboard erscheinen.

[SCREENSHOT: Site dropdown in dashboard]


Variablen in Queries verwenden

Verwende die Variable ${site} in Panel-Queries.

Maschinen nach Standort filtern

Erstelle ein Panel, das Maschinen des ausgewählten Standorts anzeigt:

URL:

Root Selector (JSONata-Filter):

Dieser Filter beschränkt das Maschinen-Array auf Einträge, bei denen der Standort mit der ausgewählten Variable übereinstimmt.

[SCREENSHOT: Panel showing filtered machines]

Variablen-Syntax

Syntax
Beschreibung
Beispiel

${variable}

Einfache Ersetzung

${site}

${variable:raw}

Ohne Escaping

URL-Parameter

${variable:csv}

Kommagetrennt

Multi-Select-Werte

${variable:pipe}

Pipe-getrennt

Regex-Muster


Verkettete Variablen

Erstelle ein Maschinen-Dropdown, das sich aktualisiert, wenn der Standort geändert wird.

Schritt 1: Maschinen-Variable erstellen

Neue Variable hinzufügen:

Einstellung
Wert

Name

machine

Type

Query

Label

Machine

Schritt 2: Query mit Filter konfigurieren

Mit JSONata die Maschinen nach dem ausgewählten Standort filtern:

Einstellung
Wert

Type

JSON

URL

machines

Root selector

$filter($.data, function($v){ $v.site = "${site}" })

Spalten hinzufügen:

Selector
Title

name

Name

uuid

UUID

Schritt 3: Aktualisierung konfigurieren

Wichtig: Das Aktualisierungsverhalten so einstellen, dass die Maschinenoptionen sich bei Standortwechsel aktualisieren:

Einstellung
Wert

Refresh

On dashboard load

[SCREENSHOT: Chained variable configuration]

Schritt 4: Verkettung testen

  1. Ändere das Standort-Dropdown

  2. Überprüfe, ob das Maschinen-Dropdown nur Maschinen dieses Standorts anzeigt


Multi-Select-Variablen

Nutzenden ermöglichen, mehrere Werte auszuwählen.

Multi-Select aktivieren

In den Variablen-Einstellungen:

Einstellung
Wert

Multi-value

Enabled

Include All option

Enabled

[SCREENSHOT: Multi-select settings]

Multi-Select in Queries verwenden

Multi-Select-Variablen liefern mehrere Werte. Diese entsprechend behandeln:

Für URL-Parameter (kommagetrennt):

Für JSONata-Filter:

Für Regex-Abgleich:


Versteckte Variablen

Manche Variablen sollen Nutzenden nicht angezeigt werden, sind aber für Queries nützlich.

Anwendungsfälle

  • Zeitformate konvertieren

  • Berechnete Werte speichern

  • Zwischenergebnisse vorhalten

Versteckte Zeitvariable erstellen

Erstelle eine Variable, die Grafanas Zeit ins ISO-Format konvertiert:

Einstellung
Wert

Name

start_iso

Type

Query

Hide

Variable (vollständig ausgeblendet)

Query-Konfiguration:

Einstellung
Wert

Source

Inline

Data

{"time": ${__from}}

Root selector

$fromMillis($number($.time))

Einstellung
Wert

Refresh

On time range change

Dies konvertiert die Epoch-Millisekunden von ${__from} ins ISO-Format.

[SCREENSHOT: Hidden variable configuration]

Optionen zum Ausblenden

Wert
Verhalten

(leer)

Label und Wert anzeigen

Label

Nur Wert anzeigen

Variable

Vollständig ausgeblendet


Vollständiges Beispiel: Standort > Maschine Dashboard

Baue ein Dashboard mit verketteten Standort- und Maschinen-Dropdowns.

Zu erstellende Variablen

  1. site - Standort-Dropdown

  2. machine - Maschinen-Dropdown (nach Standort gefiltert)

Variable 1: Site

Einstellung
Wert

Name

site

Label

Site

Type

Query

Query URL

sites

Root selector

$.data

Columns

name, uuid

Sort

Alphabetical

Variable 2: Machine

Einstellung
Wert

Name

machine

Label

Machine

Type

Query

Query URL

machines

Root selector

$filter($.data, function($v){ $v.site = "${site}" })

Columns

name, uuid

Refresh

On dashboard load

Verwendung in Panels

Aufträge mit OEE:

Dies liefert Aufträge der ausgewählten Maschine mit OEE-Werten (Productivity, Availability, Performance, Quality) pro Auftrag.

Variablen (Sensordaten) abfragen:


Anzeigeoptionen für Variablen

In den Display-Einstellungen der Variable:

Display
Beschreibung
Geeignet für

Dropdown

Standard-Auswahl

Viele Optionen

Radio

Horizontale Buttons

Wenige Optionen (2-5)

Benutzerdefinierter "All"-Wert

Wenn "Include All" aktiviert ist, lässt sich der Wert für "All" anpassen:

Einstellung
Wert
Ergebnis

Custom all value

.*

Regex: alles abgleichen

Custom all value

$__all

Alle ausgewählten Werte


Fehlerbehebung bei Variablen

Variable zeigt keine Werte

Ursachen:

  1. Query liefert keine Daten

  2. Falscher Root Selector

  3. Columns nicht konfiguriert

Lösung: Dieselbe Query zuerst in einem Panel testen.

Verkettete Variable aktualisiert sich nicht

Ursachen:

  1. Refresh nicht korrekt eingestellt

  2. Tippfehler im Variablennamen im Filter

Lösung: Refresh auf "On dashboard load" setzen und den Variablennamen im JSONata-Ausdruck überprüfen.

Multi-Select liefert falsches Format

Ursache: Kein passender Format-Modifier verwendet

Lösung: ${variable:csv} für kommagetrennte oder ${variable:pipe} für Pipe-getrennte Werte verwenden.


Best Practices

Namenskonventionen

  • Kleinbuchstaben verwenden: site, nicht Site

  • Unterstriche verwenden: machine_uuid, nicht machineUuid

  • Aussagekräftige Namen: production_line, nicht pl

Performance

  • Daten in Variablen filtern, nicht nur in Panels

  • "On dashboard load" als Refresh für abhängige Variablen verwenden

  • Unnötige API-Aufrufe durch geeignetes Caching vermeiden

Nutzungserlebnis

  • Aussagekräftige Labels verwenden

  • Sinnvolle Standardwerte setzen

  • Technische Variablen vor Nutzenden verbergen

  • Variablen in logischer Reihenfolge anordnen (Standort > Maschine > Variable)


Zusammenfassung

Du hast gelernt, dynamische Dashboards mit Variablen zu erstellen:

  • Query-Variablen aus der ENLYZE API befüllen

  • Variablen für abhängige Dropdowns verketten

  • Variablen in Infinity-Queries mit ${variable}-Syntax verwenden

  • Multi-Select- und versteckte Hilfsvariablen erstellen


Nächste Schritte

Weiter mit:


Kurzreferenz

Variablen-Query-Einstellungen

Einstellung
Wert

Type

Query

Data source

Infinity

Query type

Infinity

Parser

Backend

Häufige Root Selectors

Zweck
JSONata-Ausdruck

Alle Einträge

$.data

Nach Standort filtern

$filter($.data, function($v){ $v.site = "${site}" })

Nach Maschine filtern

$filter($.data, function($v){ $v.machine = "${machine}" })

Variablen-Modifier

Modifier
Ausgabe
Anwendungsfall

${var}

Einzelner Wert

Die meisten Queries

${var:csv}

a,b,c

URL-Parameter

${var:pipe}

a|b|c

Regex-Muster

${var:raw}

Ohne Escaping

Sonderzeichen

Refresh-Optionen

Wert
Zeitpunkt

Never

Nur beim Laden der Seite

On dashboard load

Beim Öffnen des Dashboards

On time range change

Bei Änderung der Zeitauswahl

Zuletzt aktualisiert