Skip to main content

Integración con Ubidots (vía TTS)

Ubidots es una plataforma de desarrollo de aplicaciones IoT de bajo código que permite ensamblar y lanzar rápidamente aplicaciones IoT sin tener que escribir código o contratar un equipo de desarrollo de software. Hoy en día, más de 40,000+ aplicaciones ya conectan los puntos con Ubidots.

Para satisfacer la creciente necesidad de construir aplicaciones IoT, hemos estado cooperando con Ubidots y apoyando a la comunidad para agregar fácilmente el SenseCAP T1000 Tracker a Ubidots a través de The Things Network.

pir

Antes de comenzar la configuración, por favor revisa Conectar SenseCAP T1000 a TTS para conectar primero tu SenseCAP T1000 Tracker a TTS.

Configurar Ubidots

Para comenzar, crea una cuenta con Ubidots.

Inicia sesión en tu cuenta de Ubidots y encuentra la pestaña Devices en la parte superior de tu panel de control. En su lista desplegable, elige Plugins.

Plugins de Ubidots

Haz clic en el + o en el botón Create Data Plugin para crear un nuevo plugin.

pir

Cuando se te presenten los plugins disponibles, selecciona el plugin The Things Stack.

pir

A continuación, necesitas seleccionar un token de Ubidots. Puedes usar el Default token, también puedes crear un nuevo token.

pir

Para crear un nuevo token, primero haz clic en tu avatar en la esquina superior derecha y selecciona API Credentials. Luego selecciona More debajo del Default token y agrega un nuevo token dentro de la página API Credentials.

pir

Selecciona > para continuar y luego presiona la marca de verificación para finalizar.

pir

Configurar el Decodificador

Una vez creado el plugin, ve a la sección del decodificador, elimina todo el código y reemplázalo por el siguiente:

pir

const HOTSPOT_INFO = false;

function handleErrorIfExists(data){
const error = 'error' in data;
if (error) {
const errorMsg = { "error": { "value": data.errorCode, "context" : { "reason": data.error } } };
return errorMsg;
}
return false;
}

function addLat(lat, ubidotsPayload){
ubidotsPayload.position.context.lat = lat;
}

function addLng(lng, ubidotsPayload){
ubidotsPayload.position.context.lng = lng;
}

const coordinateActions = {
"Longitude": addLng,
"Latitude": addLat,
}

const assignPayloadKeys = (data, ubidotsPayload) => {
const { type, measurementValue } = data;

if (type === "Longitude" || type === "Latitude") {
if (!ubidotsPayload.position) {
ubidotsPayload.position = { "value": 1, "context": { "lat": undefined, "lng": undefined } };
}
coordinateActions[type](measurementValue, ubidotsPayload);
}
else if (data.type === "Timestamp") {
ubidotsPayload.timestamp = data.measurementValue;
}
else {
ubidotsPayload[type] = measurementValue;
}
};

function buildUbidotsPayload(data){
const ubidotsPayload = {};
data.forEach(innerData => {
innerData.forEach(innerInnerData => {
assignPayloadKeys(innerInnerData, ubidotsPayload);
});
});
return ubidotsPayload;
}

async function formatPayload(args){

const data = args.uplink_message.decoded_payload.messages;
let ubidotsPayload = {};

const error = handleErrorIfExists(data[0][0]);
if (error) return error;

if (HOTSPOT_INFO) {
const { hotspots, port, fcnt } = args;
const { snr, rssi } = hotspots[0];
Object.assign(ubidotsPayload, { SNR: snr, RSSI: rssi, port, 'Frame Counter': fcnt });
}
ubidotsPayload = buildUbidotsPayload(data);
console.log(ubidotsPayload);
return ubidotsPayload;
};

module.exports = { formatPayload };

Configurar The Things Stack

Cuando hayas preparado la configuración en Ubidots, entonces necesitas crear una integración Webhook en The Things Stack usando la plantilla Webhook de Ubidots.

En The Things Stack, navega a IntegrationsWebhooks, y haz clic en Add Webhook.

pir

Elige la plantilla Webhook de Ubidots.

pir

Nombra tu integración completando el Webhook ID, y pega los valores del Plugin ID y el token de Ubidots.

pir

info

Para encontrar el plugin ID, haz clic en tu plugin recién creado y navega a la pestaña Decoder en la izquierda. El plugin ID está disponible como parte de la URL del HTTPs Endpoint (como se resalta en la imagen a continuación).

pir

Monitorear Tus Datos

Después de que hayas completado la integración, navega al menú Devices. Verás tu dispositivo final apareciendo en la lista de dispositivos finales tan pronto como envíe un mensaje uplink.

pir

Loading Comments...