SDK Node.js dengan mulus terintegrasi dengan Lorawan Network Server (LNS) jaringan Things, yang memungkinkan pengembang untuk dengan mudah menghubungkan dan mengelola perangkat IoT. Dengan dukungan API yang luas, paket ini menyederhanakan interaksi aplikasi dengan ekosistem Lorawan TTN, memungkinkan penyediaan perangkat, transmisi data, dan pemantauan status perangkat. Memanfaatkan Node.js SDK yang ramah pengguna untuk meningkatkan konektivitas dan manajemen data dalam infrastruktur Lorawan Network.
SDK ini juga bekerja dengan "The Things Industries" dan secara pribadi menjadi tuan rumah "The Things Stack Instance".
Siap mulai menggunakan SDK? Mari kita mulai!
Dokumentasi : ttn-node-dk.fuota.io
GitHub : The-things-network-nodejs-sdk
Untuk metode terkait perangkat akhir: enddevice
Untuk metode terkait aplikasi: aplikasi
Untuk metode terkait gateway: gateway
Untuk metode terkait pengguna: pengguna
Untuk metode terkait organisasi: organisasi
Untuk menginstal versi terbaru di NPM secara lokal dan menyimpannya di file paket paket Anda:
NPM Instal-Network-Save
Untuk menginstal versi tertentu:
NPM menginstal versi-things-network@versi-save
Katakanlah Anda ingin membuat aplikasi, itu dapat dibuat untuk pengguna dan organisasi ...
Untuk info lebih lanjut, lihat ini: Buat aplikasi untuk pengguna
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();
Untuk info lebih lanjut, lihat ini: Buat aplikasi untuk organisasi
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();
Setelah Anda membuat contoh kelas tertentu dan mengatur parameter yang diperlukan maka Anda dapat menjelajahi semua metode milik kelas itu, itu mudah ...
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();
Kami menyambut kontribusi di -Network ! Jika Anda tertarik untuk berkontribusi pada paket ini, ada banyak cara untuk menular ke-Network:
Laporan Masalah: Jika Anda menemukan bug, kesalahan, atau peningkatan, jangan ragu untuk membuka masalah di GitHub.
Kirim Permintaan Tarik: Jika Anda dapat memperbaiki masalah sendiri atau ingin menambahkan fitur baru, kami akan dengan senang hati meninjau permintaan tarik Anda.
Tingkatkan Dokumentasi: Apakah Anda telah menemukan kesalahan ketik, dokumentasi yang tidak jelas, atau Anda memiliki ide untuk meningkatkan dokumentasi kami, kami akan senang mendengar dari Anda!
Bagikan Umpan Balik: Setiap umpan balik tentang pengalaman Anda dengan paket kami akan sangat dihargai. Input Anda membantu kami membuat paket ini lebih baik untuk semua orang.
Harap dicatat bahwa proyek ini dirilis dengan kode perilaku kontributor. Dengan berpartisipasi dalam proyek ini, Anda setuju untuk mematuhi persyaratannya.
Kami berharap dapat berkolaborasi dengan Anda!
Fuota.io
SDK ini sedang dikelola oleh Team @fuota.io
Fuota.io adalah platform all-in-one Anda untuk pembaruan firmware yang mudah dan manajemen perangkat yang komprehensif untuk perangkat Lorawan dengan jaringan hal-hal dan banyak server jaringan Lorawan populer lainnya.
Dalam lanskap yang berkembang pesat dari perangkat yang terhubung, menjaga perangkat Anda tetap mutakhir dengan firmware terbaru adalah faktor penting untuk kinerja optimal, keamanan yang ditingkatkan, dan fungsionalitas yang kaya fitur. Jadi, jika Anda mencari solusi siap untuk solusi penyebaran pembaruan firmware. Bergabunglah dengan kami di fuota.io dan buka potensi penuh dari perangkat Lorawan Anda yang terhubung, jaga agar tetap diperbarui, aman, dan terintegrasi dengan mulus.
Kunjungi kami : fuota.io
Mit