O Node.js SDK se integra perfeitamente ao LNS (Lorawan Network Server) da Things Network, permitindo que os desenvolvedores conectem e gerenciem facilmente os dispositivos IoT. Com suporte de API extenso, este pacote simplifica a interação do aplicativo com o ecossistema de Lorawan da TTN, permitindo o provisionamento de dispositivos, transmissão de dados e monitoramento de status do dispositivo. Utilize o Node.js SDK amigável para aumentar a conectividade e o gerenciamento de dados na infraestrutura de Lorawan da Things Network.
Este SDK também trabalha com "The Things Industries" e hospedou particular "The Things Stack Instância".
Pronto para começar a usar o SDK? Vamos começar!
Documentação : ttn-node-sdk.fuota.io
Github : The-Things-Network-NodeJS-SDK
Para métodos relacionados ao decâncias finais: EndDevice
Para métodos relacionados ao aplicativo: aplicação
Para métodos relacionados a gateway: gateway
Para métodos relacionados ao usuário: Usuário
Para métodos relacionados à organização: organização
Para instalar a versão mais recente no NPM localmente e salvá -la no arquivo package.json do seu pacote:
NPM Instale a rede-network-Save
Para instalar uma versão específica:
NPM Instale a rede-network@versão-Save
Digamos que você queira criar um aplicativo, ele pode ser criado para usuário e organização ...
Para mais informações, consulte o seguinte: Crie um aplicativo para o usuário
import { User } from 'the-things-network';
//just an example of config
const config = {
IDENTITY_SERVER: 'eu1.cloud.thethings.network',
NETWORK_SERVER: 'nam1.cloud.thethings.network',
APPLICATION_SERVER: 'nam1.cloud.thethings.network',
JOIN_SERVER: 'nam1.cloud.thethings.network',
API_KEY: 'xxxxxapi_keyxxxxxx',
};
//just an example of payload
const payload = {
application_id: 'test',
name: 'demo',
description: 'for testing',
};
const user = User('userId', config);
const result = async () => {
try {
const resp = await user.createApplication(payload);
console.log(resp);
} catch (err) {
console.log(err);
}
}
result();
Para mais informações, consulte o seguinte: Crie um aplicativo para organização
import { Organization } from 'the-things-network';
//just an example of config
const config = {
IDENTITY_SERVER: 'eu1.cloud.thethings.network',
NETWORK_SERVER: 'nam1.cloud.thethings.network',
APPLICATION_SERVER: 'nam1.cloud.thethings.network',
JOIN_SERVER: 'nam1.cloud.thethings.network',
API_KEY: 'xxxxxapi_keyxxxxxx',
};
//just an example of payload
const payload = {
application_id: 'test',
name: 'demo',
description: 'for testing',
};
const org = new Organization('organizationId', config);
const result = async () => {
try {
const resp = await org.createApplication(payload);
console.log(resp);
} catch (err) {
console.log(err);
}
}
result();
import { Application } from 'the-things-network';
//just an example of config
const config = {
IDENTITY_SERVER: 'eu1.cloud.thethings.network',
NETWORK_SERVER: 'nam1.cloud.thethings.network',
APPLICATION_SERVER: 'nam1.cloud.thethings.network',
JOIN_SERVER: 'nam1.cloud.thethings.network',
API_KEY: 'xxxxxapi_keyxxxxxx',
};
const app = new Application('', config);
const result = async () => {
try {
const resp = await app.getApplicationList();
console.log(resp);
} catch (err) {
console.log(err);
}
}
result();
import { EndDevice } from 'the-things-network';
//just an example of config
const config = {
IDENTITY_SERVER: 'eu1.cloud.thethings.network',
NETWORK_SERVER: 'nam1.cloud.thethings.network',
APPLICATION_SERVER: 'nam1.cloud.thethings.network',
JOIN_SERVER: 'nam1.cloud.thethings.network',
API_KEY: 'xxxxxapi_keyxxxxxx',
};
//just an example of payload
const payload = {
end_device: {
ids: {
join_eui: 'DDFFDDFDFFDFDFDF',
dev_eui: '70B3D57ED005B59E',
device_id: 'eui-70b3d57ed005b59e',
application_ids: {
application_id: 'appId',
},
},
version_ids: {
brand_id: 'moko',
model_id: 'lw003',
hardware_version: '2.1',
firmware_version: '2.0',
band_id: 'AS_923',
},
network_server_address: 'nam1.cloud.thethings.network',
application_server_address: 'nam1.cloud.thethings.network',
join_server_address: 'nam1.cloud.thethings.network',
},
};
const device = new EndDevice('appId', config);
const result = async () => {
try {
const resp = await device.createEndDeviceIS(payload);
console.log(resp);
} catch (err) {
console.log(err);
}
}
result();
import { User } from 'the-things-network';
//just an example of config
const config = {
IDENTITY_SERVER: 'eu1.cloud.thethings.network',
NETWORK_SERVER: 'nam1.cloud.thethings.network',
APPLICATION_SERVER: 'nam1.cloud.thethings.network',
JOIN_SERVER: 'nam1.cloud.thethings.network',
API_KEY: 'xxxxxapi_keyxxxxxx',
};
//just an example of payload
const payload = {
gateway: {
ids: { gateway_id: 'eui-ee34634e6ada3425', eui: 'EE34634E6ADA3425' },
name: 'gateway',
description: 'testing',
gateway_server_address: 'nam1.cloud.thethings.network',
frequency_plan_id: 'US_902_928_FSB_3',
status_public: true,
location_public: true,
enforce_duty_cycle: true,
schedule_anytime_delay: '0.530s',
require_authenticated_connection: true,
},
};
const gateway = new User('userId', config);
const result = async () => {
try {
const resp = await gateway.createGateway(payload);
console.log(resp);
} catch (err) {
console.log(err);
}
}
result();
import { EndDevice } from 'the-things-network';
//just an example of config
const config = {
IDENTITY_SERVER: 'eu1.cloud.thethings.network',
NETWORK_SERVER: 'nam1.cloud.thethings.network',
APPLICATION_SERVER: 'nam1.cloud.thethings.network',
JOIN_SERVER: 'nam1.cloud.thethings.network',
API_KEY: 'xxxxxapi_keyxxxxxx',
TENANT_ID: 'xxxxxxxxxx',
};
//just an example of payload
const payload = {
device_id: 'deviceId',
down_type: '#',
host: 'nam1.cloud.thethings.industries',
port: 1883,
username: 'user@tenant',
callback_uplink_event: (data) => {
console.log('upEvent', data.toString('utf8'));
},
callback_subscribe_error: (data) => {
console.log('upEvent', data.toString('utf8'));
},
callback_subscribe_disconnect: (data) => {
console.log('upEvent', data.toString('utf8'));
}
};
const device = new EndDevice('appId', config);
const result = async () => {
try {
const resp = await device.subscribeUpLinkEvent(payload);
console.log(resp);
} catch (err) {
console.log(err);
}
}
result();
import { EndDevice } from 'the-things-network';
//just an example of config
const config = {
IDENTITY_SERVER: 'eu1.cloud.thethings.network',
NETWORK_SERVER: 'nam1.cloud.thethings.network',
APPLICATION_SERVER: 'nam1.cloud.thethings.network',
JOIN_SERVER: 'nam1.cloud.thethings.network',
API_KEY: 'xxxxxapi_keyxxxxxx',
TENANT_ID: 'xxxxxxxxxx',
};
//just an example of payload
const payload = {
device_id: 'deviceId',
down_type: '#',
host: 'nam1.cloud.thethings.industries',
port: 1883,
username: 'user@example',
callback_uplink_event: (data) => {
console.log('upEvent', data.toString('utf8'));
},
callback_subscribe_error: (data) => {
console.log('upEvent', data.toString('utf8'));
},
callback_subscribe_disconnect: (data) => {
console.log('upEvent', data.toString('utf8'));
}
};
const device = new EndDevice('appId', config);
const result = async () => {
try {
const upevent = await device.subscribeUpLinkEvent(payload);
console.log(upevent);
const resp = await device.unsubscribeEvent(upevent.client, upevent.topic);
console.log(resp);
} catch (err) {
console.log(err);
}
}
result();
Depois de criar a instância de classe específica e definir os parâmetros necessários, você pode explorar todos os métodos pertencentes a essa classe, é tão fácil ...
import { Application } from 'the-things-network';
//just an example of config
const config = {
IDENTITY_SERVER: 'eu1.cloud.thethings.network',
NETWORK_SERVER: 'nam1.cloud.thethings.network',
APPLICATION_SERVER: 'nam1.cloud.thethings.network',
JOIN_SERVER: 'nam1.cloud.thethings.network',
API_KEY: 'xxxxxapi_keyxxxxxx',
};
//just an example of payload
const payload = {
name: 'test',
description: 'For testing',
attributes: { 'key1': 'value1', 'key2': 'value2' },
};
const app = new Application('appId', config);
const result = async () => {
try {
const resp1 = await app.getApplicationList();
console.log(resp1);
const resp2 = await app.updateApplication(payload);
console.log(resp2);
const resp3 = await app.deleteApplication();
console.log(resp3);
const resp4 = await app.restoreApplication();
console.log(resp4);
} catch (err) {
console.log(err);
}
}
result();
Congratulamo-nos com contribuições para a rede de coisas ! Se você estiver interessado em contribuir para este pacote, há muitas maneiras de contribuir para a rede de coisas:
Problemas de relatório: se você encontrar bugs, erros ou aprimoramentos, sinta -se à vontade para abrir um problema no Github.
Envie solicitações de tração: se você puder corrigir um problema ou quiser adicionar um novo recurso, ficaremos felizes em revisar sua solicitação de tração.
Melhore a documentação: se você encontrou um erro de digitação, documentação pouco clara ou tem uma idéia para melhorar nossa documentação, gostaríamos de ouvir você!
Compartilhe o feedback: qualquer feedback sobre sua experiência com nosso pacote seria muito apreciado. Sua opinião nos ajuda a melhorar este pacote para todos.
Observe que este projeto é lançado com um código de conduta colaborador. Ao participar deste projeto, você concorda em cumprir seus termos.
Estamos ansiosos para colaborar com você!
Fuota.io
Este SDK está sendo mantido por Team @fuota.io
A Fuota.io é sua plataforma tudo-em-um para atualizações de firmware sem esforço e gerenciamento abrangente de dispositivos para dispositivos de Lorawan com a rede Things e muitos outros servidores populares de rede Lorawan.
No cenário em rápida evolução dos dispositivos conectados, manter seus dispositivos atualizados com o firmware mais recente é um fator crítico para o desempenho ideal, segurança aprimorada e funcionalidade rica em recursos. Portanto, se você estiver procurando por uma solução pronta para a solução de implantação de atualização de firmware. Junte -se a nós em Fuota.io e desbloqueie todo o potencial dos seus dispositivos Lorawan conectados, mantendo -os atualizados, seguros e integrados perfeitamente.
Visite -nos : fuota.io
Mit