全部产品
Search
文档中心

IoT Platform:Mengelola hubungan topologi

更新时间:Jul 02, 2025

Setelah perangkat bawahan terdaftar di IoT Platform, gateway harus melaporkan hubungan topologi antara perangkat bawahan dan gateway untuk menghubungkan perangkat bawahan ke IoT Platform.

Ketika perangkat bawahan terhubung ke IoT Platform, platform akan memverifikasi identitasnya serta hubungan topologi antara perangkat bawahan dan gateway. Jika verifikasi berhasil, IoT Platform membentuk koneksi logis dengan perangkat bawahan dan mengaitkannya dengan koneksi fisik dari gateway. Protokol komunikasi antara perangkat bawahan dan IoT Platform sama dengan protokol yang digunakan oleh perangkat yang terhubung langsung ke IoT Platform. Informasi gateway tidak diperlukan dalam protokol komunikasi ini.

Jika hubungan topologi dihapus, perangkat bawahan tidak dapat terhubung ke IoT Platform melalui gateway. Kesalahan berikut mungkin muncul saat mencoba menghubungkan perangkat bawahan ke IoT Platform: 1. Hubungan topologi tidak tersedia. 2. Verifikasi gagal.

Menambahkan hubungan topologi untuk perangkat bawahan

Anda dapat menggunakan topik untuk mengirim permintaan menambahkan hubungan topologi antara gateway dan perangkat bawahan. Setelah hubungan topologi ditambahkan, informasi tentang perangkat bawahan akan dikembalikan.

Penting Hingga 30 perangkat bawahan dapat ditambahkan sekaligus.

Topik-topik berikut digunakan ketika perangkat bawahan mengirim permintaan ke IoT Platform dan IoT Platform mengirim respons:

  • Topik Permintaan: /sys/${productKey}/${deviceName}/thing/topo/add
  • Topik Respons: /sys/${productKey}/${deviceName}/thing/topo/add_reply

Contoh Permintaan dalam Format JSON Alink:

{
  "id": "123",
  "version": "1.0",
  "sys":{
      "ack":0
  },
  "params": [
    {
      "deviceName": "deviceName1234",
      "productKey": "1234556554",
      "sign": "xxxxxx",
      "signmethod": "hmacSha1",
      "timestamp": "1524448722000",
      "clientId": "xxxxxx"
    }
  ],
  "method": "thing.topo.add"
}

Contoh Respons dalam Format JSON Alink:

{
  "id": "123",
  "code": 200,
  "data": [
    {
      "deviceName": "deviceName1234",
      "productKey": "1234556554"
    }
  ]
}

Parameter Permintaan

ParameterTipeDeskripsi
idStringID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat.
versionStringNomor versi protokol. Atur nilai menjadi 1.0.

sys

Object

Parameter untuk fitur tambahan. Nilainya berisi bidang-bidang untuk setiap fitur.

Catatan

Jika tidak ada fitur tambahan yang dikonfigurasikan saat menggunakan SDK perangkat untuk mengembangkan fitur perangkat, parameter ini tidak tersedia. Fitur tambahan menggunakan konfigurasi default.

ack

Integer

Bidang fitur tambahan dalam parameter sys. Bidang ini menentukan apakah IoT Platform mengembalikan data respons untuk permintaan pendaftaran. Nilai valid:

  • 1: IoT Platform mengembalikan data respons.

  • 0: IoT Platform tidak mengembalikan data respons.

Penting

Untuk informasi lebih lanjut tentang parameter ini, lihat Contoh penggunaan model TSL.

Jika fitur tidak dikonfigurasikan, parameter ini tidak tersedia. Secara default, IoT Platform mengembalikan data respons untuk permintaan pendaftaran.

paramsListParameter permintaan.
deviceNameStringDeviceName dari perangkat bawahan.
productKeyStringProductKey dari produk tempat perangkat bawahan milik.
signString

Tanda tangan.

