Esta página enumera en un solo lugar las rutas REST del servidor de red LoRaWAN de Hermetry. Cada tema tiene una página en la sección LoRaWAN con el significado completo de los campos; esta página enlaza a ellas. Las rutas cuelgan de https://<your host>/tenant/<tenantId>. Todas las respuestas de estas rutas se envían con Cache-Control: no-store.
Permisos
| Permiso | Rol por defecto | Permite |
|---|---|---|
iot_lorawan.gateways.read | Usuario | Leer las pasarelas y la dirección del servidor de red |
iot_lorawan.gateways.manage | Administrador | Añadir, editar, deshabilitar y eliminar pasarelas, rotar sus tokens |
iot_lorawan.devices.read | Usuario | Leer dispositivos LoRaWAN, ajustes de perfil y emparejamiento |
iot_lorawan.devices.manage | Administrador | Añadir, editar y eliminar dispositivos, establecer claves, finalizar sesiones, emparejamiento |
iot_lorawan.keys.read | Administrador | Mostrar el AppKey de un dispositivo |
iot_lorawan.frames.read | Usuario | Leer el registro de tramas en vivo |
Configuración
GET /api/iot/lorawan/setup (gateways read) responde con la dirección del servidor de red y la dirección de descubrimiento que necesita una pasarela Basics Station, si se ofrece un archivo tc.trust y la región. Nada secreto. Consulte Su dirección del servidor de red.
Pasarelas
| Método | Ruta | Permiso | Función |
|---|---|---|---|
| GET | /api/iot/lorawan/gateways | gateways read | Lista: { data, total, canManage } |
| POST | /api/iot/lorawan/gateways | gateways manage | Añade una pasarela Basics Station: { gateway, token, stationConfig } |
| GET | /api/iot/lorawan/gateways/{gatewayId} | gateways read | { gateway, live, devicesHeard } |
| PATCH | /api/iot/lorawan/gateways/{gatewayId} | gateways manage | name, status (ACTIVE o DISABLED), latitude, longitude, altitude |
| DELETE | /api/iot/lorawan/gateways/{gatewayId} | gateways manage | Cierra su conexión, libera su EUI y la elimina |
| POST | /api/iot/lorawan/gateways/{gatewayId}/credentials | gateways manage | Nuevo token: { gateway, token, stationConfig } |
La lista admite page (desde 0), pageSize, search, sort (name, eui, protocol, mode, status, region, lastSeen, createdAt; por defecto name:asc) y los filtros protocol, mode, status, region, deviceId, online.
Cuerpo de creación:
{ "eui": "AA555A0000000101", "name": "Roof gateway", "latitude": 41.0151, "longitude": 28.9795, "altitude": 45 }
eui es obligatorio (16 caracteres hexadecimales; los guiones, dos puntos y espacios se ignoran), name de 1 a 128 caracteres. El protocolo por defecto es Basics Station, el modo cloud y la región EU868, la única ofrecida. El token aparece solo en esta respuesta. Los routers licenciados no se añaden aquí: pasan al modo cloud desde su propio panel, consulte Routers licenciados como pasarelas LoRaWAN. Rotar el token de una pasarela que no usa uno se rechaza: «This gateway does not use a token.» Consulte Añadir una pasarela y Credenciales de pasarela, deshabilitar y eliminar.
Dispositivos
| Método | Ruta | Permiso | Función |
|---|---|---|---|
| GET | /api/iot/lorawan/devices | devices read | Lista: { data, total, canManage } |
| POST | /api/iot/lorawan/devices | devices manage | Añade un dispositivo OTAA o ABP (201 { device }) |
| GET | /api/iot/lorawan/devices/{deviceId} | devices read | { device }: el registro y su sesión activa, nunca una clave |
| PATCH | /api/iot/lorawan/devices/{deviceId} | devices manage | name, joinEui, appKey, macVersion, class, anyJoinEui, codecId; para ABP devAddr, nwkSKey, appSKey juntos |
| DELETE | /api/iot/lorawan/devices/{deviceId} | devices manage | Elimina el dispositivo, sus sesiones y su reserva de DevEUI |
| POST | /api/iot/lorawan/devices/{deviceId}/key | keys read | Muestra el AppKey: { appKey }; cada llamada queda auditada |
| DELETE | /api/iot/lorawan/devices/{deviceId}/session | devices manage | Finaliza la sesión; el dispositivo debe volver a unirse |
| DELETE | /api/iot/lorawan/devices/{deviceId}/counters | devices manage | Restablece los contadores de trama de un dispositivo ABP |
| POST | /api/iot/lorawan/devices/{deviceId}/approve | devices manage | Aprueba un dispositivo que añadió el modo de emparejamiento |
La lista admite page (desde 0), pageSize, search, sort (name, devEui, macVersion, class, createdAt; por defecto createdAt:desc), y los filtros macVersion, class y joinState (joined, refused, never).
Añadir un dispositivo OTAA
{
"name": "Cold room 3",
"devEui": "1122334455667701",
"appKey": "2B7E151628AED2A6ABF7158809CF4F3C",
"joinEui": "0000000000000000",
"macVersion": "1.0.3",
"class": "A",
"codecId": "auto",
"anyJoinEui": false
}
Solo name, devEui y appKey son obligatorios; el resto muestra los valores por defecto. macVersion es 1.0.2, 1.0.3 o 1.0.4; class es A o C. La respuesta nunca incluye el AppKey, solo hasAppKey: true. Un nuevo AppKey restablece el historial de nonces de unión del dispositivo. Consulte Añadir un dispositivo OTAA.
Añadir un dispositivo ABP
{
"name": "Water meter 12",
"activation": "ABP",
"devEui": "1122334455667712",
"devAddr": "26011F3A",
"nwkSKey": "…32 hexadecimal characters…",
"appSKey": "…32 hexadecimal characters…"
}
Se rechaza un cuerpo ABP con appKey, o un cuerpo OTAA con claves de sesión. Consulte Añadir un dispositivo ABP.
Ajustes de perfil y emparejamiento
| Método | Ruta | Permiso | Función |
|---|---|---|---|
| GET | /api/iot/lorawan/profiles/{profileId}/settings | devices read | { settings } de la pestaña LoRaWAN del perfil |
| PUT | /api/iot/lorawan/profiles/{profileId}/settings | devices manage | Cámbialos; sharedAppKey es solo de escritura |
| GET | /api/iot/lorawan/profiles/{profileId}/pairing | devices read | { pairing }: la ventana y los dispositivos que añadió |
| POST | /api/iot/lorawan/profiles/{profileId}/pairing | devices manage | { "minutes": 1–120 } abre la ventana o mueve su fin |
| DELETE | /api/iot/lorawan/profiles/{profileId}/pairing | devices manage | Cierra la ventana ahora |
Los campos de ajustes, incluidos los que solo define la API, se describen en Perfiles de dispositivo LoRaWAN. El emparejamiento se explica en Modo de emparejamiento y Aprobar dispositivos emparejados.
Registro de tramas
GET /api/iot/lorawan/frames?deviceId={deviceId}&gatewayId={gatewayId}&limit=200
{ frames }: sus tramas recientes, la más nueva primero, de un registro en vivo breve que no se almacena. Una trama descartada de un dispositivo de otra organización muestra solo su motivo. Consulte El registro de tramas.
Downlinks y codecs
- Los downlinks de aplicación son comandos con el método
lora.downlink:{ "fPort": 1–223, "data": "<hex or base64>", "confirmed": false }, enviados con la API de comandos. Consulte Downlinks. - Los codecs tienen sus propias rutas: API de codecs.
Rechazos
Los rechazos de LoRaWAN llevan mensajes sencillos, por ejemplo «A Basics Station gateway always runs in cloud mode.», «This gateway does not use a token.» o una clave que no tiene 32 caracteres hexadecimales. Los campos que no cumplen las reglas devuelven un 400 con issues. Consulte Errores y límites de uso.

