Datenbindung
Datenbindung ist die Brücke zwischen Ihrer Projektdatenbank und den Widgets Ihres IoT-Boards. Fast jede konfigurierbare Widget-Eigenschaft — Titel, Werte, Farben, Diagrammserien, Gauge-Bereiche — kann dynamisch von Live-Daten aus der TimescaleDB Ihres Projekts gespeist werden. Diese Seite erklärt, wie Sie Tabellenspalten an Widget-Eigenschaften anbinden und die Daten mit Filtern verfeinern.
Einen breiteren Blick darauf, wie Daten in die Projektdatenbank gelangen, finden Sie in der Datenverwaltung-Übersicht.
Die zwei Wege, Daten zu binden
Es gibt zwei grundlegende Bindungsmodi im Board Studio von IronFlock:
- Wertreferenzen — binden einen einzelnen Skalarwert (den neuesten Eintrag einer Spalte) an eine Widget-Eigenschaft.
- Tabellenreferenzen — binden eine ganze Ergebnismenge (mehrere Zeilen) an eine Widget-Eigenschaft, die ein Array erwartet.
Beide Modi unterstützen Filterung und liefern Echtzeit-Updates: Sobald neue Zeilen in der Projektdatenbank eintreffen, aktualisieren sich die gebundenen Widget-Eigenschaften automatisch — ohne Polling.
Wertreferenzen
Die meisten Widget-Konfigurationsfelder erwarten einen Einzelwert — einen Titel, eine numerische Anzeige, eine Farbe, ein Status-Label. Unter diesen Feldern im Widget-Editor finden Sie einen kleinen Datenbindungs-Schalter.
Wenn Sie den Schalter aktivieren und auf das Feld klicken, öffnet sich ein Dropdown mit allen in Ihrer Projektdatenbank verfügbaren Daten. Sie können:
- Eine Tabelle aus der Projektdatenbank wählen.
- Eine Spalte dieser Tabelle auswählen, die an die Eigenschaft gebunden wird.
Beispiel: Binden Sie das Titel-Feld eines Gauge-Widgets an die Spalte name einer Tabelle machine, oder das Wert-Feld eines Zahl-Widgets an den neuesten temperature-Wert einer Tabelle sensor_data.
Der neueste Wert
Eine Wertreferenz liefert immer den neuesten Einzelwert der gewählten Spalte. „Neuester” wird über die verpflichtende tsp-Spalte bestimmt — jede Tabelle in der Projektdatenbank besitzt eine tsp-Zeitstempel-Spalte, und die Zeile mit dem größten tsp gewinnt.
Filter-Symbol
Sobald Sie eine Spalte an eine Widget-Eigenschaft gebunden haben, erscheint neben dem Datenschalter unter dem Feld ein kleines Filter-Symbol. Ein Klick öffnet einen Dialog, in dem Sie Filter konfigurieren, um die für die Wertermittlung betrachteten Zeilen einzugrenzen. Siehe Filter-Konfiguration unten.
Tabellenreferenzen
Manche Widgets erwarten ein Array von Werten statt eines Skalars. Ein Diagramm-Widget benötigt beispielsweise viele (x, y)-Punkte, um eine Linie zu zeichnen; ein Tabellen-Widget viele Zeilen.
An diesen Stellen zeigt der Widget-Editor einen Hinzufügen-Button (um Array-Elemente manuell anzuhängen) sowie einen Datenbindungs-Schalter neben dem Feld-Label.
- Manueller Modus: Klicken Sie Hinzufügen, um Einträge mit statischen Werten einzeln zu ergänzen.
- Datenbindungs-Modus: Aktivieren Sie den Schalter, um das Array an eine Tabelle zu binden. Wählen Sie die Tabelle, und jede passende Zeile wird zu einem Array-Element.
Mit dem Filter-Symbol neben dem Datenschalter können Sie die zurückgegebenen Zeilen genau auf Ihre Anforderungen eingrenzen — siehe Filter-Konfiguration.
Spalten auf Array-Element-Felder abbilden
Sobald die Datenbindung für eine Tabellenreferenz aktiv ist, konfigurieren Sie eine einzelne Array-Element-Vorlage mit Werten aus der verbundenen Tabelle. Ein Liniendiagramm braucht x- und y-Werte — machen Sie beide datengetrieben, indem Sie Spalten der gebundenen Tabelle für jede Achse wählen. Jede Zeile der gefilterten Ergebnismenge wird anhand dieses Mappings gerendert.
Dasselbe Muster gilt für alle Widgets mit Array-Eingabe: Balkendiagramme, Tabellen, Listen, Heatmaps usw.
Filter-Konfiguration
Mit Filtern grenzen Sie die für eine Wert- oder Tabellenreferenz verwendeten Zeilen ein. Die Abschnitte des Dialogs greifen in der Reihenfolge, in der sie angezeigt werden — und das ist auch die Reihenfolge, in der die Projektdatenbank sie anwendet:
1. Rollierendes Zeitfenster
Konfigurieren Sie, wie Datensätze nach Zeit gefiltert werden:
- Rollierendes Fenster — zeigt nur Zeilen der letzten N Minuten, Stunden, Tage usw. relativ zur aktuellen Zeit.
- Benutzerdefiniertes Zeitfenster — geben Sie die Namen eines Start-Parameters und eines End-Parameters an. Diese Parameternamen werden zur Laufzeit von einem Kalender-Widget geliefert, mit dem Endnutzer einen Zeitraum im Board wählen.
2. Beliebige Spaltenfilter
Fügen Sie beliebig viele Spaltenfilter hinzu, mit einer dieser Werte-Quellen:
- Konstante Werte — fest kodierte Werte (z. B.
status = 'active'). - Filter-Parameter — Werte, die ein Filter-Widget über die URL liefert.
- Routing-Pfad-Segmente — Werte aus der aktuellen Seiten-URL, bereitgestellt von Navigations-Widgets.
3. Aggregation
Standardmäßig liefert eine Bindung Rohdaten-Zeilen. Schalten Sie sie auf Über die Zeit aggregiert um, und die Projektdatenbank gruppiert die ausgewählten Datensätze in Zeitintervalle — oder in Kategorien — und gibt einen berechneten Wert pro Gruppe zurück: Stundendurchschnitte, Datensätze pro Maschine, die Tagessumme.
Da Filter vor diesem Schritt greifen, entscheiden sie, welche Datensätze in welches Intervall eingehen. Die Aggregation ist vollständig auf einer eigenen Seite beschrieben: siehe Aggregation & Downsampling.
4. Zeilenlimit
Legt eine Obergrenze für die Anzahl der zurückgegebenen Zeilen fest. Das Limit darf 3000 nicht übersteigen — dieser Deckel schützt Ihren Browser wie auch die Projektdatenbank vor übergroßen Ergebnismengen.
Bei einer aggregierten Bindung ergibt sich die Anzahl der zurückgegebenen Intervalle stattdessen aus der Breite des Widgets oder aus dem von Ihnen gewählten Intervall; das Zeilenlimit wirkt dann nur noch als Rückfallsicherung.
Alle Abschnitte greifen zusammen: Das Zeitfenster schränkt den Zeitraum ein, Spaltenfilter verfeinern die Zeilen weiter, die Aggregation reduziert sie auf einen Wert pro Intervall, und das Zeilenlimit deckelt die Endausgabe.
Felder aus JSON-Spalten auswählen
Die Projektdatenbank unterstützt JSON-Spalten für unstrukturierte oder semi-strukturierte Daten (Geräte-Telemetrie-Payloads, Konfigurations-Blobs, verschachtelte Datensätze).
Wenn Sie eine JSON-Spalte an eine Widget-Eigenschaft binden, erscheint ein zusätzliches Eingabefeld, in dem Sie den Pfad zu einem Blattfeld innerhalb der JSON-Struktur angeben. Der Pfad folgt der üblichen JavaScript-Objektnotation:
sensor.temperature
payload.items.0.value
metadata.location.cityDas Widget extrahiert dann den Wert an diesem Pfad aus jedem Datensatz. Das funktioniert sowohl für Wertreferenzen (das Blatt des neuesten JSON-Datensatzes) als auch für Tabellenreferenzen (das extrahierte Blatt aus jeder Zeile).
Zusammenfassung
- Nutzen Sie Wertreferenzen für Skalar-Eigenschaften (Titel, Wert, Farbe) — Sie erhalten den neuesten Wert nach
tsp. - Nutzen Sie Tabellenreferenzen für Array-Eigenschaften (Diagrammserien, Tabellen, Listen) — Sie bilden Spalten auf Array-Element-Felder ab.
- Nutzen Sie den Filter-Dialog, um Zeilen mit Zeitfenstern, Spaltenfiltern und Zeilenlimit (max. 3000) einzugrenzen.
- Schalten Sie eine Bindung auf aggregiert um, wenn Sie berechnete Werte statt einzelner Datensätze möchten — siehe Aggregation & Downsampling.
- Nutzen Sie JSON-Pfadnotation, um in unstrukturierte JSON-Spalten zu navigieren.