Skip to Content
Tableaux de bord IoTLiaison de données

Liaison de données

La liaison de données est le pont entre votre base de données de projet et les widgets de votre board IoT. Presque toute propriété configurable d’un widget — titres, valeurs, couleurs, séries de graphiques, plages de jauges — peut être alimentée dynamiquement par des données live de la TimescaleDB de votre projet. Cette page explique comment connecter des colonnes à des propriétés de widget et comment affiner les données avec des filtres.

Pour une vue plus large de la manière dont les données arrivent dans la base du projet, consultez la vue d’ensemble de la Gestion des données.

Les deux façons de lier des données

Il existe deux modes de liaison fondamentaux dans le Board Studio d’IronFlock :

  1. Références de valeur — lient une valeur scalaire unique (le dernier enregistrement d’une colonne) à une propriété de widget.
  2. Références de table — lient un ensemble de résultats entier (plusieurs lignes) à une propriété de widget attendant un tableau.

Les deux modes prennent en charge le filtrage et fournissent des mises à jour en temps réel : dès que de nouvelles lignes arrivent dans la base du projet, les propriétés liées se rafraîchissent automatiquement — sans polling.

Références de valeur

La plupart des champs de configuration d’un widget attendent une valeur unique — un titre, une lecture numérique, une couleur, un libellé de statut. Sous ces champs, l’éditeur de widget affiche un petit interrupteur de liaison de données.

Quand vous activez l’interrupteur, cliquer sur le champ ouvre une liste déroulante avec toutes les données disponibles dans votre base de projet. Vous pouvez :

  1. Choisir une table de la base du projet.
  2. Choisir une colonne de cette table à lier à la propriété.

Exemple : Vous pouvez lier le champ titre d’un widget jauge à la colonne name d’une table machine, ou le champ valeur d’un widget numérique à la lecture temperature la plus récente d’une table sensor_data.

La valeur la plus récente

Une référence de valeur fournit toujours la valeur unique la plus récente pour la colonne choisie. « La plus récente » est déterminée par la colonne obligatoire tsp — chaque table de la base du projet possède une colonne d’horodatage tsp, et la ligne au plus grand tsp l’emporte.

Icône de filtre

Une fois une colonne liée à une propriété de widget, une petite icône de filtre apparaît à côté de l’interrupteur de liaison sous le champ. Cliquer dessus ouvre une boîte de dialogue pour configurer des filtres qui restreignent les lignes considérées lors de l’extraction de la valeur. Voir Configuration des filtres ci-dessous.

Références de table

Certains widgets attendent un tableau de valeurs plutôt qu’un scalaire. Un widget graphique, par exemple, a besoin de nombreux points (x, y) pour tracer une ligne ; un widget de table a besoin de nombreuses lignes.

À ces endroits, l’éditeur de widget affiche un bouton Ajouter (pour ajouter des éléments manuellement) ainsi qu’un interrupteur de liaison de données à côté de l’étiquette du champ.

  • Mode manuel : cliquez sur Ajouter pour ajouter des éléments un par un avec des valeurs statiques.
  • Mode liaison : activez l’interrupteur pour lier le tableau à une table. Sélectionnez la table ; chaque ligne retenue devient un élément du tableau.

Vous pouvez utiliser l’icône de filtre à côté de l’interrupteur pour restreindre les lignes renvoyées à ce qui vous intéresse — voir Configuration des filtres.

Mapper des colonnes aux champs d’un élément du tableau

Une fois la liaison active pour une référence de table, vous configurez un gabarit unique d’élément de tableau avec les valeurs de la table connectée. Pour un graphique en courbe, les éléments ont besoin de valeurs x et y — rendez-les data-driven en choisissant des colonnes de la table pour chaque axe. Chaque ligne du jeu de résultats filtré est alors rendue avec ce mapping.

Le même schéma s’applique à tout widget acceptant des tableaux : graphiques en barres, tables, listes, heatmaps, etc.

