Une passerelle collecte les données des appareils de terrain qui ne peuvent pas atteindre Hermetry eux-mêmes (compteurs Modbus, contrôleurs RS485, capteurs BLE et autres) et les envoie via sa propre connexion. Hermetry transforme chaque appareil de terrain en appareil enfant : un appareil à part entière, avec ses mesures, attributs, alarmes et tableaux de bord. Cette page est la référence complète côté passerelle. Pour un bref résumé, voir Passerelles et appareils derrière une passerelle.
Une passerelle sous licence exécutant Hermetry Edge fait tout cela pour vous ; voir Passerelles sous licence et Hermetry Edge. Poursuivez la lecture si vous écrivez vous-même le logiciel de la passerelle ou si vous voulez savoir ce qu’il advient des données.
Configurer l’appareil passerelle
- Créez ou choisissez un profil d’appareil pour la passerelle. Il doit utiliser le schéma de topics
v1/par défaut. Le schéma Compatible legacy ne comporte aucune API de passerelle. - Dans Devices > New device, ajoutez la passerelle et activez This device is a gateway. Un appareil sans cette option est refusé sur tous les topics
v1/gw/*(forbidden_topic). - Attribuez à la passerelle ses identifiants (jeton d’accès, MQTT basic ou certificat X.509), comme pour tout appareil MQTT. Voir Identifiants de l’appareil.
- Facultatif : dans le profil de la passerelle, définissez Profile of new children et Max children of a gateway (voir ci-dessous).
La passerelle se connecte en son propre nom. Les enfants ne reçoivent jamais d’identifiants propres et ne se connectent jamais.
Topics et charges utiles
Tous les topics de passerelle utilisent le QoS 1.
| Topic (passerelle vers Hermetry) | Charge utile | Signification |
|---|---|---|
v1/gw/connect | {"device": "Meter A", "type": "lorawan-meter"} | L’enfant est présent. type est facultatif et choisit le profil de l’enfant. |
v1/gw/disconnect | {"device": "Meter A"} | L’enfant n’est plus présent. |
v1/gw/telemetry | Voir ci-dessous | Mesures d’un ou de plusieurs enfants. |
v1/gw/attributes | {"Meter A": {"lora.rssi": -97}} | Attributs client d’un ou de plusieurs enfants. |
La télémétrie est un objet indexé par nom d’enfant. Chaque enfant contient un enregistrement ou une liste d’enregistrements :
{
"Meter A": [
{"ts": 1759572000000, "values": {"kwh": 1203.4, "voltage": 229.8}},
{"ts": 1759572060000, "values": {"kwh": 1203.6, "voltage": 230.1}}
],
"Meter B": {"values": {"flow_m3h": 12.7}}
}
tsest l’heure en millisecondes à laquelle la valeur a été obtenue. Omettez-le si l’horloge de la passerelle n’est pas réglée ; Hermetry utilise alors l’heure d’arrivée. Voir Horodatages, mesures tardives et en double.valuessuit les mêmes règles de clés et de valeurs que la télémétrie de tout appareil. Voir Clés de télémétrie.- Un enregistrement peut porter un objet
metafacultatif contenant des informations sur la mesure, par exemple"meta": {"lora": {"rssi": -97, "snr": 7.5}}.metane doit pas dépasser 256 octets. Il n’est jamais enregistré comme mesure. Seuls ses membresloraetsnmp(chacun au maximum 8 valeurs simples) sont transmis à vos flux comme métadonnées de message ; le reste est ignoré. - Un enregistrement sans
values, ou dont letsn’est pas un nombre positif, est ignoré. Le reste du message est conservé.
Un attribut client facultatif time_quality sur un enfant, {"source": true, "arrival": false, "synced": true}, indique si les horodatages proviennent de l’horloge propre de l’enfant, de l’heure d’arrivée sur la passerelle, et si l’horloge de la passerelle était synchronisée. Il s’agit d’une information uniquement.
Création des enfants
Hermetry crée un enfant la première fois que la passerelle le signale, par connect, par télémétrie ou par attributs. Un enfant vu en télémétrie sans connect est considéré comme connecté.
- L’enfant appartient à l’organisation de la passerelle. Il n’est jamais revendiqué séparément.
- Profil, dans cet ordre : un profil de votre organisation portant exactement le nom du
typeenvoyé dansconnect; sinon le Profile of new children du profil de la passerelle ; sinon le Generic child profile intégré, que Hermetry crée la première fois qu’il est nécessaire. Un enfant annoncé sanstypeignore la première étape. - Nom de l’appareil : le nom de l’enfant tel qu’envoyé. Si un appareil portant ce nom existe déjà dans votre organisation, le nom devient
<nom envoyé> · <nom de la passerelle>, puis ce nom suivi de2,3et ainsi de suite. - Renommer l’enfant dans Hermetry ne modifie pas son nom tel qu’envoyé. La passerelle continue de l’adresser par le nom qu’elle a transmis.
- Les premiers enregistrements d’un enfant tout juste créé peuvent être perdus pendant sa création. Hermetry demande l’enfant une fois, et le message suivant le trouve.
Noms d’enfants
| Règle | Valeur |
|---|---|
| Longueur | De 1 à 128 caractères |
| Non autorisé | Caractères de contrôle, espace en début ou en fin |
| Casse | Sensible à la casse : abc et ABC sont deux enfants d’une même passerelle |
| Unicité | Par passerelle |
Un nom qui enfreint une règle est ignoré et comptabilisé ; les autres enfants du message sont conservés.
Un appareil connecté directement prime. Si le nom de l’enfant est égal au numéro de série d’un appareil de votre organisation qui possède ses propres identifiants (sans tenir compte de la casse), l’enfant est refusé (child_conflict_direct) et aucun enfant n’est créé. Cela évite qu’un appareil ayant sa propre session cloud n’apparaisse deux fois.
Limites
| Limite | Valeur |
|---|---|
| Enfants par passerelle | Le Max children of a gateway du profil (par défaut 500), sans jamais dépasser la valeur de votre forfait (500 si le forfait n’en indique aucune) ni le plafond de la plateforme, soit 1 000 |
| Limite d’appareils | Chaque enfant compte dans la limite d’appareils de votre forfait |
| Un message de passerelle | 64 Kio au maximum, ou le Max message payload (bytes) du profil de la passerelle s’il est plus bas |
| Enfants dans un message | 500 ; au-delà, ils sont ignorés |
| Enregistrements par enfant dans un message | 1 000 ; au-delà, ils sont ignorés |
meta par enregistrement | 256 octets |
Un enfant qui dépasserait la limite d’enfants ou la limite d’appareils est refusé (child_limit ou device_limit), et ses enregistrements sont supprimés.
Les limites de débit s’appliquent deux fois. D’abord, les limites du profil propre à la passerelle comptent le message entier, y compris les points de données de chaque enfant. Ensuite, les limites du profil de chaque enfant s’appliquent à sa part : un enfant qui dépasse ses limites perd seulement ses propres enregistrements (child_rate_limited). Voir Profils d’appareils pour les champs de limite et Quota de messages et utilisation.
État de connexion
connectetdisconnectdéfinissent l’état de connexion de l’enfant.- Lorsque la passerelle passe hors ligne, tous ses enfants passent hors ligne avec elle.
- Un enfant désactivé est retiré en une minute environ : ses enregistrements ne sont plus acceptés.
Commandes vers les enfants
L’envoi de commandes et de changements d’attributs partagés à un enfant via sa passerelle est en cours de développement. Ne construisez pas dessus pour l’instant. Voir Commandes vers les appareils derrière une passerelle.
Dépannage
| Symptôme | Cause et solution |
|---|---|
La passerelle est déconnectée après quelques messages v1/gw/* | L’appareil n’est pas marqué comme passerelle. Trois topics refusés en une minute ferment la session. Activez This device is a gateway. |
| Aucun enfant n’apparaît | Le nom de l’enfant enfreint une règle, la limite d’enfants ou d’appareils est atteinte, ou un appareil connecté directement utilise ce numéro de série. Vérifiez votre nombre d’appareils dans l’utilisation. |
| Un enfant a le mauvais profil | Le type ne correspond pas exactement à un nom de profil. Renommez le profil ou définissez Profile of new children dans le profil de la passerelle. Pour changer le profil d’un enfant existant, utilisez la page de l’appareil enfant. |
| Un enfant affiche deux noms | Un appareil portant le nom transmis existait déjà, l’enfant a donc reçu le nom <nom envoyé> · <nom de la passerelle>. |

