全部产品
Search
文档中心

Link IoT Edge:SDK untuk Node.js

更新时间:Jan 24, 2026

Anda dapat mengembangkan driver menggunakan SDK untuk Node.js guna menghubungkan perangkat ke gateway, lalu menghubungkannya ke Platform IoT.

Untuk kode sumber SDK untuk Node.js, kunjungi Open-source SDK untuk Node.js.

Instalasi dan penggunaan

  1. Jalankan perintah berikut untuk menginstal SDK:
    npm install linkedge-thing-access-sdk
  2. Setelah SDK terinstal, Anda dapat mengembangkan driver berdasarkan antarmuka SDK.
    Penting Jika Anda menjalankan driver secara langsung setelah pengembangan selesai, akan terjadi error. Anda harus men-deploy driver ke gateway melalui Konsol Platform IoT sebelum menjalankannya. Untuk informasi lebih lanjut tentang cara men-deploy driver ke gateway, lihat Pengembangan Driver.

    Berikut adalah contoh penggunaan SDK untuk mengembangkan driver:

    const {
      Config,
      ThingAccessClient
    } = require('linkedge-thing-access-sdk');
    
    const callbacks = {
      setProperties: function (properties) {
        // Setel properti ke physical thing dan kembalikan hasilnya.
        // Kembalikan objek yang merepresentasikan hasil atau promise wrapper dari objek tersebut.
        return {
          code: 0,
          message: 'success',
        };
      },
      getProperties: function (keys) {
        // Ambil properti dari physical thing dan kembalikan hasilnya.
        // Kembalikan objek yang merepresentasikan hasil atau promise wrapper dari objek tersebut.
        return {
          code: 0,
          message: 'success',
          params: {
            key1: 'value1',
            key2: 'value2',
          }
        };
      },
      callService: function (name, args) {
        // Panggil layanan pada physical thing dan kembalikan hasilnya.
        // Kembalikan objek yang merepresentasikan hasil atau promise wrapper dari objek tersebut.
        return new Promise((resolve) => {
          resolve({
            code: 0,
            message: 'success',
          });
        });
      }
    };
    Config.get()
      .then(config => {
        const thingInfos = config.getThingInfos();
        thingInfos.forEach(thingInfo => {
          const client = new ThingAccessClient(thingInfo, callbacks);
          client.registerAndOnline()
            .then(() => {
              return new Promise(() => {
                setInterval(() => {
                  client.reportEvent('high_temperature', { temperature: 41 });
                  client.reportProperties({ 'temperature': 41 });
                }, 2000);
              });
            })
            .catch(err => {
              console.log(err);
              client.cleanup();
            });
            .catch(err => {
              console.log(err);
            });
        });
      });

Konstanta

ParameterTipeDeskripsi
PRODUCT_KEYStringKunci dalam objek konfigurasi. Kunci ini diteruskan ke konstruktor ThingAccessClient. Tetapkan nilainya ke ProductKey yang dialokasikan oleh Platform IoT kepada Anda.
DEVICE_NAMEStringKunci dalam objek konfigurasi. Kunci ini diteruskan ke konstruktor ThingAccessClient. Tetapkan nilainya ke DeviceName yang dialokasikan oleh Platform IoT kepada Anda.
LOCAL_NAMEStringKunci dalam objek konfigurasi. Kunci ini diteruskan ke konstruktor ThingAccessClient. Tetapkan nilainya ke nama perangkat on-premises.
CALL_SERVICEStringKunci dalam objek callback. Kunci ini diteruskan ke konstruktor ThingAccessClient. Tetapkan nilainya ke fungsi callback yang digunakan untuk memanggil layanan perangkat. Untuk informasi lebih lanjut tentang definisi fungsi, lihat callbacks.callService().
GET_PROPERTIESStringKunci dalam objek callback. Kunci ini diteruskan ke konstruktor ThingAccessClient. Tetapkan nilainya ke fungsi callback yang digunakan untuk mendapatkan properti perangkat. Untuk informasi lebih lanjut tentang definisi fungsi, lihat callbacks.getProperties().
SET_PROPERTIESStringKunci dalam objek callback. Kunci ini diteruskan ke konstruktor ThingAccessClient. Tetapkan nilainya ke fungsi callback yang digunakan untuk menyetel properti perangkat. Untuk informasi lebih lanjut tentang definisi fungsi, lihat callbacks.setProperties().
RESULT_SUCCESSNumberOperasi berhasil. Ini adalah kode status yang digunakan oleh fungsi callback.
RESULT_FAILURENumberOperasi gagal. Ini adalah kode status yang digunakan oleh fungsi callback.
ERROR_CLEANUPStringKode kesalahan untuk fungsi cleanup().
ERROR_CONNECTStringKode kesalahan untuk fungsi registerAndOnline().
ERROR_DISCONNECTStringKode kesalahan untuk fungsi offline().
ERROR_GET_CONFIGStringKode kesalahan untuk fungsi getConfig().
ERROR_GET_TSLStringKode kesalahan untuk fungsi getTsl().
ERROR_GET_TSL_EXT_INFOStringKode kesalahan untuk fungsi getTslExtInfo().
ERROR_UNREGISTERStringKode kesalahan untuk fungsi unregister().