Metode penandatanganan:

  1. Urutkan semua parameter yang dikirimkan ke server secara alfabetis, kecuali parameter sign dan signMethod, lalu gabungkan parameter dan nilainya secara berurutan tanpa menggunakan simbol penyambung.
  2. Gunakan algoritma yang ditentukan oleh parameter signMethod dan nilai dari parameter DeviceSecret untuk menghitung tanda tangan.
Contoh:
sign= hmac_md5(deviceSecret, clientId123deviceNametestproductKey123timestamp1524448722000)
signmethodStringAlgoritma tanda tangan. Algoritma yang didukung adalah HMACSHA1, HMACSHA256, HMACMD5, dan SHA256.
timestampStringTimestamp.
clientIdStringOpsional. Pengenal lokal perangkat. Anda dapat mengatur parameter ini ke nilai yang menggabungkan ProductKey dan DeviceName berdasarkan sintaksis berikut: productKey&deviceName.
methodStringMetode permintaan. Atur nilai menjadi thing.topo.add.

Parameter Respons

ParameterTipeDeskripsi
idStringID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat.
codeIntegerKode status. Nilai 200 menunjukkan bahwa permintaan berhasil.
dataObjectInformasi perangkat bawahan yang dikembalikan dalam kasus permintaan berhasil. Untuk informasi lebih lanjut tentang parameter, lihat tabel berikut.
Tabel 1. data
ParameterTipeDeskripsi
deviceNameStringDeviceName dari perangkat bawahan.
productKeyStringProductKey dari produk tempat perangkat bawahan milik.

Pesan Kesalahan

Kode status HTTPPesan kesalahanDeskripsi
460request parameter errorPesan kesalahan yang dikembalikan karena parameter permintaan tidak valid.
6402topo relation cannot add by selfPesan kesalahan yang dikembalikan karena perangkat tidak dapat ditambahkan sebagai perangkat bawahan dari dirinya sendiri.
401request auth errorPesan kesalahan yang dikembalikan karena tanda tangan gagal diverifikasi.

Menghapus hubungan topologi perangkat bawahan

Anda dapat menggunakan topik untuk mengirim permintaan menghapus hubungan topologi antara gateway dan perangkat bawahan. Setelah hubungan topologi dihapus, informasi tentang perangkat bawahan akan dikembalikan.

Penting Hingga 30 perangkat bawahan dapat dihapus sekaligus.

Topik-topik berikut digunakan ketika perangkat bawahan mengirim permintaan ke IoT Platform dan IoT Platform mengirim respons:

  • Topik Permintaan: /sys/${productKey}/${deviceName}/thing/topo/delete
  • Topik Respons: /sys/${productKey}/${deviceName}/thing/topo/delete_reply.

Contoh Permintaan dalam Format JSON Alink:

{
  "id": "123",
  "version": "1.0",
  "sys":{
      "ack":0
  },
  "params": [
    {
      "deviceName": "deviceName1234",
      "productKey": "1234556554"
    }
  ],
  "method": "thing.topo.delete"
}

Contoh Respons dalam Format JSON Alink:

{
  "id": "123",
  "code": 200,
  "data": [
    {
      "deviceName": "deviceName1234",
      "productKey": "1234556554"
    }
  ]
}

Parameter Permintaan

ParameterTipeDeskripsi
idStringID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat.
versionStringNomor versi protokol. Atur nilai menjadi 1.0.

sys

Object

Parameter untuk fitur tambahan. Nilainya berisi bidang-bidang untuk setiap fitur.

Catatan

Jika tidak ada fitur tambahan yang dikonfigurasikan saat menggunakan SDK perangkat untuk mengembangkan fitur perangkat, parameter ini tidak tersedia. Fitur tambahan menggunakan konfigurasi default.

ack

Integer

Bidang fitur tambahan dalam parameter sys. Bidang ini menentukan apakah IoT Platform mengembalikan data respons untuk permintaan pendaftaran. Nilai valid:

  • 1: IoT Platform mengembalikan data respons.

  • 0: IoT Platform tidak mengembalikan data respons.

