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

300 moniteurs de postes électriques : faut-il vraiment un topic MQTT distinct par appareil ?

300 moniteurs de postes électriques : faut-il vraiment un topic MQTT distinct par appareil ?

Résolu 5 4

Traduit de English par IA ·

Lecteur de longue date, premier message. Nous remplaçons une installation de broker maison par Hermetry pour environ 300 moniteurs de postes (basés sur ESP32, avec notre propre firmware). Dans l’ancienne installation, chaque unité publiait sur grid/<site_id>/<unit_id>/telemetry et nous gardions un gros fichier ACL pour que chaque unité ne puisse écrire que dans sa propre branche. Ce fichier ACL était une source constante de problèmes : chaque nouveau site impliquait une modification et un rechargement du broker.En lisant la documentation Hermetry, je vois partout v1/telemetry et rien sur les topics par appareil. Cela signifie soit que c’est plus simple que je ne le pense, soit qu’il me manque une page. Avant d’écrire le nouveau firmware : faut-il configurer 300 topics quelque part, ou chaque appareil publie-t-il simplement sur le même topic ? Et si tous utilisent le même topic, qu’est-ce qui empêche l’unité 17 d’écrire des données en tant qu’unité 18 ?Je souhaiterais aussi conserver l’identifiant de site quelque part, car nos rapports le regroupent.

♥ 0

Traduit de English par IA ·

Je pense que vous pouvez définir des topics personnalisés dans le profil d’appareil pour cela ? J’ai vu une option « Custom topics » quelque part lorsque je configurais le mien.

Measure twice, poll once.
♥ 0

Traduit de English par IA ·

Dans la suite de ce message, nous recevrons 40 thermostats le trimestre prochain et je me pose la même question.

Timestamps in UTC or it didn't happen.
♥ 1

Traduit de English par IA ·

Pas besoin de topics par appareil. Les 300 publient tous sur le même v1/telemetry. Hermetry sait qui parle grâce aux identifiants avec lesquels l’appareil s’est connecté, donc le token fait office d’adresse. L’unité 17 ne peut pas écrire en tant que 18 car elle n’a pas les identifiants de 18, et un appareil ne peut s’abonner qu’à ses propres topics de downlink (v1/attributes/set, v1/rpc/req/+ et ainsi de suite), donc il ne voit jamais non plus les messages d’un autre appareil. Aucun fichier ACL à maintenir.Kevin n’a pas tort de dire que les topics Custom existent, mais ils sont destinés aux firmwares que l’on ne peut pas modifier : le profil considère alors tout topic en dehors de v1/ comme de la télémétrie de cet appareil. Les limites sont une profondeur de topic de 8, une longueur de 128 et 50 topics distincts par appareil, et avec « Prefix keys with the topic », grid/s12/temp devient une clé du type grid.s12.temp. Comme vous écrivez un nouveau firmware, ignorez tout cela.Pour l’identifiant du site, je en ferais plutôt un attribut de l’appareil qu’une partie du topic. Il ne change pas à chaque minute, donc il n’a pas sa place dans la télémétrie.Référence avec le tableau complet des topics : MQTT topics and payload reference. Un point pratique tiré de mon propre passage à cette architecture : donnez à chaque unité ses propres identifiants. Deux appareils partageant un même token ne cessent de se déconnecter mutuellement.

Solution acceptée♥ 9

Traduit de English par IA ·

C’est bien moins de travail que ce que j’avais budgété. L’unité prototype publie sur v1/telemetry avec son propre token, l’identifiant du site est désormais un attribut et notre script de rapport le lit à partir de là. Supprimer le fichier ACL est la meilleure chose qui soit arrivée à ce projet.

♥ 0

Traduit de English par IA ·

ah ok, donc les topics personnalisés sont la solution de secours pour les firmwares anciens. Je les avais confondus, merci.

Measure twice, poll once.
♥ 1
6 sujets de 1 à 6 (sur un total de 6)
  • 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