Configuration des filtres

Les filtres restreignent les lignes utilisées par une référence de valeur ou de table. Les sections de la boîte de dialogue s’appliquent dans l’ordre où elles sont affichées — qui est aussi l’ordre dans lequel la base de données du projet les applique :

Boîte de dialogue de configuration de filtres avec paramètres de fenêtre temporelle, filtres libres par colonne et limite de lignes

1. Fenêtre de temps glissante

Configurez le filtrage par temps :

  • Fenêtre glissante — n’affiche que les lignes des N dernières minutes, heures, jours, etc. relativement à l’instant présent.
  • Fenêtre temporelle personnalisée — spécifiez le nom d’un paramètre de début et d’un paramètre de fin. Ces noms sont fournis à l’exécution par un Widget Calendrier, qui permet à l’utilisateur final de choisir une plage dans le board.

2. Filtres libres par colonne

Ajoutez autant de filtres au niveau colonne que nécessaire avec une de ces sources de valeur :

  • Valeurs constantes — valeurs codées en dur (p. ex. status = 'active').
  • Paramètres de filtre — valeurs fournies par un Widget de Filtre via l’URL.
  • Segments de route — valeurs extraites de l’URL courante via les Widgets de Navigation.

3. Agrégation

Par défaut, une liaison renvoie des lignes brutes. Basculez-la sur Agrégé dans le temps et la base de données du projet regroupe les enregistrements sélectionnés en intervalles de temps — ou en catégories — et renvoie une valeur calculée par groupe : moyennes horaires, nombre d’enregistrements par machine, total du jour.

Comme les filtres s’exécutent avant cette étape, ce sont eux qui décident quels enregistrements entrent dans chaque intervalle. L’agrégation est traitée en détail sur sa propre page : voir Agrégation et sous-échantillonnage.

4. Taille du buffer

Définit un plafond au nombre de lignes renvoyées pour le widget. La limite ne peut dépasser 3000 — ce plafond protège votre navigateur comme la base de projet contre les jeux de résultats démesurés.

Pour une liaison agrégée, le nombre d’intervalles renvoyés est déduit autrement (de la largeur du widget ou de l’intervalle que vous avez choisi), et la taille du buffer ne sert plus que de garde-fou de repli.

Toutes les sections se composent : la fenêtre temporelle réduit la plage, les filtres de colonnes affinent les lignes, l’agrégation les réduit à une valeur par intervalle, et la taille du buffer plafonne la sortie finale.

Sélection de champs dans des colonnes JSON

La base de données du projet prend en charge des colonnes JSON pour des données non ou semi-structurées (charges de télémétrie, blobs de configuration, enregistrements imbriqués).

En liant une colonne JSON à une propriété de widget, un champ supplémentaire apparaît pour spécifier le chemin vers un champ feuille dans la structure JSON. Le chemin utilise la notation d’objets JavaScript standard :

sensor.temperature payload.items.0.value metadata.location.city

Le widget extrait alors la valeur à ce chemin pour chaque enregistrement. Cela fonctionne pour les références de valeur (la feuille extraite du JSON le plus récent) comme pour les références de table (la feuille extraite pour chaque ligne).

Résumé

  • Utilisez les références de valeur pour des propriétés scalaires (titre, valeur, couleur) — vous obtenez la valeur la plus récente par tsp.
  • Utilisez les références de table pour des propriétés en tableau (séries graphiques, tables, listes) — vous mappez des colonnes aux champs d’un élément.
  • Utilisez la boîte de dialogue de filtres pour affiner les lignes avec fenêtres temporelles, filtres de colonnes et taille du buffer (limite de lignes, max 3000).
  • Basculez une liaison en mode agrégé quand vous voulez des valeurs calculées plutôt que des enregistrements — voir Agrégation et sous-échantillonnage.
  • Utilisez la notation de chemin JSON pour descendre dans des colonnes JSON non structurées.
Last updated on