Penting

Untuk informasi lebih lanjut tentang parameter ini, lihat Contoh penggunaan model TSL.

Jika fitur tidak dikonfigurasikan, parameter ini tidak tersedia. Secara default, IoT Platform mengembalikan data respons untuk permintaan pendaftaran.

paramsListParameter permintaan.
deviceNameStringDeviceName dari perangkat bawahan.
productKeyStringProductKey dari produk tempat perangkat bawahan milik.
methodStringMetode permintaan. Atur nilai menjadi thing.topo.delete.

Parameter Respons

ParameterTipeDeskripsi
idStringID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat.
codeIntegerKode status. Nilai 200 menunjukkan bahwa permintaan berhasil.
dataObjectInformasi perangkat bawahan yang dikembalikan dalam kasus permintaan berhasil. Untuk informasi lebih lanjut tentang parameter, lihat tabel berikut.
Tabel 2. data
ParameterTipeDeskripsi
deviceNameStringDeviceName dari perangkat bawahan.
productKeyStringProductKey dari produk tempat perangkat bawahan milik.

Pesan Kesalahan

Kode status HTTPPesan kesalahanDeskripsi
460request parameter errorPesan kesalahan yang dikembalikan karena parameter permintaan tidak valid.
6100device not foundPesan kesalahan yang dikembalikan karena perangkat tidak ditemukan.

Memeriksa hubungan topologi perangkat bawahan

Topik-topik berikut digunakan ketika perangkat bawahan mengirim permintaan ke IoT Platform dan IoT Platform mengirim respons:

  • Topik Permintaan: /sys/${productKey}/${deviceName}/thing/topo/get
  • Topik Respons: /sys/${productKey}/${deviceName}/thing/topo/get_reply

Anda dapat menggunakan topik untuk mengirim permintaan memeriksa hubungan topologi antara gateway dan perangkat bawahan.

Contoh Permintaan dalam Format JSON Alink:

{
  "id": "123",
  "version": "1.0",
  "sys":{
      "ack":0
  },
  "params": {},
  "method": "thing.topo.get"
}

Contoh Respons dalam Format JSON Alink:

{
  "id": "123",
  "code": 200,
  "data": [
    {
      "deviceName": "deviceName1234",
      "productKey": "1234556554"
    }
  ]
}

Parameter Permintaan

ParameterTipeDeskripsi
idStringID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat.
versionStringNomor versi protokol. Atur nilai menjadi 1.0.

sys

Object

Parameter untuk fitur tambahan. Nilainya berisi bidang-bidang untuk setiap fitur.

Catatan

Jika tidak ada fitur tambahan yang dikonfigurasikan saat menggunakan SDK perangkat untuk mengembangkan fitur perangkat, parameter ini tidak tersedia. Fitur tambahan menggunakan konfigurasi default.

ack

Integer

Bidang fitur tambahan dalam parameter sys. Bidang ini menentukan apakah IoT Platform mengembalikan data respons untuk permintaan pendaftaran. Nilai valid:

  • 1: IoT Platform mengembalikan data respons.

  • 0: IoT Platform tidak mengembalikan data respons.

Penting

Untuk informasi lebih lanjut tentang parameter ini, lihat Contoh penggunaan model TSL.

Jika fitur tidak dikonfigurasikan, parameter ini tidak tersedia. Secara default, IoT Platform mengembalikan data respons untuk permintaan pendaftaran.

paramsObjectParameter permintaan. Anda dapat membiarkan parameter kosong.
methodStringMetode permintaan. Atur nilai menjadi thing.topo.get.

Parameter Respons

ParameterTipeDeskripsi
idStringID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat.
codeIntegerKode status. Nilai 200 menunjukkan bahwa permintaan berhasil.
dataObjectData respons dalam kasus permintaan berhasil.
deviceNameStringDeviceName dari perangkat bawahan.
productKeyStringProductKey dari produk tempat perangkat bawahan milik.

