Ir al contenido principal
Todas las coleccionesGuías de usuario
Eventos: Gestionar mensajes de bajada a TTS V3 utilizando webhooks
Eventos: Gestionar mensajes de bajada a TTS V3 utilizando webhooks

Aprende a enviar mensajes de bajada al back-end de The Things Stack desde Ubidots.

David Sepúlveda avatar
Escrito por David Sepúlveda
Actualizado hace más de 3 meses

Un mensaje de bajada comprende la última milla en el ciclo de comunicación del IoT, permite que los dispositivos, conectados a la capa de aplicación a través de protocolos que requieren plataformas intermedias, sean controlados o configurados-modificados a distancia. Un ejemplo de esto son los dispositivos que utilizan el protocolo de comunicación LoRaWAN y The Things Stack V3, TTS, como servidor de red. TTS proporciona una API activada por solicitudes POST para enviar mensajes desde la nube a los dispositivos, es decir, mensajes de bajada.

Siguiendo esta guía, podrás enviar mensajes desde la plataforma Ubidots a un dispositivo conectado a TTS utilizando el módulo de eventos y la API de bajada de TTS.

Requisitos

Tabla de Contenidos

1. Configurar un evento de bajada en Ubidots a TTS

Los pasos a continuación indican cómo crear un evento en Ubidots para realizar un mensaje de bajada al backend de TTS V3, y así controlar dispositivos desde la interfaz de usuario de Ubidots.

Paso 1: Abre el módulo de Eventos ubicado en el menú desplegable de Datos.
Paso 2: Crea un nuevo evento y configura la condición que se activará en función de los valores de la variable de control.
Paso 3: A continuación, en la sección de Acciones, selecciona la acción "Activar Webhook".


Paso 4: Dirígete a tu consola de TTS y selecciona la aplicación que alberga el dispositivo al que deseas hacer una bajada.

Paso 5: Extrae la siguiente información de tu panel de consola de aplicación:

  • Región: La región donde reside tu TTS.

  • ID de Aplicación: encontrado en la vista general de la Aplicación

  • Clave de Acceso de Aplicación: La consola de TTS V3 no permite ver las Claves de API existentes. Por lo tanto, a menos que ya tengas una Clave de API existente guardada en un lugar seguro, tendrás que crear una nueva Clave de API. El derecho "Registrar tráfico de aplicación de bajada" es obligatorio para permitir el tráfico de bajada.

  • ID de Dispositivo: Encontrado en la pestaña "Dispositivos finales".

Paso 6: Ingresa la información requerida en el panel de opciones del webhook de la acción del evento. Esta información corresponde a la información enviada en la solicitud POST al backend de TTS V3:


Método HTTP y URL

Edición comunitaria:

  • POST

  • https://<region>.cloud.thethings.network/api/v3/as/applications/<application-id>/devices/<device-id>/down/push => necesitarás reemplazar <region>, <application-id> y <device-id> con la información obtenida en el paso anterior.

Consejo PRO: Si utilizas el plugin de TTS, puedes agregar el <device-id> dinámicamente añadiendo el marcador Device Label.

Nube y Nube Dedicada:

  • POST

  • https://<tenant-id>.<region>.cloud.thethings.industries/api/v3/as/applications/<application-id>/devices/<device-id>/down/push => necesitarás reemplazar <tenant-id>, <region>, <application-id> y <device-id> con la información obtenida en el paso anterior.

Encabezados: necesitarás 2, uno para el Content-Type y otro para la Autorización. Sigue la estructura “clave: valor”

  • Content-Type : application/json

  • Authorization : Bearer <API Key> => Necesitarás reemplazar <API Key> con la Clave de API de TTS v3.

Paso 7: Ingresa el cuerpo JSON. Este es el JSON esperado por el backend de TTS V3. Puedes enviar ya sea una carga útil en base-64 o una carga útil legible por humanos.

  • carga útil en base-64
    {"downlinks":[{"frm_payload":"<base-64-payload>","f_port":<port>,"priority":"NORMAL"}]}
    Necesitarás reemplazar <base-64-payload> con la carga útil formateada en base-64, <port> con el puerto de escucha de tu dispositivo.

  • Carga útil legible por humanos
    {"downlinks":[{"decoded_payload":<key-value payload>, "f_port":<port>,"priority":"NORMAL" }]}
    Necesitarás reemplazar <key-value payload> con la carga útil a enviar formateada como pares clave:valor, por ejemplo {"power":50 , "activation":"true"} ; y <port> con el puerto de escucha de tu dispositivo.

Paso 8 (opcional): Establecer la opción "Volver a la normalidad" si es necesario, igual que en el Paso 7. Esto activará un segundo mensaje de bajada una vez que la condición del evento ya no sea verdadera.

Paso 9: Sigue hasta el último paso en la creación del evento y nómbralo.

2. Resultados

Después de configurar tu evento de bajada para que se active una vez que se cumpla la condición, deberías ver algo similar al GIF a continuación en tu pestaña de Datos en Vivo de TTS.

Configuramos este ejemplo de evento para que se activara cuando una variable de control es 1, enviando un JSON con los campos de carga útil :
{"variable": 1}

Y luego, cuando la variable de control se apaga y el valor es 0, realiza un segundo mensaje de bajada enviando una carga útil en bruto codificada en base64:
SG9sYQ==

Otros usuarios también vieron:

¿Ha quedado contestada tu pregunta?