Config

Informasi terkait konfigurasi driver.

  • static get()

    Mengembalikan objek konfigurasi driver global, yang dihasilkan oleh sistem saat perangkat dikaitkan dengan driver.

    Catatan Perbedaan antara fungsi Config.get() dan fungsi getConfig() adalah bahwa getConfig() mengembalikan string konfigurasi, sedangkan Config.get() mengembalikan objek konfigurasi.
    Respons:
    Promise<Config>
  • static registerChangedCallback(callback)

    Fungsi callback yang digunakan untuk menangani perubahan konfigurasi.

    Tabel 1. Parameter permintaan
    ParameterTipeDeskripsi
    callbackFunctionFungsi callback yang dipanggil ketika terjadi perubahan konfigurasi.
  • static unregisterChangedCallback(callback)

    Fungsi callback yang digunakan untuk mengembalikan perubahan konfigurasi.

    Tabel 2. Parameter permintaan
    ParameterTipeDeskripsi
    callbackFunctionFungsi callback yang dipanggil ketika terjadi perubahan konfigurasi.
  • Config(string)

    Membuat objek Config baru berdasarkan string konfigurasi.

    Tabel 3. Parameter permintaan
    ParameterTipeDeskripsi
    stringStringString konfigurasi JSON.
  • getThingInfos()

    Mengembalikan semua informasi terkait perangkat.

    Respons:
    ThingInfo[]
  • getDriverInfo()

    Mengembalikan informasi driver.

    Respons:
    Object

ThingInfo

Fungsi ini digunakan untuk mengidentifikasi informasi perangkat yang terhubung ke Link IoT Edge. Setelah perangkat terhubung ke Link IoT Edge, informasi seperti ProductKey, DeviceName, dan konfigurasi kustom perangkat dapat diakses melalui fungsi ini.

ThingInfo(productKey, deviceName, custom)

Membuat objek ThingInfo baru.

Tabel 4. Parameter permintaan
ParameterTipeDeskripsi
productKeyStringIdentifier unik produk.
deviceNameStringNama perangkat.
customObjectKonfigurasi kustom perangkat.

ThingAccessClient

