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

API LoRaWAN

Routes REST pour les passerelles LoRaWAN, les appareils, les clés, les sessions, les compteurs ABP, le mode appairage, les paramètres de profil et le journal des trames, avec les permissions et les réponses.

Cette page répertorie au même endroit les routes REST du serveur de réseau LoRaWAN de Hermetry. Chaque sujet a une page dans la section LoRaWAN qui détaille la signification des champs ; cette page y renvoie. Les chemins se trouvent sous https://<your host>/tenant/<tenantId>. Chaque réponse de ces routes est envoyée avec Cache-Control: no-store.

Permissions

PermissionRôle par défautAutorise
iot_lorawan.gateways.readUtilisateurLire les passerelles et l’adresse du serveur de réseau
iot_lorawan.gateways.manageAdministrateurAjouter, modifier, désactiver et supprimer des passerelles, renouveler leurs jetons
iot_lorawan.devices.readUtilisateurLire les appareils LoRaWAN, les paramètres de profil et l’appairage
iot_lorawan.devices.manageAdministrateurAjouter, modifier et supprimer des appareils, définir les clés, mettre fin aux sessions, appairage
iot_lorawan.keys.readAdministrateurAfficher l’AppKey d’un appareil
iot_lorawan.frames.readUtilisateurLire le journal des trames en direct

Configuration

GET /api/iot/lorawan/setup (gateways read) renvoie l’adresse du serveur de réseau et l’adresse de découverte dont a besoin une passerelle Basics Station, indique si un fichier tc.trust est proposé, ainsi que la région. Aucune donnée secrète. Voir Votre adresse de serveur de réseau.

Passerelles

MéthodeCheminPermissionAction
GET/api/iot/lorawan/gatewaysgateways readListe : { data, total, canManage }
POST/api/iot/lorawan/gatewaysgateways manageAjouter une passerelle Basics Station : { gateway, token, stationConfig }
GET/api/iot/lorawan/gateways/{gatewayId}gateways read{ gateway, live, devicesHeard }
PATCH/api/iot/lorawan/gateways/{gatewayId}gateways managename, status (ACTIVE ou DISABLED), latitude, longitude, altitude
DELETE/api/iot/lorawan/gateways/{gatewayId}gateways manageFermer sa connexion, libérer son EUI, la supprimer
POST/api/iot/lorawan/gateways/{gatewayId}/credentialsgateways manageNouveau jeton : { gateway, token, stationConfig }

La liste accepte page (à partir de 0), pageSize, search, sort (name, eui, protocol, mode, status, region, lastSeen, createdAt ; par défaut name:asc) et les filtres protocol, mode, status, region, deviceId, online.

Corps de création :

{ "eui": "AA555A0000000101", "name": "Roof gateway", "latitude": 41.0151, "longitude": 28.9795, "altitude": 45 }

eui est obligatoire (16 caractères hexadécimaux ; les tirets, deux-points et espaces sont ignorés), name de 1 à 128 caractères. Le protocole vaut par défaut Basics Station, le mode cloud et la région EU868, seule région proposée. Le jeton n’apparaît que dans cette réponse. Les routeurs sous licence ne s’ajoutent pas ici : ils passent en mode cloud depuis leur propre panneau, voir Routeurs sous licence comme passerelles LoRaWAN. Le renouvellement du jeton d’une passerelle qui n’en utilise pas est refusé : « This gateway does not use a token. » Voir Ajouter une passerelle et Identifiants de passerelle, désactivation et suppression.

Appareils

