全部产品
Search
文档中心

IoT Platform:Lakukan pembaruan OTA

更新时间:Jul 06, 2025

IoT Platform mendukung fitur over-the-air (OTA). Anda dapat menggunakan fitur OTA untuk memperbarui perangkat. Topik ini menjelaskan cara menggunakan fitur OTA untuk memperbarui perangkat ketika Message Queuing Telemetry Transport (MQTT) digunakan untuk menghubungkan perangkat ke IoT Platform. Topik ini juga mencakup topik-topik dan format data yang digunakan selama penerusan data dalam pembaruan OTA.

Proses

Gambar berikut menunjukkan proses melakukan pembaruan OTA melalui MQTT.

Process

Catatan

  • Untuk melakukan pembaruan diferensial, perangkat harus mengirimkan nomor versi modul OTA. Untuk pembaruan penuh, perangkat tidak perlu mengirimkan nomor versi modul OTA. Jika nomor versi tidak dikirimkan, Anda tidak dapat menentukan versi sumber saat mengonfigurasi pembaruan massal. Untuk informasi lebih lanjut, lihat Memulai Pembaruan Massal.

    Perangkat hanya perlu mengirimkan nomor versi sekali selama startup sebelum pembaruan pertama. Setelah pembaruan diinstal pada perangkat, perangkat harus segera mengirimkan nomor versi saat ini.

  • Saat Anda mulai memperbarui beberapa perangkat di konsol IoT Platform, setiap perangkat akan berada dalam status Menunggu Pembaruan.

    Ketika IoT Platform menerima kemajuan pembaruan yang dikirim oleh perangkat, status perangkat berubah menjadi Memperbarui.

    Catatan Setelah perangkat menerima notifikasi pembaruan dari IoT Platform, perangkat dapat mengunduh paket pembaruan dan melakukan pembaruan segera atau selama jam-jam sepi bisnis.
  • IoT Platform memeriksa apakah pembaruan OTA berhasil berdasarkan nomor versi yang dikirimkan oleh perangkat.
  • Perangkat offline tidak dapat menerima notifikasi pembaruan dari IoT Platform.

    Setelah perangkat online, IoT Platform memeriksa apakah perangkat perlu diperbarui. Jika pembaruan diperlukan, IoT Platform mengirimkan notifikasi pembaruan ke perangkat. Jika tidak, tidak ada notifikasi yang dikirim.

Format pesan

Untuk informasi lebih lanjut tentang cara menggunakan SDK berbasis bahasa untuk mengimplementasikan pembaruan OTA pada perangkat, lihat Dokumentasi Link SDK.

