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

Envoi de downlinks

Envoyez des downlinks applicatifs bruts aux appareils LoRaWAN avec la commande lora.downlink : paramètres, moment d'envoi selon la classe, tailles et résultats.

Un downlink est une trame envoyée du réseau vers un appareil : par exemple, un nouvel intervalle de remontée pour un capteur, ou « open » pour une vanne. Dans Hermetry, vous envoyez un downlink applicatif sous forme de commande avec la méthode lora.downlink. Vous fournissez vous-même les octets, tels que le constructeur de l’appareil les documente ; Hermetry ne les construit pas à partir de commandes nommées.

ParamètreObligatoireSignification
fPortOuiLe port applicatif, de 1 à 223, tel que spécifié par le constructeur de l’appareil
dataOuiLa charge utile en hexadécimal ("0100003C") ou en base64 ("AQAAPA==") ; les deux donnent les mêmes octets. 1 024 caractères au maximum.
confirmedNontrue demande à l’appareil d’accuser réception. Valeur par défaut : false.
{
  "method": "lora.downlink",
  "params": { "fPort": 10, "data": "0100003C", "confirmed": false }
}

Une commande dont les paramètres sont absents ou erronés n’est pas envoyée ; elle quitte la file avec le statut expirée.

Envoi

lora.downlink est une commande comme les autres : les règles générales de Envoi de commandes aux appareils s’appliquent.

Depuis la page de l’appareil : ajoutez lora.downlink au catalogue Commandes du profil LoRaWAN de l’appareil, avec des paramètres fixes ou modifiables et un niveau qui détermine qui peut l’envoyer. Envoyez-la ensuite depuis l’onglet Commandes de l’appareil. Une entrée de catalogue par action (par exemple « Remonter toutes les 10 minutes » avec ses octets fixes) est plus simple pour votre équipe que des octets bruts.

En méthode brute : sans entrée de catalogue, seuls les propriétaires peuvent l’envoyer.

Via l’API :

POST /tenant/<tenantId>/api/iot/devices/<deviceId>/rpc
Content-Type: application/json

{ "method": "lora.downlink", "params": { "fPort": 10, "data": "0100003C" }, "oneway": true, "persistent": true, "expiresInS": 86400 }

Depuis un flux : le bloc Envoyer une commande envoie une commande du catalogue à l’appareil du message.

Options recommandées :

  • Sens unique : un appareil LoRaWAN ne répond pas à une commande ; une commande bidirectionnelle attendrait une réponse qui n’arrive jamais et se terminerait en TIMEOUT.
  • Persistante, avec une expiration : un appareil de classe A peut ne pas émettre pendant un certain temps, et la commande doit alors attendre dans la file.

Moment de l’envoi

ClasseMoment
ALors de la prochaine remontée de l’appareil, dans sa fenêtre RX1 ou RX2. Un appareil qui remonte toutes les heures la reçoit jusqu’à une heure plus tard.
CImmédiatement, sur le canal RX2, via la passerelle qui a entendu l’appareil en dernier, tant que sa dernière remontée a moins de 15 minutes. Sinon, à sa prochaine remontée.

Un seul downlink applicatif est envoyé par remontée d’un appareil de classe A. Lorsque d’autres sont en file, le serveur réseau positionne le drapeau « more data pending », qui demande à de nombreux appareils de réémettre rapidement. Voir Classes d’appareils A et C.

Taille

La charge utile doit tenir dans le débit de données de la fenêtre d’envoi, avec les éventuelles commandes MAC en attente pour l’appareil :

Débit de donnéesCharge utile max.
DR0–DR251 octets
DR3115 octets
DR4–DR7222 octets
  • Classe A : si elle ne tient pas cette fois, elle attend une remontée à un débit plus élevé. Une charge utile de plus de 222 octets ne pourra jamais être envoyée et quitte la file avec le statut expirée (payload_too_large).
  • Classe C : envoyée au débit de la RX2 (DR0 par défaut), donc 51 octets au maximum. Une charge plus grande quitte la file avec le statut expirée.

Avec "confirmed": true, l’appareil accuse réception lors de sa prochaine remontée.

  • Classe A : le serveur réseau la renvoie aux remontées suivantes jusqu’à réception de l’accusé, avec au total 3 envois maximum (paramètre de profil maxRetries).
  • Classe C : elle attend le délai du profil Downlink confirmé : attendre l’accusé de réception (secondes) (60 s par défaut), puis est renvoyée avec un nouveau compteur de trames, avec au total 3 envois maximum.
  • Sans accusé de réception après le dernier envoi, la commande quitte la file avec le statut expirée (no_ack).

Utilisez les downlinks confirmés uniquement pour les actions importantes. Chaque envoi utilise le duty cycle de la passerelle.

Résultats

Ce qui s’est passéÉtat de la commande
Une passerelle a émis le downlinkDELIVERED ; une commande à sens unique passe ensuite à SUCCESSFUL
L’expiration de la commande est passée avant son envoiEXPIRED
Paramètres erronés ou charge utile trop grande, avant tout envoiEXPIRED

Pour un downlink confirmé, l’état de la commande suit la première émission. L’accusé lui-même et les éventuels renvois apparaissent dans le journal des trames.

Le journal des trames affiche chaque downlink sous la forme Downlink, Envoyé via passerelle avec sa fenêtre (RX1, RX2 ou RXC) et son FPort. Une passerelle Basics Station ne signale pas les émissions échouées ; le compteur lora.gw.dn_unknown de la passerelle indique les downlinks sans résultat.

Le serveur réseau envoie aussi les accusés de réception des uplinks confirmés, les join accept et les commandes MAC (ADR et paramètres radio). Ceux-ci n’apparaissent pas comme des commandes. Voir ADR, débits de données et commandes MAC.

Voir aussi