Der Node.js SDK integriert sich nahtlos in den Lorawan Network Server (LNS) des Lorawan Network (Lorawan Network), sodass Entwickler IoT -Geräte problemlos verbinden und verwalten können. Mit umfangreicher API -Unterstützung vereinfacht dieses Paket die Anwendungsinteraktion mit dem Lorawan -Ökosystem von TTN und Aktivierung der Gerätebereitstellung, der Datenübertragung und der Überwachung des Gerätestatus. Verwenden Sie den benutzerfreundlichen Node.js SDK, um die Konnektivität und das Datenmanagement in der Lorawan-Infrastruktur des Netzwerks zu steigern.
Dieser SDK arbeitet auch mit "The Things Industries" zusammen und hat privat "The Things Stack Instance" gehostet.
Bereit, SDK zu verwenden? Beginnen wir!
Dokumentation : ttn-node-sdk.fuota.io
GitHub : The-Things-Network-Nodejs-SDK
Für mit Endentargen verwandte Methoden: EndDevice
Für anwendungsbezogene Methoden: Anwendung
Für Gateway -verwandte Methoden: Gateway
Für benutzerbezogene Methoden: Benutzer
Für organisationsbezogene Methoden: Organisation
So installieren Sie die neueste Version auf NPM lokal und speichern Sie sie in der Paket.json -Datei Ihres Pakets:
NPM Installieren Sie die Things-Network-Save
So installieren Sie eine bestimmte Version:
npm install the-things-network@Version-Save
Nehmen wir an, Sie möchten eine Anwendung erstellen, sie kann sowohl für Benutzer als auch für die Organisation erstellt werden ...
Weitere Informationen finden Sie unter dies: Erstellen Sie die Anwendung für den Benutzer
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();
Weitere Informationen finden Sie unter dies: Erstellen Sie die Bewerbung für die Organisation
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();
Sobald Sie die Instanz einer bestimmten Klasse erstellt und die erforderlichen Parameter festgelegt haben, können Sie alle Methoden untersuchen, die zu dieser Klasse gehören. Es ist so einfach ...
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();
Wir begrüßen Beiträge zu The-Things-Network ! Wenn Sie daran interessiert sind, zu diesem Paket beizutragen, gibt es viele Möglichkeiten, sich an die Things-Network zu entspannen:
Melden Sie Probleme: Wenn Sie Fehler, Fehler oder Verbesserungen finden, können Sie ein Problem auf GitHub eröffnen.
Pull -Anfragen senden: Wenn Sie selbst ein Problem beheben oder eine neue Funktion hinzufügen möchten, können wir Ihre Pull -Anfrage gerne überprüfen.
Verbesserung der Dokumentation: Unabhängig davon, ob Sie einen Tippfehler, unklare Dokumentation gefunden haben oder eine Idee haben, um unsere Dokumentation zu verbessern, würden wir gerne von Ihnen hören!
Teilen Sie Feedback: Jedes Feedback zu Ihren Erfahrungen mit unserem Paket wäre sehr geschätzt. Ihre Eingabe hilft uns, dieses Paket für alle zu verbessern.
Bitte beachten Sie, dass dieses Projekt mit einem Verhaltenskodex von Mitwirkenden veröffentlicht wird. Durch die Teilnahme an diesem Projekt erklären Sie sich damit einverstanden, sich an seine Bedingungen einzuhalten.
Wir freuen uns darauf, mit Ihnen zusammenzuarbeiten!
Fuota.io
Dieser SDK wird von Team @fuota.io gepflegt
Fuota.io ist Ihre All-in-One-Plattform für mühelose Firmware-Updates und umfassende Geräteverwaltung für Lorawan-Geräte mit dem Things Network und vielen anderen beliebten Lorawan-Netzwerkserver.
In der sich schnell entwickelnden Landschaft von vernetzten Geräten ist es ein kritischer Faktor für eine optimale Leistung, verbesserte Sicherheit und featurereiche Funktionen, wenn Sie Ihre Geräte auf dem neuesten Stand der Firmware auf dem neuesten Stand sind. Wenn Sie also nach einer Bereitschaftslösung für die Bereitstellungslösung für Firmware -Update suchen. Besuchen Sie uns bei Fuota.io und schalten Sie das volle Potenzial Ihrer vernetzten Lorawan -Geräte frei, um sie auf dem Laufenden, sicher und nahtlos integriert.
Besuchen Sie uns : fuota.io
MIT