Novedad: el cortafuegos de IA supervisa cada módulo y explica cada incidente con palabras sencillas. Vea cómo funciona

Envío de downlinks

Envía downlinks de aplicación en bruto a dispositivos LoRaWAN con el comando lora.downlink: parámetros, tiempos por clase, tamaños y resultados.

Un downlink es una trama que va de la red a un dispositivo: por ejemplo, un nuevo intervalo de envío para un sensor, o «open» para una válvula. En Hermetry envías un downlink de aplicación como un comando con el método lora.downlink. Tú proporcionas los bytes, tal como los documenta el fabricante del dispositivo; Hermetry no los construye a partir de comandos con nombre.

ParámetroObligatorioSignificado
fPortSíEl puerto de aplicación, 1–223, según lo especifique el fabricante del dispositivo
dataSíLa carga útil en hexadecimal ("0100003C") o en base64 ("AQAAPA=="); ambas dan los mismos bytes. Como máximo 1.024 caracteres.
confirmedNotrue pide al dispositivo que confirme la recepción. Por defecto, false.
{
  "method": "lora.downlink",
  "params": { "fPort": 10, "data": "0100003C", "confirmed": false }
}

Un comando con parámetros ausentes o incorrectos no se envía; pasa a la cola como caducado.

Enviarlo

lora.downlink es un comando como cualquier otro, así que se aplican las reglas generales de Envío de comandos a dispositivos.

Desde la página del dispositivo: añade lora.downlink al catálogo de Comandos del perfil LoRaWAN del dispositivo, con parámetros fijos o editables y un nivel que decide quién puede enviarlo. Después envíalo desde la pestaña Comandos del dispositivo. Una entrada del catálogo por acción (por ejemplo, «Informar cada 10 minutos» con sus bytes fijos) es más fácil para tu equipo que los bytes en bruto.

Como método directo: sin una entrada en el catálogo, solo los propietarios pueden enviarlo.

A través de la 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 }

Desde un flujo: el bloque Enviar comando envía un comando del catálogo al dispositivo del mensaje.

Opciones recomendadas:

  • Unidireccional: un dispositivo LoRaWAN no responde a un comando; un comando bidireccional esperaría una respuesta que nunca llega y terminaría como TIMEOUT.
  • Persistente, con caducidad: un dispositivo Clase A puede no transmitir durante un tiempo, y el comando debe esperar en la cola.

Cuándo se envía

ClaseMomento
AEn el siguiente uplink del dispositivo, en su ventana RX1 o RX2. Un dispositivo que informa cada hora lo recibe hasta una hora después.
CDe inmediato, en el canal RX2, a través de la pasarela que escuchó al dispositivo por última vez, siempre que su último uplink tenga menos de 15 minutos. En caso contrario, en su siguiente uplink.

Solo se envía un downlink de aplicación por cada uplink de un dispositivo Clase A. Cuando hay más en cola, el servidor de red activa el indicador «more data pending», que pide a muchos dispositivos que vuelvan a transmitir pronto. Consulta Clases de dispositivo A y C.

Tamaño

La carga útil debe caber en la velocidad de datos de la ventana por la que sale, junto con los comandos MAC que esperen al dispositivo:

Velocidad de datosCarga útil máxima
DR0–DR251 bytes
DR3115 bytes
DR4–DR7222 bytes
  • Clase A: si no cabe esta vez, espera a un uplink con una velocidad de datos más alta. Una carga útil mayor de 222 bytes nunca se podrá enviar y pasa a la cola como caducada (payload_too_large).
  • Clase C: se envía a la velocidad de datos de RX2 (DR0 por defecto), por tanto como máximo 51 bytes. Una mayor pasa a la cola como caducada.

Con "confirmed": true el dispositivo confirma la recepción en su siguiente uplink.

  • Clase A: el servidor de red lo reenvía en los siguientes uplinks hasta que llega la confirmación, hasta 3 envíos en total (ajuste del perfil maxRetries).
  • Clase C: espera los Downlink confirmado: esperar la confirmación (segundos) del perfil (60 s por defecto) y después lo reenvía con un nuevo contador de trama, hasta 3 envíos en total.
  • Sin confirmación tras el último envío, el comando pasa a la cola como caducado (no_ack).

Usa los downlinks confirmados solo para acciones importantes. Cada envío consume el ciclo de trabajo (duty cycle) de la pasarela.

Resultados

Qué ocurrióEstado del comando
Una pasarela transmitió el downlinkDELIVERED; un comando unidireccional termina entonces como SUCCESSFUL
Pasó la caducidad del comando antes de poder enviarloEXPIRED
Parámetros incorrectos o carga útil demasiado grande, antes de enviarseEXPIRED

En un downlink confirmado, el estado del comando sigue a la primera transmisión. La confirmación en sí y los reenvíos aparecen en el registro de tramas.

El registro de tramas muestra cada downlink como Downlink, Enviado vía pasarela con su ventana (RX1, RX2 o RXC) y su FPort. Una pasarela Basics Station no informa de las transmisiones fallidas; el contador lora.gw.dn_unknown de la pasarela muestra los downlinks sin resultado.

El servidor de red también envía las confirmaciones de los uplinks confirmados, los join accept y los comandos MAC (ADR y ajustes de radio). Estos no aparecen como comandos. Consulta ADR, velocidades de datos y comandos MAC.

Relacionado