Langkah-langkah berikut menjelaskan proses melakukan pembaruan OTA:

  1. Opsional. Hubungkan perangkat ke layanan OTA dari IoT Platform dan kirimkan nomor versi.

    Nomor versi didorong ke topik berikut melalui MQTT: /ota/device/inform/${productKey}/${deviceName}. Contoh pesan:

    {
        "id": "123",
        "params": {
            "version": "1.0.1",
            "module": "MCU"
        }
    }
    Tabel 1. Parameter
    ParameterTipeDeskripsi
    idStringID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat.
    versionStringVersi modul OTA.
    moduleStringNama modul OTA.
    Catatan
    • Jika perangkat mengirimkan versi modul default, parameter module bersifat opsional.
    • Versi modul default menunjukkan versi firmware perangkat.
  2. Di konsol IoT Platform, tambahkan paket pembaruan, periksa paket pembaruan, lalu mulai pembaruan massal.

    Untuk informasi lebih lanjut, lihat Ikhtisar.

  3. Setelah Anda memulai pembaruan di konsol IoT Platform, perangkat menerima URL paket pembaruan dari sebuah topik.

    Pesan yang mencakup URL dikirim dari layanan OTA IoT Platform ke topik berikut: /ota/device/upgrade/${productKey}/${deviceName}. Setelah IoT Platform mengirimkan permintaan pembaruan OTA ke perangkat, perangkat menerima URL paket pembaruan dari topik tersebut.

    Contoh pesan:

    • Contoh informasi tentang paket pembaruan OTA yang berisi satu file:
      • Unduh paket pembaruan OTA melalui HTTPS:
        {
            "id": "123",
            "code": 200,
            "data": {
                "size": 93796291,
                "sign": "f8d85b250d4d787a9f483d89a974***",
                "version": "10.0.1.9.20171112.1432",
                "isDiff": 1,
                "url": "https://the_firmware_url",
                "signMethod": "MD5",
                "md5": "f8d85b250d4d787a9f48***",
                "module": "MCU",
                "extData":{
                    "key1":"value1",
                    "key2":"value2",
                    "_package_udi":"{\"ota_notice\":\"Perbarui driver kamera untuk mencegah video buram.\"}"
                }
            }
        }
      • Unduh paket pembaruan OTA melalui MQTT:
        {
            "id": "123",
            "code": 200,
            "data":{
                "size":432945,
                "digestsign":"A4WOP***SYHJ6DDDJD9***",
                "version":"2.0.0",
                "isDiff":1,
                "signMethod":"MD5",
                "dProtocol":"mqtt",
                "streamId":1397345,
                "streamFileId":1,
                "md5":"93230c3bde***",
                "sign":"93230c3bde42***",
                "module":"MCU",
                "extData":{
                    "key1":"value1",
                    "key2":"value2"
                }
            }
        }
    • Anda dapat mengunduh paket pembaruan OTA yang berisi beberapa file hanya melalui HTTP. Contoh informasi:
      {
          "id": "123",
          "code": 200,
          "data": {
              "version": "2.0.0",
              "isDiff": 1,
              "signMethod": "MD5",
              "files":[
                  {
                      "fileSize":432944,
                      "fileName":"file1-name",
                      "fileUrl":"https://iotx***.aliyuncs.com/nop***.tar.gz?Expires=1502955804&OSSAccessKeyId=***&Signature=XfgJu7***U%3D&security-token=CAISu***",
                      "fileMd5":"93230c3bde425a9d7984a594ac55ea1e",
                      "fileSign":"93230c3bde425a9d7984a594ac55****"
                  },
                  {
                      "fileSize":432945,
                      "fileName":"file2-name",
                      "fileUrl":"https://iotx-***.aliyuncs.com/no***.tar.gz?Expires=1502955804&OSSAccessKeyId=***&Signature=XfgJu7P***KU%3D&security-token=CAISuQJ***",
                      "fileMd5":"93230c3bde425a9d7984a594ac56ea1f",
                      "fileSign":"93230c3bde425a9d7984a594ac56****"
                 }
              ],
              "module": "MCU",
              "extData":{
                  "key1":"value1",
                  "key2":"value2",
                  "_package_udi":"{\"ota_notice\":\"Perbarui driver kamera untuk mencegah video buram.\"}"
              }
          }
      }
    Tabel 2. Parameter
    ParameterTipeDeskripsi
    idLongID pesan. Setiap ID pesan unik untuk perangkat.
    messageStringPesan respons.
    codeStringKode status HTTP.
    versionStringVersi paket pembaruan OTA.
    sizeLongUkuran paket pembaruan. Unit: byte.

    Parameter ini tersedia jika paket pembaruan OTA berisi satu file.

    urlStringURL Object Storage Service (OSS) dari paket pembaruan OTA.

    Parameter ini tersedia jika paket pembaruan OTA berisi satu file dan protokol unduhan adalah HTTPS.

    dProtocolStringProtokol yang digunakan untuk mengunduh paket pembaruan OTA.

    Parameter ini tersedia jika protokol unduhan adalah MQTT.

    streamIdLongID unik yang dihasilkan saat Anda mengunduh paket pembaruan OTA melalui MQTT.

    Parameter ini tersedia jika protokol unduhan adalah MQTT.

    streamFileIdIntegerID unik dari paket pembaruan OTA yang berisi satu file.

    Parameter ini tersedia jika protokol unduhan adalah MQTT.

    isDiffLongParameter ini tersedia jika paket pembaruan adalah paket pembaruan delta.

    Atur nilainya menjadi 1. Nilai ini menentukan bahwa paket pembaruan hanya berisi perbedaan antara versi baru dan versi sebelumnya. Dalam hal ini, pembaruan delta dilakukan.

    digestsignStringTanda tangan paket pembaruan OTA setelah pembaruan aman dilakukan. Parameter ini tersedia jika fitur pembaruan aman diaktifkan untuk paket pembaruan OTA. Untuk informasi lebih lanjut tentang cara mengaktifkan fitur pembaruan aman, lihat Tambahkan paket pembaruan.
    signStringTanda tangan paket pembaruan OTA.

    Parameter ini tersedia jika paket pembaruan OTA berisi satu file.

    signMethodStringAlgoritma tanda tangan. Nilai valid:
    • SHA256
    • MD5
    Paket pembaruan delta untuk Android hanya mendukung algoritma MD5.
    md5StringJika algoritma tanda tangan adalah MD5, IoT Platform menentukan nilai untuk parameter sign dan md5.

    Parameter ini tersedia jika paket pembaruan OTA berisi satu file.

    moduleStringNama modul tempat paket pembaruan OTA diterapkan.
    Catatan Jika paket pembaruan OTA diterapkan ke modul default, IoT Platform tidak mengirimkan parameter module.
    extDataObjectTag batch pembaruan dan informasi kustom yang ingin Anda dorong ke perangkat melalui IoT Platform.

    _package_udi menentukan informasi kustom.

    Format setiap tag: "key":"value".

    filesArrayInformasi tentang file dalam paket pembaruan.

    Parameter ini tersedia jika paket pembaruan OTA berisi beberapa file. Informasi tentang satu file:

    • fileSize: ukuran file.
    • fileName: nama file.
    • fileUrl, fileMd5, dan fileSign: Parameter ini sesuai dengan parameter url, md5, dan sign dalam tabel ini.
  4. Opsional. Unduh paket pembaruan dalam waktu 24 jam setelah SDK perangkat menerima URL paket pembaruan. Jika tidak, URL akan kedaluwarsa. Perangkat dapat meminta tugas pembaruan baru dari IoT Platform dengan mengirimkan pesan ke topik berikut:

    /sys/${productKey}/${deviceName}/thing/ota/firmware/get. Contoh pesan:

    {
        "id": "123",
        "version": "1.0",
        "params": {
            "module": "MCU"
        },
        "method": "thing.ota.firmware.get"
    }
    Tabel 4. Parameter
    ParameterTipeDeskripsi
    idStringID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat.
    versionStringVersi protokol. Atur nilainya menjadi 1.0.
    paramsObjectParameter permintaan.
    moduleStringNama modul tempat paket pembaruan OTA diterapkan.
    Catatan Jika Anda tidak mengonfigurasi parameter ini, informasi paket pembaruan modul default diminta.
    methodStringMetode permintaan. Atur nilainya menjadi thing.ota.firmware.get.

    Setelah IoT Platform menerima permintaan, IoT Platform mengirimkan informasi paket pembaruan ke topik berikut: /sys/${productKey}/${deviceName}/thing/ota/firmware/get_reply.

    • IoT Platform mengirimkan informasi tentang paket pembaruan terbaru ke perangkat. Contoh respons:
      • Contoh informasi tentang paket pembaruan OTA yang berisi satu file:
        • Unduh paket pembaruan OTA melalui HTTPS:
          {
              "id": "123",
              "code": 200,
              "data": {
                  "size": 93796291,
                  "sign": "f8d85b250d4d787a9f483d89a974***",
                  "version": "10.0.1.9.20171112.1432",
                  "isDiff": 1,
                  "url": "https://the_firmware_url",
                  "signMethod": "MD5",
                  "md5": "f8d85b250d4d787a9f48***",
                  "module": "MCU",
                  "extData":{
                      "key1":"value1",
                      "key2":"value2",
                      "_package_udi":"{\"ota_notice\":\"Perbarui driver kamera untuk mencegah video buram.\"}"
                  }
              }
          }
        • Unduh paket pembaruan OTA melalui MQTT:
          {
              "id": "123",
              "code": 200,
              "data":{
                  "size":432945,
                  "digestsign":"A4WOP***SYHJ6DDDJD9***",
                  "version":"2.0.0",
                  "isDiff":1,
                  "signMethod":"MD5",
                  "dProtocol":"mqtt",
                  "streamId":1397345,
                  "streamFileId":1,
                  "md5":"93230c3bde***",
                  "sign":"93230c3bde42***",
                  "module":"MCU",
                  "extData":{
                      "key1":"value1",
                      "key2":"value2"
                  }
              }
          }
      • Anda dapat mengunduh paket pembaruan OTA yang berisi beberapa file hanya melalui HTTP. Contoh informasi:
        {
            "id": "123",
            "code": 200,
            "data": {
                "version": "2.0.0",
                "isDiff": 1,
                "signMethod": "MD5",
                "files":[
                    {
                        "fileSize":432944,
                        "fileName":"file1-name",
                        "fileUrl":"https://iotx***.aliyuncs.com/nop***.tar.gz?Expires=1502955804&OSSAccessKeyId=***&Signature=XfgJu7***U%3D&security-token=CAISu***",
                        "fileMd5":"93230c3bde425a9d7984a594ac55ea1e",
                        "fileSign":"93230c3bde425a9d7984a594ac55****"
                    },
                    {
                        "fileSize":432945,
                        "fileName":"file2-name",
                        "fileUrl":"https://iotx-***.aliyuncs.com/no***.tar.gz?Expires=1502955804&OSSAccessKeyId=***&Signature=XfgJu7P***KU%3D&security-token=CAISuQJ***",
                        "fileMd5":"93230c3bde425a9d7984a594ac56ea1f",
                        "fileSign":"93230c3bde425a9d7984a594ac56****"
                   }
                ],
                "module": "MCU",
                "extData":{
                    "key1":"value1",
                    "key2":"value2",
                    "_package_udi":"{\"ota_notice\":\"Perbarui driver kamera untuk mencegah video buram.\"}"
                }
            }
        }
      Tabel 1. Tabel berikut menjelaskan parameter.
      ParameterTipeDeskripsi
      idStringID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat.

      ID pesan dalam respons sama dengan ID pesan dalam permintaan. Anda dapat melihat parameter id dalam data yang dikirimkan ke topik /sys/${productKey}/${deviceName}/thing/ota/firmware/get.

      codeIntegerKode status. Nilai 200 menunjukkan permintaan berhasil.
      dataStringInformasi tentang paket pembaruan. Untuk informasi lebih lanjut, lihat Dorong informasi paket pembaruan OTA ke perangkat.
    • IoT Platform mengirimkan respons jika tidak ada informasi paket pembaruan. Contoh respons:
      {
          "id": "123",
          "code": 200,
          "data": {
          }
      }
  5. Setelah SDK perangkat menerima URL paket pembaruan, perangkat memanggil operasi API di SDK untuk mengunduh paket pembaruan. Untuk informasi lebih lanjut, lihat Ikhtisar.
    Catatan Perangkat tidak dapat secara otomatis mengunduh paket pembaruan. Anda harus memanggil operasi yang diperlukan di SDK untuk mengunduh paket pembaruan. Jika perangkat gagal mengunduh paket pembaruan dari URL dalam waktu 24 jam, URL akan kedaluwarsa.

    Untuk informasi lebih lanjut tentang log yang dihasilkan saat Anda mengunduh paket pembaruan, lihat topik berikut:

  6. Selama pembaruan, perangkat mengirimkan kemajuan pembaruan ke topik berikut: /ota/device/progress/${productKey}/${deviceName}.
    Catatan Kami merekomendasikan Anda mengatur frekuensi pelaporan kemajuan maksimal sekali setiap 3 detik. Jika frekuensi aktual melebihi batas, Anda mungkin gagal melihat semua informasi kemajuan pada halaman Batch Details dari paket pembaruan OTA di konsol IoT Platform.

    Contoh pesan:

    {
        "id": "123",
        "params": {
            "step": "-1",
            "desc": "Pembaruan OTA gagal karena tidak ditemukan informasi paket pembaruan.",
            "module": "MCU"
        }
    }
    Tabel 3. Parameter
    ParameterTipeDeskripsi
    idStringID pesan. Nilai valid: 0 hingga 4294967295. Setiap ID pesan harus unik untuk perangkat.
    stepString

    Kemajuan pembaruan OTA.

    Nilai valid:
    • Bilangan bulat dari 1 hingga 100: menunjukkan persentase yang mewakili kemajuan pembaruan.
    • -1: menunjukkan bahwa pembaruan gagal.
    • -2: menunjukkan bahwa unduhan gagal.
    • -3: menunjukkan bahwa verifikasi gagal.
    • -4: menunjukkan bahwa flashing firmware gagal.

    Nilai kemajuan dan deskripsi pembaruan OTA dapat dikonfigurasi di perangkat berdasarkan kebutuhan aktual. Untuk informasi lebih lanjut tentang cara mengembangkan fitur pembaruan OTA di perangkat, lihat Contoh kode.

    descStringDeskripsi langkah saat ini. Deskripsi tidak boleh melebihi 128 karakter. Jika terjadi pengecualian, parameter ini berisi pesan kesalahan.
    moduleStringNama modul tempat paket pembaruan OTA diterapkan. Untuk informasi lebih lanjut, lihat Tambahkan paket pembaruan.
    Catatan Jika perangkat mengirimkan kemajuan pembaruan modul default, parameter module bersifat opsional.
  7. Setelah pembaruan OTA perangkat selesai, perangkat mengirimkan versi firmware saat ini ke topik berikut: /ota/device/inform/${productKey}/${deviceName}. Jika versi yang dikirimkan sama dengan versi yang dikirim oleh layanan OTA ke topik tersebut, pembaruan OTA berhasil. Jika tidak, pembaruan OTA gagal.
    Catatan IoT Platform memeriksa apakah pembaruan OTA berhasil berdasarkan versi firmware yang dikirimkan. Sebagai contoh, perangkat mengirimkan kemajuan pembaruan 100%. Namun, jika versi firmware saat ini tidak dikirimkan dalam periode timeout tertentu, IoT Platform menganggap bahwa pembaruan gagal.

    Kami merekomendasikan Anda segera me-restart perangkat setelah pembaruan OTA selesai. Setelah perangkat online, kirimkan nomor versi saat ini. Interval antara permintaan untuk menghubungkan perangkat ke IoT Platform dan permintaan untuk mengirimkan nomor versi saat ini tidak boleh melebihi 2 detik.

Kesalahan umum

  • Tanda tangan tidak valid. Jika URL paket pembaruan tidak valid atau diubah, kesalahan ini terjadi, seperti ditunjukkan pada gambar berikut.Data masking
  • Akses ditolak. Kesalahan terjadi karena URL telah kedaluwarsa. Setiap URL valid selama 24 jam.Data masking

Referensi API

Pembaruan OTA