MéthodeCheminPermissionAction
GET/api/iot/lorawan/devicesdevices readListe : { data, total, canManage }
POST/api/iot/lorawan/devicesdevices manageAjouter un appareil OTAA ou ABP (201 { device })
GET/api/iot/lorawan/devices/{deviceId}devices read{ device } : l’enregistrement et sa session en cours, jamais une clé
PATCH/api/iot/lorawan/devices/{deviceId}devices managename, joinEui, appKey, macVersion, class, anyJoinEui, codecId ; pour ABP devAddr, nwkSKey, appSKey ensemble
DELETE/api/iot/lorawan/devices/{deviceId}devices manageSupprimer l’appareil, ses sessions et sa réservation de DevEUI
POST/api/iot/lorawan/devices/{deviceId}/keykeys readAfficher l’AppKey : { appKey } ; chaque appel est audité
DELETE/api/iot/lorawan/devices/{deviceId}/sessiondevices manageMettre fin à la session ; l’appareil doit de nouveau rejoindre le réseau
DELETE/api/iot/lorawan/devices/{deviceId}/countersdevices manageRéinitialiser les compteurs de trames d’un appareil ABP
POST/api/iot/lorawan/devices/{deviceId}/approvedevices manageApprouver un appareil ajouté par le mode appairage

La liste accepte page (à partir de 0), pageSize, search, sort (name, devEui, macVersion, class, createdAt ; par défaut createdAt:desc), et les filtres macVersion, class et joinState (joined, refused, never).

Ajouter un appareil OTAA

{
  "name": "Cold room 3",
  "devEui": "1122334455667701",
  "appKey": "2B7E151628AED2A6ABF7158809CF4F3C",
  "joinEui": "0000000000000000",
  "macVersion": "1.0.3",
  "class": "A",
  "codecId": "auto",
  "anyJoinEui": false
}

Seuls name, devEui et appKey sont obligatoires ; le reste prend les valeurs par défaut. macVersion vaut 1.0.2, 1.0.3 ou 1.0.4 ; class vaut A ou C. La réponse ne contient jamais l’AppKey, seulement hasAppKey: true. Une nouvelle AppKey réinitialise l’historique des nonces de join de l’appareil. Voir Ajouter un appareil OTAA.

Ajouter un appareil ABP

{
  "name": "Water meter 12",
  "activation": "ABP",
  "devEui": "1122334455667712",
  "devAddr": "26011F3A",
  "nwkSKey": "…32 hexadecimal characters…",
  "appSKey": "…32 hexadecimal characters…"
}

Un corps ABP contenant une appKey, ou un corps OTAA contenant des clés de session, est refusé. Voir Ajouter un appareil ABP.

Paramètres de profil et appairage

MéthodeCheminPermissionAction
GET/api/iot/lorawan/profiles/{profileId}/settingsdevices read{ settings } de l’onglet LoRaWAN du profil
PUT/api/iot/lorawan/profiles/{profileId}/settingsdevices manageLes modifier ; sharedAppKey est en écriture seule
GET/api/iot/lorawan/profiles/{profileId}/pairingdevices read{ pairing } : la fenêtre et les appareils qu’elle a ajoutés
POST/api/iot/lorawan/profiles/{profileId}/pairingdevices manage{ "minutes": 1–120 } ouvre la fenêtre ou en repousse la fin
DELETE/api/iot/lorawan/profiles/{profileId}/pairingdevices manageFermer la fenêtre immédiatement

Les champs des paramètres, y compris ceux que seule l’API permet de définir, sont décrits dans Profils d’appareils LoRaWAN. L’appairage est expliqué dans Mode appairage et Approuver les appareils appairés.

Journal des trames

GET /api/iot/lorawan/frames?deviceId={deviceId}&gatewayId={gatewayId}&limit=200

{ frames } : vos trames récentes, les plus récentes en premier, issues d’un court journal en direct qui n’est pas stocké. Une trame rejetée d’un appareil d’une autre organisation n’affiche que sa raison. Voir Le journal des trames.

Liaisons descendantes et codecs

  • Les liaisons descendantes applicatives sont des commandes de méthode lora.downlink : { "fPort": 1–223, "data": "<hex or base64>", "confirmed": false }, envoyées avec l’API Commands. Voir Liaisons descendantes.
  • Les codecs ont leurs propres routes : API Codec.

Refus

Les refus LoRaWAN renvoient des messages en clair, par exemple « A Basics Station gateway always runs in cloud mode. », « This gateway does not use a token. » ou une clé qui ne compte pas 32 caractères hexadécimaux. Les règles de champ en échec donnent un 400 avec issues. Voir Erreurs et limites de débit.