Nouveau : le pare-feu IA surveille toute la plateforme et explique chaque incident en termes simples. Découvrez comment ça marche

Modifier l'intervalle de rapport et la zone morte sur 300 contrôleurs sur le terrain : attributs ou commandes ?

Modifier l'intervalle de rapport et la zone morte sur 300 contrôleurs sur le terrain : attributs ou commandes ?

Résolu 4 5

Traduit de English par IA ·

Intégrateur ici. Un client a environ 300 contrôleurs de pompes sur le terrain, des cartes ESP32-S3 avec notre propre firmware, tous connectés en MQTT à Hermetry. Nous devons modifier quelques paramètres à distance, site par site : l’intervalle de rapport, une zone morte sur la lecture de pression et le serveur NTP (certains sites bloquent les pools publics).Deux approches sont sur la table en interne :

  • une commande, par exemple cfg.set, avec les paramètres en JSON, qui répond ok/erreur
  • des attributs partagés que l’appareil applique

Ce qui m’importe : savoir avec certitude qu’un appareil a appliqué une valeur, et ne pas perdre les changements pour les appareils hors ligne. Certains sites ruraux se déconnectent pendant deux ou trois jours d’affilée.Le firmware lit déjà une configuration JSON en mémoire flash au démarrage, donc appliquer les valeurs n’est pas le plus difficile. Les appareils envoient un rapport toutes les 60 s et se trouvent derrière un mélange de routeurs LTE et de Wi-Fi de site. Pour quelle approche Hermetry a-t-il été conçu, et existe-t-il une vue souhaité-vs-rapporté ?

♥ 0

Traduit de English par IA ·

Étudiant ici, je suis curieux : pourquoi cela aurait-il de l’importance ? Une commande contenant les paramètres me paraît plus simple.

♥ 0

Traduit de English par IA ·

Les commandes envoyées à un appareil hors ligne ne sont mises en attente que si vous les envoyez en mode persistant, et elles abandonnent au bout de 7 jours maximum. Les attributs représentent un état, les commandes sont des actions. Je privilégierais les attributs.

♥ 1

Traduit de English par IA ·

Nous l’avons fait avec des commandes sur un parc plus petit, et c’était un vrai désordre à chaque fois qu’un appareil en manquait une. Personne ne pouvait dire quels appareils avaient quel intervalle.

Ground loops are my cardio.
♥ 2

Traduit de English par IA ·

Utilisez les attributs partagés cfg.*, c’est exactement à cela qu’ils servent, et vous obtenez la vue valeur souhaitée / valeur remontée sans effort supplémentaire.Déclarez les clés dans l’onglet Configuration keys du profil (type, libellé, limites), puis définissez-les comme attributs partagés : cfg.telemetry.interval_s, cfg.pressure.deadband_bar, cfg.ntp.server. L’appareil reçoit les modifications sur v1/attributes/set, les applique et renvoie la valeur appliquée comme attribut client avec la même clé. Hermetry compare les deux et affiche pour chaque clé, dans l’onglet Attributes, les statuts In sync, Pending, Rejected ou Drifted.Côté appareil, après chaque connexion :

SUBSCRIBE v1/attributes/set
PUBLISH   v1/attributes/req/1   {"sharedKeys": "cfg.*"}
# réponse sur v1/attributes/res/1 -> tout appliquer -> renvoyer :
PUBLISH   v1/attributes   {"cfg.telemetry.interval_s": 300, "cfg.pressure.deadband_bar": 0.05}

La requête envoyée après la connexion couvre vos sites isolés : un appareil resté hors ligne pendant trois jours demande toutes les clés cfg.* à son retour et rattrape son retard. Si un appareil ne peut pas appliquer une valeur, il la signale dans cfg_rejected, par exemple {"cfg_rejected": {"cfg.ntp.server": "apply_failed"}}, et la ligne affiche Rejected avec la raison. Appliquez les messages de manière idempotente, un message peut arriver deux fois.Pour 300 appareils, écrivez les valeurs avec l’API (POST …/attributes/shared, jusqu’à 100 clés par appel) dans une boucle sur la liste des appareils. Les écrans Baseline et tâches en masse sont destinés aux appareils qui publient un manifeste de réglages (appareils sous licence) ; avec votre propre firmware, cfg.* est la voie à suivre. La page Attributes contient le tableau des statuts.

Timestamps in UTC or it didn't happen.
Solution acceptée♥ 7
5 sujets de 1 à 5 (sur un total de 5)
  • Vous devez être connecté pour répondre à ce sujet.

Rejoignez la discussion

Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

Partager