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

Codecs : transformer les octets en valeurs

Comment Hermetry décode les charges utiles LoRaWAN – Automatique, Aucun, codecs de la bibliothèque et vos propres codecs – et quel codec un appareil finit par utiliser.

Un capteur LoRaWAN envoie quelques octets, par exemple 01 0A 2B 64. Un codec sait ce que ces octets signifient pour ce capteur et les transforme en valeurs nommées, telles que temperature: 26.1 et humidity: 50. Hermetry décode chaque uplink avec un codec avant qu’il n’atteigne vos flows.

Les quatre choix

ChoixAffiché commeCe qui se passe
AutomatiqueAutomatique (par fabricant et port)Hermetry choisit le codec qui revendique le fabricant de l’appareil et le FPort de la trame. Vos propres codecs sont préférés à ceux de la bibliothèque.
AucunAucun (charge utile brute vers les flows)Aucun décodage. La charge utile arrive en hexadécimal sous la clé raw. Décodez-la vous-même dans un flow.
Un codec de la bibliothèqueSon nomL’un des 106 codecs fournis avec Hermetry. Voir La bibliothèque de codecs.
Votre propre codecSon nom, marqué YoursUn codec que vous avez publié, identifiant t.<name>. Voir Écrire votre propre codec.

Quel codec un appareil utilise

L’appareil et son profil ont chacun un réglage de codec. Le codec effectif est déterminé dans cet ordre :

  1. Le choix propre à l’appareil, sauf s’il s’agit de Automatique.
  2. Sinon, le codec du profil, sauf s’il s’agit de Automatique.
  3. Sinon, le choix automatique.

Réglez le codec sur le profil lorsque tous ses appareils sont le même capteur ; ne le réglez sur un appareil que pour les exceptions.

Fonctionnement du choix automatique

Les trois premiers octets d’un DevEUI identifient le fabricant de l’appareil (son OUI). Chaque codec liste les fabricants (OUI) et les FPorts qu’il gère. Le choix automatique prend le premier codec dont la liste de fabricants contient l’OUI de l’appareil et dont la liste de FPorts inclut le FPort de la trame (un codec sans liste de FPorts prend tous les ports). Vos propres codecs sont essayés en premier, puis la bibliothèque.

Si aucun codec ne revendique l’appareil, rien n’est décodé et la charge utile arrive sous raw, comme avec Aucun.

À quoi ressemble un message décodé

Un uplink décodé par un codec devient un message d’appareil de la forme suivante :

{
  "temperature": 26.1,
  "humidity": 50,
  "battery": 3012,
  "lora.rssi": -97,
  "lora.snr": 7.5,
  "lora.gw_count": 2,
  "lora.dr": 5,
  "lora.freq": 868100000,
  "lora.fcnt_up": 1342
}

Les clés lora.* sont ajoutées lorsque Ajouter les valeurs radio du profil est activé. Les valeurs imbriquées sont aplaties avec des points (probe.temperature), à 4 niveaux de profondeur au maximum et 64 clés par message au maximum. Une valeur de codec nommée lora.… est renommée dev.lora.… afin de ne jamais entrer en conflit avec les clés du serveur réseau. Les unités déclarées par le codec voyagent avec les métadonnées du message.

Lorsque le décodage échoue

Un uplink n’échoue jamais à cause d’un codec :

SituationRésultat
Aucun codec ne revendique l’appareilLa charge utile arrive sous raw (hexadécimal).
Le codec ne reconnaît pas cette trameLa charge utile arrive sous raw.
Le codec a décodé une partie de la trame et signalé des erreursLes valeurs décodées et raw arrivent toutes deux.
Le codec choisi a été retiré ou suppriméL’appareil revient au choix automatique.

raw contient jusqu’à 4 096 octets de charge utile en hexadécimal.

Choisir un codec

  • Pour un profil : l’onglet LoRaWAN du profil, Codec, puis Save.
  • Pour un appareil : l’onglet LoRaWAN de l’appareil, Codec, puis Save.
  • Lors de l’ajout via l’API : codecId (auto, none, un identifiant de la bibliothèque, ou votre identifiant t.).

Hermetry vérifie le choix lorsque vous enregistrez. Un codec inexistant ou retiré est refusé : This codec does not exist or was withdrawn. Choose another codec, or Automatic. (codec_choice_unknown).

Où vont les valeurs décodées

Les clés décodées entrent dans vos flows comme toute télémétrie d’appareil. Elles ne sont stockées que là où un flow les enregistre ; le flow racine par défaut enregistre toutes les clés. Les clés de sortie d’un codec portent souvent le nom que leur donne le fabricant de l’appareil. Pour les renommer ou les convertir, voir Nettoyer les valeurs décodées.

Trouver les codecs

Ouvrez Devices, puis le menu ⋯, puis LoRaWAN codecs. Le panneau liste les codecs de la bibliothèque et les vôtres, et permet de tester n’importe quel codec avec une charge utile. Vous devez disposer de la permission d’afficher les codecs LoRaWAN.