Pesan Kesalahan

Kode status HTTPPesan kesalahanDeskripsi
460request parameter errorPesan kesalahan yang dikembalikan karena parameter permintaan tidak valid.

Mengirimkan perangkat bawahan yang baru ditemukan

Topik-topik berikut digunakan ketika perangkat bawahan mengirim permintaan ke IoT Platform dan IoT Platform mengirim respons:

  • Topik Permintaan: /sys/${productKey}/${deviceName}/thing/list/found
  • Topik Respons: /sys/${productKey}/${deviceName}/thing/list/found_reply

Dalam skenario tertentu, gateway dapat menemukan perangkat bawahan baru. Gateway melaporkan informasi tentang perangkat bawahan baru tersebut ke IoT Platform. IoT Platform kemudian meneruskan informasi ini ke aplikasi pihak ketiga, dan aplikasi pihak ketiga memilih perangkat bawahan untuk terhubung ke gateway.

Contoh Permintaan dalam Format JSON Alink:

{
  "id": "123",
  "version": "1.0",
  "sys":{
      "ack":0
  },
  "params": [
    {
      "deviceName": "deviceName1234",
      "productKey": "1234556554"
    }
  ],
  "method": "thing.list.found"
}

Contoh Respons dalam Format JSON Alink:

{
  "id": "123",
  "code": 200,
  "data":{}
}

Parameter Permintaan

ParameterTipeDeskripsi
idStringID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat.
versionStringNomor versi protokol. Atur nilai menjadi 1.0.

sys

Object

Parameter untuk fitur tambahan. Nilainya berisi bidang-bidang untuk setiap fitur.

Catatan

Jika tidak ada fitur tambahan yang dikonfigurasikan saat menggunakan SDK perangkat untuk mengembangkan fitur perangkat, parameter ini tidak tersedia. Fitur tambahan menggunakan konfigurasi default.

ack

Integer

Bidang fitur tambahan dalam parameter sys. Bidang ini menentukan apakah IoT Platform mengembalikan data respons untuk permintaan pendaftaran. Nilai valid:

  • 1: IoT Platform mengembalikan data respons.

  • 0: IoT Platform tidak mengembalikan data respons.

Penting

Untuk informasi lebih lanjut tentang parameter ini, lihat Contoh penggunaan model TSL.

Jika fitur tidak dikonfigurasikan, parameter ini tidak tersedia. Secara default, IoT Platform mengembalikan data respons untuk permintaan pendaftaran.

paramsObjectParameter permintaan. Anda dapat membiarkan parameter kosong.
methodStringMetode permintaan. Atur nilai menjadi thing.list.found.
deviceNameStringDeviceName dari perangkat bawahan.
productKeyStringProductKey dari produk tempat perangkat bawahan milik.

Parameter Respons

ParameterTipeDeskripsi
idStringID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat.
codeIntegerKode status. Nilai 200 menunjukkan bahwa permintaan berhasil.
dataObjectData respons dalam kasus permintaan berhasil.

Pesan Kesalahan

Kode status HTTPPesan kesalahanDeskripsi
460request parameter errorPesan kesalahan yang dikembalikan karena parameter permintaan tidak valid.
6250product not foundPesan kesalahan yang dikembalikan karena produk tempat perangkat bawahan milik tidak ditemukan.
6280devicename not meet specsPesan kesalahan yang dikembalikan karena DeviceName dari perangkat bawahan yang dilaporkan oleh gateway tidak valid.

Memberi tahu gateway untuk menambahkan hubungan topologi untuk perangkat bawahan

Topik berikut digunakan ketika IoT Platform mengirim permintaan ke perangkat bawahan dan perangkat bawahan mengirim respons:

  • Topik Permintaan: /sys/${productKey}/${deviceName}/thing/topo/add/notify
  • Topik Respons: /sys/${productKey}/${deviceName}/thing/topo/add/notify_reply

