Pular para o conteúdo principal

Integração com Ubidots (via TTS)

Ubidots é uma plataforma de desenvolvimento de aplicações de IoT de baixo código que permite montar e lançar rapidamente aplicações de IoT sem precisar escrever código ou contratar uma equipe de desenvolvimento de software. Hoje em dia, mais de 40.000 aplicações já conectam os pontos com a Ubidots.

Para atender à crescente necessidade de criação de aplicações de IoT, temos cooperado com a Ubidots e apoiado a comunidade para adicionar o SenseCAP T1000 Tracker facilmente à Ubidots por meio da The Things Network.

pir

Antes de iniciar a configuração, verifique Conectar o SenseCAP T1000 ao TTS para conectar primeiro o seu SenseCAP T1000 Tracker ao TTS.

Configurar a Ubidots

Para começar, crie uma conta na Ubidots.

Faça login na sua conta Ubidots e localize a aba Devices na parte superior do seu painel. Na lista suspensa, escolha Plugins.

Plugins da Ubidots

Clique em + ou no botão Create Data Plugin para criar um novo plugin.

pir

Quando forem apresentados os plugins disponíveis, selecione o plugin The Things Stack.

pir

Em seguida, você precisa selecionar um token Ubidots. Você pode usar o Default token ou também criar um novo token.

pir

Para criar um novo token, primeiro clique no seu avatar no canto superior direito e selecione API Credentials. Em seguida, selecione More abaixo do Default token e adicione um novo token na página de API Credentials.

pir

Selecione > para continuar e depois clique na marca de verificação para finalizar.

pir

Configurar o Decoder

Depois de criar o plugin, vá para a seção decoder, exclua todo o código e substitua-o pelo seguinte:

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 o The Things Stack

Quando você tiver preparado a configuração na Ubidots, será necessário criar uma integração de Webhook no The Things Stack usando o template de Webhook da Ubidots.

No The Things Stack, navegue até IntegrationsWebhooks e clique em Add Webhook.

pir

Escolha o template de Webhook Ubidots.

pir

Dê um nome à sua integração preenchendo o Webhook ID e cole os valores de Plugin ID e token Ubidots.

pir

info

Para encontrar o plugin ID, clique no plugin recém-criado e navegue até a aba Decoder à esquerda. O plugin ID está disponível como parte da URL do HTTPs Endpoint (conforme destacado na imagem abaixo).

pir

Monitorar seus Dados

Depois de concluir a integração, navegue até o menu Devices. Você verá seu dispositivo final aparecendo na lista de dispositivos finais assim que ele enviar uma mensagem uplink.

pir

Loading Comments...