Klien yang memungkinkan perangkat terhubung ke Platform IoT. Anda dapat menggunakan klien ini untuk melaporkan properti dan event, serta mengirim perintah dari cloud ke perangkat.

  • ThingAccessClient(config, callbacks)

    Konstruktor yang diinisialisasi dengan parameter config dan callbacks.

    Tabel 5. Parameter permintaan
    ParameterTipeDeskripsi
    configObjectMetadata yang digunakan untuk mengonfigurasi klien. Format:
    {
        "productKey": "Your Product Key", 
        "deviceName": "Your Device Name"
    }
    callbacksObjectObjek fungsi callback. Format:
    callbacks: {
        setProperties: function(properties) {},
        getProperties: function(keys) {},
        callService: function(name, args) {}
    }
    • Untuk parameter callback penyetelan properti perangkat, lihat bagian callbacks.setProperties.
    • Untuk parameter callback pengambilan properti perangkat, lihat bagian callbacks.getProperties.
    • Untuk parameter callback pemanggilan layanan perangkat, lihat bagian callbacks.callService.
  • callbacks.setProperties(properties)

    Fungsi callback untuk menyetel properti perangkat.

    Tabel 6. Parameter permintaan
    ParameterTipeDeskripsi
    propertiesObjectObjek properti. Format nilai properti sebagai berikut:
    {
        "key1": "value1", 
        "key2": "value2"
    }
    Respons:
    {
      "code": 0,
      "message": "string",
      "params": {}
    }
    Tabel 7. Parameter Respons
    ParameterTypeDeskripsi
    codeNumberKode status.
    • 0: menunjukkan panggilan berhasil.
    • Nilai bukan nol: menunjukkan panggilan gagal dan mengembalikan error yang sesuai dengan nilai tersebut.
    messageStringOpsional. Informasi deskripsi status.
    paramsObjectOpsional. Parameter ini dapat digunakan untuk mengembalikan hasil konfigurasi tiap properti. Parameter ini berisi nilai aktual properti.
  • callbacks.getProperties(keys)

    Fungsi callback yang digunakan untuk mendapatkan properti perangkat tertentu.

    Tabel 8. Parameter permintaan
    ParameterTipeDeskripsi
    keysString[]Nama properti. Formatnya sebagai berikut:
    ['key1', 'key2']
    Respons:
    {
      "code": 0,
      "message": "string",
      "params": {}
    }
    Tabel 9. Parameter Respons
    ParameterTipeDeskripsi
    codeNumberKode status.
    • 0: menunjukkan panggilan berhasil.
    • Nilai bukan nol: menunjukkan panggilan gagal dan mengembalikan error yang sesuai dengan nilai tersebut.
    messageStringOpsional. Informasi deskripsi status.
    paramsObjectOpsional. Parameter ini dapat digunakan untuk mengembalikan nilai properti yang diminta jika permintaan berhasil.
  • callbacks.callService(name, args)

    Fungsi callback untuk memanggil layanan perangkat.

    Tabel 10. Parameter permintaan
    ParameterTypeDeskripsi
    nameStringNama layanan perangkat.
    argsObjectDaftar parameter input layanan. Formatnya sebagai berikut:
    {
        "key1": "value1", 
        "key2": "value2"
    }
    Tabel 11. Parameter Respons
    ParameterTipeDeskripsi
    codeNumberKode status.
    • 0: menunjukkan panggilan berhasil.
    • Nilai bukan nol: menunjukkan panggilan gagal dan mengembalikan error yang sesuai dengan nilai tersebut.
    messageStringOpsional. Informasi deskripsi status.
    paramsObjectOpsional. Parameter ini dapat digunakan untuk mengembalikan informasi tambahan saat layanan dipanggil.
  • registerAndOnline()

    Mendaftarkan perangkat ke gateway dan memberi tahu gateway untuk menghubungkan perangkat ke Platform IoT. Perangkat harus didaftarkan dan dihubungkan ke Platform IoT sebelum dapat menerima perintah atau mengirim data ke Platform IoT.

    Respons:
    Promise<Void>
  • online()

    Memberi tahu gateway bahwa perangkat sedang online. Fungsi ini digunakan ketika perangkat yang sebelumnya offline kembali online.

    Respons:
    Promise<Void>
  • offline()

    Memberi tahu gateway bahwa perangkat sedang offline.

    Respons:
    Promise<Void>
  • reportEvent(eventName, args)

    Melaporkan event perangkat ke Platform IoT.

    Tabel 12. Parameter permintaan
    ParameterTypeDeskripsi
    eventNameStringNama event, yang sama dengan nama event yang Anda tentukan dalam definisi produk.
    argsObjectKunci dan nilai dalam event. Formatnya sebagai berikut:
    {
        "key1": "value1", 
        "key2": "value2"
    }
  • reportProperties(properties)

    Melaporkan properti perangkat ke Platform IoT.

    Tabel 13. Parameter permintaan
    ParameterTipeDeskripsi
    propertiesObjectKunci dan nilai dalam properti. Formatnya sebagai berikut:
    {
        "key1": "value1", 
        "key2": "value2"
    }
  • getTsl()

    Mengembalikan string TSL perangkat. Format datanya sama seperti di Platform IoT.

    Respons:
    Promise<Void>
  • getTslExtInfo()

    Mengembalikan informasi ekstensi TSL.

    Respons:
    Promise<String>
  • cleanup()

    Membersihkan sumber daya. Gunakan fungsi ini untuk melepaskan sumber daya yang digunakan.

    Respons:
    Promise<Void>
  • unregister()

    Menghapus perangkat dari gateway. Gunakan fungsi ini dengan hati-hati.

    Respons:
    Promise<Void>

getConfig()

Mendapatkan string konfigurasi driver, yang dihasilkan oleh sistem saat perangkat dikaitkan dengan driver.
Catatan Perbedaan antara fungsi static get() (Config.get()) adalah bahwa getConfig() mengembalikan string konfigurasi, sedangkan Config.get() mengembalikan objek konfigurasi.
Respons:
Promise<String>

destroy()

Menghapus semua sumber daya yang digunakan oleh SDK. Panggil fungsi destroy() ketika Anda tidak lagi menggunakan SDK.

Respons:
Promise<Void>