El Golioth Plugin es una función sin servidor diseñada para recibir eventos de flujo de LightDB de la plataforma Golioth y cargarlos adecuadamente en Ubidots. Todos los pasos necesarios para configurar dispositivos y variables en Ubidots serán realizados por la lógica del plugin, por lo que no tienes que preocuparte por esas cosas rudimentarias.
Si todo lo anterior se lee bien, sigue esta guía para comenzar a recibir eventos de flujo de LightDB de Golioth en Ubidots.
Requisitos
Una cuenta de Ubidots activa.
Una cuenta de Golioth activa.
Al menos un dispositivo que ya esté enviando datos a LightDB Stream.
1. Configuración del plugin
Inicia sesión en tu cuenta de Ubidots, haz clic en la pestaña Dispositivos, luego en Plugins, y haz clic en el icono + para crear un nuevo plugin de datos y busca el plugin de Golioth.
El asistente de configuración del plugin aparecerá, haz clic en Siguiente y selecciona/llena los parámetros requeridos.
Token de Ubidots: Selecciona el token de Ubidots que te gustaría usar para este plugin. Se recomienda crear un nuevo token dedicado solo a este plugin, en caso de que necesites aumentar su límite de tasa en el futuro.
LightDB Stream: Ubicación del flujo de datos a usar con este plugin. Digamos que estás haciendo algo como lo siguiente en tu código para enviar datos a LightDB Stream:
err = golioth_lightdb_set(client, GOLIOTH_LIGHTDB_STREAM_PATH("temp"), COAP_CONTENT_FORMAT_TEXT_PLAIN, str_temperature, strlen(str_temperature));
La ubicación del flujo en este caso estemp
, es decir, la cadena dada como argumento a la macroGOLIOTH_LIGHTDB_STREAM_PATH()
.
Flujo de nivel raíz: Configura esto si estás enviando datos al flujo de nivel raíz, es decir, estás usandoGOLIOTH_LIGHTDB_STREAM_PATH()
con una cadena vacía (""
). Activar esta opción hará que se ignore el campo LightDB Stream, a pesar de esto, aún es necesario poner algo en él.
Tipo de dispositivo: Se creará un tipo de dispositivo de Ubidots y se vinculará a este plugin. Esto te permite hacer cambios por lotes a todos los dispositivos que reciben datos a través de este plugin.
Haz clic en Siguiente para finalizar el proceso. Verás el nuevo plugin listado en la lista de Plugins. Haz clic en el plugin recién creado y navega a la sección Decoder en el menú de la izquierda y copia del campo HTTPs Endpoint URL la URL que usarás para configurar el webhook en tu Golioth Dashboard.
2. Configuración del flujo de salida
Inicia sesión en Golioth Console y navega a la sección Output Streams en el panel izquierdo, luego haz clic en Crear un flujo de salida.
Selecciona Webhooks como el Tipo de flujo de salida.
Dale un nombre al flujo de salida, selecciona *DEVICE_STREAM_TYPE* como el Filtro de Tipo de Evento, establece *HTTPs Endpoint URL* de la sección anterior como el URI del Webhook. Finalmente, agrega un encabezado con la clave X-Auth-Token y el valor a tu Ubidots.
Si la creación del flujo de salida fue exitosa, verás un resumen de la configuración del webhook y su estado como habilitado.
3. Uso avanzado
Por defecto, el plugin espera recibir una carga útil JSON como se indica en la descripción del tipo de evento DeviceStreamMessage en la documentación de Golioth:
{ "device_id": "612d3cecf3ee17d321adbec6", "data": { "temp": { "temperature": 34 } }, "timestamp": { "nanos": 250818000, "seconds": 1642796612 }}
El valor de device_id
se utilizará como la etiqueta del dispositivo en Ubidots y timestamp
se redondeará a precisión de milisegundos. Cada par key: value
dentro del objeto data
se interpretará como variable_label: variable_value
y se enviará tal cual al dispositivo en tu cuenta de Ubidots. Si por alguna razón eso no cumple con tus requisitos, puedes personalizar cómo se procesa la data recibida antes de que se envíe a Ubidots editando el código de la Función de Decodificación. Para eso, puedes ir a la configuración de decodificación del plugin (ver Sección 1.3) y editar el código de la función para adaptarlo mejor a tus necesidades. El valor de retorno de esa función debe ajustarse al formato indicado aquí.