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.
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
| Parameter | Tipe | Deskripsi |
| id | String | ID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat. |
| version | String | Nomor 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:
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. |
| params | List | Parameter permintaan. |
| deviceName | String | DeviceName dari perangkat bawahan. |
| productKey | String | ProductKey dari produk tempat perangkat bawahan milik. |
| sign | String | Tanda tangan. Metode penandatanganan:
Contoh: |
| signmethod | String | Algoritma tanda tangan. Algoritma yang didukung adalah HMACSHA1, HMACSHA256, HMACMD5, dan SHA256. |
| timestamp | String | Timestamp. |
| clientId | String | Opsional. Pengenal lokal perangkat. Anda dapat mengatur parameter ini ke nilai yang menggabungkan ProductKey dan DeviceName berdasarkan sintaksis berikut: productKey&deviceName. |
| method | String | Metode permintaan. Atur nilai menjadi thing.topo.add. |
Parameter Respons
| Parameter | Tipe | Deskripsi |
| id | String | ID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat. |
| code | Integer | Kode status. Nilai 200 menunjukkan bahwa permintaan berhasil. |
| data | Object | Informasi perangkat bawahan yang dikembalikan dalam kasus permintaan berhasil. Untuk informasi lebih lanjut tentang parameter, lihat tabel berikut. |
| Parameter | Tipe | Deskripsi |
| deviceName | String | DeviceName dari perangkat bawahan. |
| productKey | String | ProductKey dari produk tempat perangkat bawahan milik. |
Pesan Kesalahan
| Kode status HTTP | Pesan kesalahan | Deskripsi |
| 460 | request parameter error | Pesan kesalahan yang dikembalikan karena parameter permintaan tidak valid. |
| 6402 | topo relation cannot add by self | Pesan kesalahan yang dikembalikan karena perangkat tidak dapat ditambahkan sebagai perangkat bawahan dari dirinya sendiri. |
| 401 | request auth error | Pesan 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.
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
| Parameter | Tipe | Deskripsi |
| id | String | ID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat. |
| version | String | Nomor 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:
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. |
| params | List | Parameter permintaan. |
| deviceName | String | DeviceName dari perangkat bawahan. |
| productKey | String | ProductKey dari produk tempat perangkat bawahan milik. |
| method | String | Metode permintaan. Atur nilai menjadi thing.topo.delete. |
Parameter Respons
| Parameter | Tipe | Deskripsi |
| id | String | ID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat. |
| code | Integer | Kode status. Nilai 200 menunjukkan bahwa permintaan berhasil. |
| data | Object | Informasi perangkat bawahan yang dikembalikan dalam kasus permintaan berhasil. Untuk informasi lebih lanjut tentang parameter, lihat tabel berikut. |
| Parameter | Tipe | Deskripsi |
| deviceName | String | DeviceName dari perangkat bawahan. |
| productKey | String | ProductKey dari produk tempat perangkat bawahan milik. |
Pesan Kesalahan
| Kode status HTTP | Pesan kesalahan | Deskripsi |
| 460 | request parameter error | Pesan kesalahan yang dikembalikan karena parameter permintaan tidak valid. |
| 6100 | device not found | Pesan 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
| Parameter | Tipe | Deskripsi |
| id | String | ID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat. |
| version | String | Nomor 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:
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. |
| params | Object | Parameter permintaan. Anda dapat membiarkan parameter kosong. |
| method | String | Metode permintaan. Atur nilai menjadi thing.topo.get. |
Parameter Respons
| Parameter | Tipe | Deskripsi |
| id | String | ID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat. |
| code | Integer | Kode status. Nilai 200 menunjukkan bahwa permintaan berhasil. |
| data | Object | Data respons dalam kasus permintaan berhasil. |
| deviceName | String | DeviceName dari perangkat bawahan. |
| productKey | String | ProductKey dari produk tempat perangkat bawahan milik. |
Pesan Kesalahan
| Kode status HTTP | Pesan kesalahan | Deskripsi |
| 460 | request parameter error | Pesan 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
| Parameter | Tipe | Deskripsi |
| id | String | ID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat. |
| version | String | Nomor 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:
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. |
| params | Object | Parameter permintaan. Anda dapat membiarkan parameter kosong. |
| method | String | Metode permintaan. Atur nilai menjadi thing.list.found. |
| deviceName | String | DeviceName dari perangkat bawahan. |
| productKey | String | ProductKey dari produk tempat perangkat bawahan milik. |
Parameter Respons
| Parameter | Tipe | Deskripsi |
| id | String | ID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat. |
| code | Integer | Kode status. Nilai 200 menunjukkan bahwa permintaan berhasil. |
| data | Object | Data respons dalam kasus permintaan berhasil. |
Pesan Kesalahan
| Kode status HTTP | Pesan kesalahan | Deskripsi |
| 460 | request parameter error | Pesan kesalahan yang dikembalikan karena parameter permintaan tidak valid. |
| 6250 | product not found | Pesan kesalahan yang dikembalikan karena produk tempat perangkat bawahan milik tidak ditemukan. |
| 6280 | devicename not meet specs | Pesan 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
| Parameter | Tipe | Deskripsi |
| id | String | ID pesan yang dihasilkan oleh IoT Platform. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat. |
| version | String | Nomor versi protokol. Atur nilai menjadi 1.0. |
| params | Object | Parameter permintaan. Anda dapat membiarkan parameter kosong. |
| method | String | Metode permintaan. Atur nilai menjadi thing.topo.add.notify. |
| deviceName | String | DeviceName dari perangkat bawahan. |
| productKey | String | ProductKey dari produk tempat perangkat bawahan milik. |
Parameter Respons
| Parameter | Tipe | Deskripsi |
| id | String | ID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat. |
| code | Integer | Kode status. Nilai 200 menunjukkan bahwa permintaan berhasil. |
| data | Object | Data 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
| Operasi | Perilaku | Metode 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
| Parameter | Tipe | Deskripsi |
| id | String | ID pesan yang dihasilkan oleh IoT Platform. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat. |
| version | String | Nomor versi protokol. Atur nilai menjadi 1.0. |
| method | String | Metode permintaan. Atur nilai menjadi thing.topo.change. |
| params | Object | Parameter permintaan, termasuk parameter status dan subList. Parameter status menentukan status hubungan topologi. Parameter subList menentukan daftar perangkat bawahan. |
| status | Integer | Status hubungan topologi.
|
| deviceName | String | DeviceName dari perangkat bawahan. |
| productKey | String | ProductKey dari produk tempat perangkat bawahan milik. |
Contoh Respons dalam Format JSON Alink:
{
"id":"123",
"code":200,
"message":"success",
"data":{}
}