Ubidots y Helium se han asociado para crear una integración preconstruida que permite a los usuarios enviar fácilmente datos de sensores desde Helium Console a Ubidots utilizando Plugins.
Esta integración está optimizada para decodificar automáticamente el esquema JSON de Helium (extrayendo elementos como metadatos de hotspot para que no tengas que hacerlo), mientras que aún permite una personalización completa utilizando el poder de Python.
Requisitos
1. Creando un Plugin de Helium
Un plugin de Helium es una función sin servidor que expone una URL de Endpoint HTTP privada optimizada para decodificar el esquema JSON de Helium. Cada vez que se recibe una solicitud HTTP POST en dicha URL, se ejecutará una función de decodificación predefinida.
Puedes crear un plugin desde la consola de Helium o desde la plataforma de Ubidots:
Creando el plugin desde Helium
1. En tu cuenta de Ubidots, copia un token de cuenta existente o nuevo. Recomendamos crear un nuevo token dedicado solo a este plugin, en caso de que necesites aumentar su límite de tasa en el futuro.
2. En la consola de Helium, ve a "Integraciones", luego haz clic en "Ubidots":
3. Pega el token de cuenta de Ubidots en el campo "Ingresa el token de autenticación", luego haz clic en "Obtener URL de Webhook". Esto provisionará automáticamente un nuevo plugin de Helium dentro de tu cuenta de Ubidots.
4. Agrega un nombre a la integración, asigna una etiqueta de Helium y haz clic en "Agregar integración" para finalizar el proceso:
CONSEJO: Las etiquetas de Helium son un mecanismo poderoso para organizar dispositivos e integraciones. Simplemente adjunta una etiqueta a uno o más dispositivos, y luego adjunta la misma etiqueta a una o más integraciones.
5. Finalmente, regresa a tu cuenta de Ubidots, ve a la pestaña "Dispositivos", haz clic en "Plugins", y verifica que se haya creado un plugin:
El plugin puede tardar hasta un minuto en provisionarse.
Creando el plugin desde Ubidots
Alternativamente, los usuarios avanzados pueden optar por crear el plugin directamente desde Ubidots, y luego crear una integración HTTP personalizada en Helium.
En tu cuenta de Ubidots, ve a la pestaña "Dispositivos", haz clic en "Plugins", luego haz clic en el ícono "+" para crear un nuevo Plugin. Busca el Plugin de Helium y haz clic en él:
2. Aparecerá el README del plugin. Haz clic en el ícono "Siguiente", luego revisa la configuración:
Tipo de dispositivo de Ubidots: Se creará un tipo de dispositivo de Ubidots y se vinculará a este plugin. Esto te permite hacer cambios masivos a todos los dispositivos que reciben datos a través de este plugin.
Etiquetas de Helium como: Selecciona cómo te gustaría que se trataran las etiquetas de Helium dentro de Ubidots. Actualmente soporta "Etiquetas de dispositivo".
Token de Ubidots: Selecciona el token de Ubidots que te gustaría usar para este plugin. Recomendamos crear un nuevo token dedicado solo a este plugin, en caso de que necesites aumentar su límite de tasa en el futuro.
3. Finaliza el proceso y aparecerá un nuevo plugin en la lista de Plugins:
4. Haz clic en el nuevo Plugin de Helium creado, haz clic en la pestaña "Decodificador" y copia la "URL de Endpoint HTTPs":
5. Finalmente, ve a la consola de Helium, crea una integración HTTP y pega la "URL de Endpoint HTTPs" del plugin:
2. Decodificando cargas útiles de dispositivos Helium
Después de crear un Plugin de Helium y hacer clic en él, verás una pestaña "Decodificador", que contiene una "Función de Decodificación" que puedes editar a tu antojo, para decodificar tus tramas de datos.
Por defecto, verás un decodificador de muestra pre-cargado que hace lo siguiente:
Crear variables de RSSI y SNR para cada hotspot que recibe una señal de tu dispositivo.
Crear un Contador de tramas y una variable de Puerto.
Si se encuentra, el JSON decoded.payload se enviará tal cual a Ubidots, asumiendo que tiene un formato amigable con Ubidots. Si no, entonces se puede usar un decodificador personalizado.
Ubidots creará automáticamente un dispositivo cada vez que se reciba una carga útil de un nuevo dispositivo. Esto te ahorra la necesidad de crear manualmente cientos o miles de dispositivos, o copiar y pegar DevEUI de una plataforma a otra.
Consulta aquí cómo el esquema JSON de Helium se mapea a los dispositivos de Ubidots:
Ten en cuenta que puedes cambiar algunas, pero no todas, de las configuraciones anteriores:
Configuraciones que SE PUEDEN editar desde la función de decodificación:
Parámetros de hotspot: Puedes optar por eliminar parámetros no deseados
Variables: Puedes optar por eliminar variables, o incluso crear nuevas utilizando el poder de Python (¡Consulta las bibliotecas soportadas!)
Marca de tiempo: Puedes optar por ignorar la marca de tiempo de Helium y hacer que nuestra API asigne una automáticamente al recibirla
Configuraciones que NO SE PUEDEN editar en la función de decodificación:
Nombre del dispositivo: El Plugin siempre utiliza el nombre del dispositivo de Helium como el nombre del dispositivo de Ubidots
Etiqueta del dispositivo: El Plugin siempre utiliza el "id" de Helium como etiqueta del dispositivo de Ubidots
Propiedades del dispositivo: El Plugin siempre utiliza "app_eui", "dev_eui" y "devaddr" de Helium como propiedades del dispositivo de Ubidots.
Si deseas tener control sobre estos, es posible que desees construir tu propia UbiFunction en su lugar.
3. Editando el tipo de dispositivo del Plugin
Se creará un tipo de dispositivo de Ubidots y se vinculará a este plugin. Esto te permite hacer cambios masivos a todos los dispositivos que reciben datos a través de este plugin.
Por ejemplo, imaginemos que editaste la función de decodificación para generar dos variables: Temperatura y Presión. Por defecto, estas variables contendrán colores e íconos predeterminados, y no unidades. Si deseas que cada dispositivo futuro tenga una configuración automática y personalizada para estas variables, entonces querrás cambiar el tipo de dispositivo:
4. Solución de problemas
La mejor manera de probar el plugin es haciendo una solicitud HTTP a la URL del Plugin. Simplemente toma la carga útil JSON de muestra de la documentación de Helium, y envíala en una solicitud HTTP POST utilizando un cliente HTTP de tu elección (Postman o similar). Asegúrate de agregar el encabezado "Content-Type:application/json":
Después de hacer la solicitud, se debería crear un nuevo dispositivo.
Ten en cuenta que la primera vez que se ejecuta el plugin, puede tardar unos segundos en responder. Para verificar los registros del Plugin, ve al Plugin, haz clic en la sección "Registros" y deberías ver una lista de las últimas ejecuciones. Haz clic en la última y verifica su contenido:
5. Comentarios y sugerencias
No dudes en publicar preguntas o sugerencias en nuestro portal comunitario, o envíanos un correo a support@ubidots.com.
Aprende más sobre otros plugins: