Skip to Content
Développement d'applications IoTParamètres d'application

Paramètres d’application

Exposez des paramètres configurables aux utilisateurs sans construire une interface web complète. Définissez un formulaire à l’aide de env-template.yml et IronFlock le génère automatiquement.

Quand utiliser les paramètres

Utilisez les paramètres pour une configuration simple que les utilisateurs doivent ajuster par appareil ou par groupe :

  • Intervalles d’enregistrement des capteurs
  • URLs des points d’accès de données
  • Seuils d’alerte
  • Bascules de fonctionnalités
  • Clés API et identifiants

Pour une configuration plus complexe (entraînement de robots, configuration de l’IA des caméras, configuration matérielle), créez plutôt une interface utilisateur edge personnalisée.

Définir les paramètres

Créez un fichier env-template.yml dans le répertoire .ironflock/ :

RECORDING_INTERVAL: label: "Intervalle d'enregistrement (secondes)" defaultValue: 5 type: numeric optional: true ALERT_THRESHOLD: label: "Seuil d'alerte température (°C)" defaultValue: 80 type: numeric optional: true API_ENDPOINT: label: "Point d'accès API de données" defaultValue: "https://api.example.com/data" type: text optional: true ENABLE_DEMO: label: "Activer les données de démonstration" defaultValue: true type: boolean optional: true DATA_FORMAT: label: "Format de sortie" defaultValue: "json" type: select options: - json - csv - xml optional: true SECRET_KEY: label: "Clé secrète d'API" defaultValue: "" type: text secret: true optional: true

Types de paramètres

TypeRenduExemple
textChamp de texteURLs, noms, clés
numericChamp numériqueIntervalles, seuils
booleanInterrupteurIndicateurs de fonctionnalité
selectMenu déroulantOptions prédéfinies

Comment les paramètres atteignent votre application

Les paramètres sont injectés comme des variables d’environnement Linux dans votre conteneur :

import os interval = int(os.environ.get("RECORDING_INTERVAL", 5)) threshold = float(os.environ.get("ALERT_THRESHOLD", 80))

Paramètres volumineux

Les paramètres dépassant 20 Ko ne sont pas définis comme variables d’environnement en raison de limitations du système. En revanche, tous les paramètres (y compris les plus volumineux) sont toujours disponibles sous forme de fichiers :

/data/env/PARAMETER_NAME.txt

L’agent de l’appareil rend /data/env lisible par root uniquement. Les conteneurs s’exécutent en tant que root, sauf si votre image choisit un autre utilisateur ; un conteneur qui s’exécute sous un autre utilisateur ne peut pas lire ces fichiers et ne voit donc que les paramètres définis comme variables d’environnement au moment de son démarrage — et un paramètre de plus de 20 Ko ne lui parvient pas du tout. Exécutez le conteneur en tant que root si votre application a besoin de paramètres de plus de 20 Ko.

Mode développement

La defaultValue spécifiée dans env-template.yml est utilisée lorsque l’application s’exécute en mode développement. Cela offre une expérience de développement cohérente sans nécessiter de configuration manuelle des paramètres.

Paramétrisation en masse

Lorsque les paramètres sont définis au niveau du groupe d’appareils, ils s’appliquent à tous les appareils du groupe simultanément. C’est idéal pour :

  • Définir un bucket S3 commun à tous les appareils de collecte de données
  • Mettre à jour les paramètres des modèles d’IA à l’échelle du projet
  • Modifier la configuration des capteurs de toute une ligne de production

Les paramètres peuvent être définis même lorsque les appareils sont hors ligne — ils sont appliqués dès que l’appareil se reconnecte.

Last updated on