IoT Platform dapat menggunakan topik untuk memberi tahu gateway menambahkan hubungan topologi untuk perangkat bawahan. Ini berlaku setelah gateway menemukan perangkat bawahan baru dan melaporkan informasi perangkat bawahan ke IoT Platform. IoT Platform dapat berlangganan topik penerusan data berikut untuk menerima respons dari gateway: /${productKey}/${deviceName}/thing/downlink/reply/message.

Contoh Permintaan dalam Format JSON Alink:

{
  "id": "123",
  "version": "1.0",
  "params": [
    {
      "deviceName": "deviceName1234",
      "productKey": "1234556554"
    }
  ],
  "method": "thing.topo.add.notify"
}

Contoh Respons dalam Format JSON Alink:

{
  "id": "123",
  "code": 200,
  "data": {}
}

Parameter Permintaan

ParameterTipeDeskripsi
idString

ID pesan yang dihasilkan oleh IoT Platform. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat.

versionStringNomor versi protokol. Atur nilai menjadi 1.0.
paramsObjectParameter permintaan. Anda dapat membiarkan parameter kosong.
methodStringMetode permintaan. Atur nilai menjadi thing.topo.add.notify.
deviceNameStringDeviceName dari perangkat bawahan.
productKeyStringProductKey dari produk tempat perangkat bawahan milik.

Parameter Respons

ParameterTipeDeskripsi
idStringID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat.
codeIntegerKode status. Nilai 200 menunjukkan bahwa permintaan berhasil.
dataObjectData respons dalam kasus permintaan berhasil.

Memberi tahu gateway tentang perubahan hubungan topologi

IoT Platform memberi tahu gateway tentang perubahan hubungan topologi.

Gateway perlu berlangganan topik berikut: /sys/${productKey}/${deviceName}/thing/topo/change

OperasiPerilakuMetode Notifikasi
Menambahkan perangkat bawahan ke gateway.Menambahkan hubungan topologi antara gateway dan perangkat bawahan.Memberi tahu gateway.
Menghapus perangkat bawahan.Menghapus hubungan topologi antara perangkat bawahan dan gateway.
Menonaktifkan perangkat bawahan.Menonaktifkan perangkat bawahan dan hubungan topologi antara perangkat bawahan dan gateway.
Mengaktifkan perangkat bawahan.Mengaktifkan perangkat bawahan dan memulihkan hubungan topologi antara perangkat bawahan dan gateway.

Contoh Permintaan dalam Format JSON Alink:

{
    "id":"123",
    "version":"1.0",
    "params":{
        "status":0, // 0-tambah 1-hapus 2-aktifkan penonaktifan 8-nonaktifkan
        "subList":[{
            "productKey":"a1hRrzD****",
            "deviceName":"abcd"
        }]
    }, 
  "method":"thing.topo.change"  
}

Parameter Permintaan

ParameterTipeDeskripsi
idString

ID pesan yang dihasilkan oleh IoT Platform. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat.

versionStringNomor versi protokol. Atur nilai menjadi 1.0.
methodStringMetode permintaan. Atur nilai menjadi thing.topo.change.
paramsObjectParameter permintaan, termasuk parameter status dan subList. Parameter status menentukan status hubungan topologi. Parameter subList menentukan daftar perangkat bawahan.
statusIntegerStatus hubungan topologi.
  • 0: Hubungan topologi ditambahkan.
  • 1: Hubungan topologi dihapus.
  • 2: Hubungan topologi diaktifkan.
  • 8: Hubungan topologi dinonaktifkan.
deviceNameStringDeviceName dari perangkat bawahan.
productKeyStringProductKey dari produk tempat perangkat bawahan milik.

Contoh Respons dalam Format JSON Alink:

{
    "id":"123",
    "code":200,
    "message":"success",
    "data":{}
}