Créer votre première application
Ce guide présente le flux de travail typique pour construire une application IronFlock qui collecte des données depuis des appareils edge et les affiche sur des tableaux de bord en temps réel.
1. Concevoir le modèle de données
Commencez dans le fichier .ironflock/data-template.yml. Pensez à deux catégories de tables :
- Tables d’entités — suivent l’état actuel des choses (appareils, machines, connexions). Les lignes sont ajoutées à chaque changement ;
maintainLatestFlagFordéclare quelles colonnes identifient une entité, afin que la ligne la plus récente de chaque entité puisse être relue à la demande. - Tables de séries temporelles — collectent des mesures dans le temps (relevés de capteurs, métriques). Chaque ligne est un nouveau point de données avec un timestamp.
data:
tables:
- tablename: devices
maintainLatestFlagFor: ['device_key']
columns:
- id: tsp
dataType: timestamp
- id: device_key
dataType: string
- id: status
dataType: string
- id: device_name
dataType: string
- id: deleted
dataType: boolean
- tablename: readings
columns:
- id: tsp
dataType: timestamp
- id: server_id
dataType: string
- id: metric
dataType: string
- id: value
dataType: numeric2. Configurer un environnement de test
Pour tester votre application, vous avez besoin d’un environnement de développement dans un projet avec au moins un appareil en ligne :
- Cliquez sur Développer sur la page de détail de l’application pour ouvrir l’IDE cloud.
- Choisissez un appareil en ligne depuis n’importe quel projet auquel vous avez accès.
- Cliquez sur Créer un backend dans le panneau latéral pour créer un environnement de développement.
3. Écrire le code edge
Enregistrer l’appareil au démarrage
Python
import asyncio
from ironflock import IronFlock
async def main():
await flock.append_to_table("devices", {
"device_key": os.environ.get('DEVICE_KEY'),
"tsp": now,
"status": "online",
"device_name": os.environ.get('DEVICE_NAME'),
"deleted": False
})
flock = IronFlock(mainFunc=main)
flock.run()4. Construire le board
Ouvrez l’éditeur de board et ajoutez des widgets connectés à vos tables de backend de données.
Afficher le statut des appareils
Ajoutez un widget Tableau connecté à la table devices. Activez l’option latest dans les paramètres de filtre du widget pour toujours afficher l’état actuel.
Visualiser les données de séries temporelles
Ajoutez un widget Graphique linéaire connecté à la table readings. Mappez tsp sur l’axe X et value sur l’axe Y. Le graphique se met à jour en temps réel à mesure que de nouvelles données arrivent.
Comment tout s’assemble
┌─────────────────────────────────────────────────────────┐
│ Board (Tableau de bord) │
│ ┌──────────┐ ┌──────────────┐ ┌───────────────────┐ │
│ │ Tableau │ │ Formulaire │ │ Graphique linéaire │ │
│ │ devices │ │ config │ │ readings │ │
│ └────┬─────┘ └──────┬───────┘ └────────┬──────────┘ │
│ │ │ │ │
└───────┼───────────────┼───────────────────┼─────────────┘
│ │ │
┌────▼───────────────▼───────────────────▼────┐
│ Base de données du projet │
└────▲───────────────▲───────────────────▲────┘
│ │ │
┌────┴───────────────┴───────────────────┴────┐
│ Code edge (sur l'appareil) │
│ enregistre → lit config → collecte data │
└─────────────────────────────────────────────┘