Error dan pengecualian

Dokumen ini berisi daftar error dan pengecualian yang didukung secara resmi untuk perangkat smart home. Gunakan kode error dan pengecualian tertentu ini dalam respons intent, atau di notifikasi jika Anda telah menerapkannya, sehingga Asisten Google memberi tahu pengguna akhir tentang masalah terkait perintah atau status perangkat tertentu. Jika respons berisi format yang salah atau errorCode, Asisten Google akan memberi pengguna pesan error umum, misalnya, "Maaf, perangkat tidak tersedia saat ini".

Error

Anda akan menampilkan kode error saat suatu masalah menyebabkan permintaan eksekusi atau kueri gagal. Misalnya, jika kunci pintu macet dan tidak dapat dikunci atau dibuka kuncinya, error tentang status ini harus ditampilkan kepada pengguna.

Kode error dapat disertakan di tingkat perangkat atau tingkat global. Misalnya, jika pengguna memiliki banyak lampu dari satu penyedia dan mereka dikontrol oleh sebuah hub, saat pengguna meminta untuk mematikan semua lampu, penyedia dapat menampilkan error tingkat perangkat jika satu lampu offline, atau error tingkat global jika seluruh hub offline dan tidak ada lampu yang dapat dikontrol. Jika semua perangkat sedang offline, tidak ada perbedaan antara penggunaan error tingkat global atau tingkat perangkat. Saat perangkat sedang offline, Anda harus melaporkan status {"online": false} di reportState meskipun Anda menampilkan kode error deviceOffline.

Rangkuman:

  • Error tingkat global: semua perangkat dalam respons memiliki error yang sama
  • Error tingkat lokal: respons campuran dengan kasus error dan berhasil

Error tingkat global

Cuplikan JSON berikut menunjukkan cara Anda menampilkan error tingkat global dalam respons QUERY atau EXECUTE.

Contoh error tingkat global deviceOffline karena hub sedang offline:

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "errorCode": "deviceOffline",
    "status" : "ERROR"
  }
}

Contoh error tingkat global inSoftwareUpdate karena hub ini sedang diupdate:

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "errorCode": "inSoftwareUpdate",
    "status" : "ERROR"
  }
}

Error tingkat perangkat

Respons QUERY

Cuplikan JSON berikut ini menunjukkan cara Anda menampilkan error tingkat perangkat dalam respons QUERY.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "devices": {
      "device-id-1": {
        "errorCode": "deviceOffline",
        "status" : "ERROR"
      },
      "device-id-2": {
        "errorCode": "deviceOffline",
        "status" : "ERROR"
      }
    }
  }
}

MELAKSANAKAN respons

Cuplikan JSON berikut menunjukkan cara Anda menampilkan error tingkat perangkat dalam respons EXECUTE.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "device-id-1"
        ],
        "status": "ERROR",
        "errorCode": "deviceOffline"
      },
      {
        "ids": [
          "device-id-2"
        ],
        "status": "SUCCESS",
        "states": {
          "on": true,
          "online": true
        }
      }
    ]
  }
}

Notifikasi yang berisi error

Notifikasi proaktif

Cuplikan JSON berikut menunjukkan cara melaporkan error tingkat perangkat dalam notifikasi proaktif.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "agentUserId": "agent-user-id-1",
  "eventId": "unique-event-id-1",
  "payload": {
    "devices": {
      "notifications": {
        "device-id-1": {
          "RunCycle": {
            "priority": 0,
            "status": "FAILURE",
            "errorCode": "deviceDoorOpen"
          }
        }
      }
    }
  }
}

Tindak lanjuti respons

Cuplikan JSON berikut menunjukkan cara Anda melaporkan error tingkat perangkat dalam respons tindak lanjut.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "agentUserId": "agent-user-id-1",
  "eventId": "unique-event-id-1",
  "payload": {
    "devices": {
      "notifications": {
        "device-id-1": {
          "LockUnlock": {
            "priority": 0,
            "followUpResponse": {
              "status": "FAILURE",
              "errorCode": "deviceJammingDetected",
              "followUpToken": "PLACEHOLDER"
            }
          }
        }
      }
    }
  }
}

Daftar kesalahan

Error berikut akan menghasilkan TTS terkait di perangkat.

  • di atasMaximumLightEffectsDuration : Itu lebih dari durasi maksimum 1 jam. Coba lagi.
  • di atasMaximumTimerDuration : Saya hanya dapat menyetel <device(s)> hingga <time period>
  • actionNotAvailable : Maaf, sepertinya saat ini saya tidak dapat melakukan itu.
  • actionUnavailableWhenRunning : <device(s)> <is/are> saat ini berjalan, jadi saya tidak bisa membuat perubahan apa pun.
  • alreadyArmed : <device(s)> <is/are> sudah aktif.
  • alreadyAtMax : <device(s)> <is/are> sudah disetel ke suhu maksimum.
  • alreadyAtMin : <device(s)> <is/are> sudah disetel ke suhu minimum.
  • alreadyClosed : <device(s)> <is/are> sudah ditutup.
  • sudahdinonaktifkan : <device(s)> <is/are> sudah dinonaktifkan.
  • sudah dipasang ke dok : <device(s)> <is/are> sudah dipasang ke dok.
  • alreadyInState : <device(s)> <is/are> sudah dalam status tersebut.
  • alreadyKunci : <device(s)> <is/are> sudah terkunci.
  • sudahNonaktif : <device(s)> <is/are> sudah nonaktif.
  • alreadyOn : <device(s)> <is/are> sudah aktif.
  • alreadyOpen : <device(s)> <is/are> sudah terbuka.
  • sudah dijeda : <device(s)> <is/are> sudah dijeda.
  • alreadyStarted : <device(s)> <is/are> sudah dimulai.
  • sudahDihentikan : <device(s)> <is/are> sudah dihentikan.
  • sudahTidak terkunci : <device(s)> <is/are> sudah dibuka kuncinya.
  • ZoneName : Maaf, <device(s)> tidak dapat mengidentifikasi zona mana yang Anda maksud. Pastikan zona Anda memiliki nama yang unik, lalu coba lagi.
  • jumlahAboveLimit : Itu lebih dari yang dapat didukung <device(s)>.
  • appLaunchFailed : Maaf, gagal meluncurkan <nama aplikasi> di <device(s)>.
  • armFailure : <device(s)> tidak dapat diaktifkan.
  • armLevelNeeded : Saya tidak yakin level mana yang harus disetel <device(s)>. Coba ucapkan "Setel <device(s)> ke <keamanan rendah>" atau "Setel <device(s)> ke <keamanan tinggi>"
  • authFailure : Sepertinya saya tidak dapat menjangkau <device(s)>. Coba periksa aplikasi untuk memastikan <device/devices> <is/are> sudah siap.
  • bagFull : <device(s)> <has/have> <a full bag/fullbag>. Kosongkan <it/them> dan coba lagi.
  • di bawahMinimumLightEffectsDuration : Itu kurang dari durasi minimum 5 menit. Coba lagi.
  • underMinimumTimerDuration : Saya tidak dapat menyetel <device(s)> untuk waktu yang singkat. Coba lagi.
  • binFull : <device(s)> <has/have> <a full bin/full bins>.
  • cancelArmingRestricted : Maaf, saya tidak dapat membatalkan arming <device(s)>.
  • cancelTooLate : Maaf, sudah terlambat untuk membatalkan. Gunakan <device(s)> atau aplikasi sebagai gantinya.
  • channelSwitchFailed : Maaf, gagal beralih ke channel <nama channel>. Coba lagi nanti.
  • Masalah pengisi daya : Maaf, sepertinya <device(s)> <has/have> <a charger issue/charger issues>.
  • commandInsertFailed : Tidak dapat memproses perintah untuk <device(s)>.
  • deadBattery : <device(s)> <has/have> <a dead baterai/deadBattery>.
  • derajatOutOfRange : Derajat yang diminta berada di luar rentang untuk <device(s)>.
  • deviceAlertNeedsAssistance : <device(s)> <has/have> notifikasi aktif dan <need(s)> bantuan Anda.
  • deviceAtExtremeTemperature : <device(s)> <is/are> pada <anjaksana suhu ekstrem/suhu ekstrem>.
  • deviceBusy : Maaf, sepertinya <device(s)> sedang melakukan sesuatu sekarang.
  • deviceCharge : Maaf, sepertinya <device(s)> tidak dapat melakukannya karena (ha_shared.ItsSomere size=$item.devices.total_device_count) mengisi daya.
  • device Tersumbat : Maaf, sepertinya <device(s)> tersumbat.
  • deviceCurrentDispensing : <device(s)> sudah mengeluarkan sesuatu sekarang.
  • deviceDoorOpen : Pintu terbuka di <device(s)>. Tutup lalu coba lagi.
  • deviceHandleClosed : Handle ditutup di <device(s)>. Buka dan coba lagi.
  • deviceJammingDetected : <device(s)> <is/are> macet.
  • deviceLidOpen : Penutup terbuka di <device(s)>. Tutuplah dan coba lagi.
  • deviceNeedsRepair : <device(s)> <need(s)> to be be Repair. Hubungi dealer servis setempat.
  • deviceNotDocked : Maaf, sepertinya <device(s)> <isn't/aren't> terpasang di dok. Pasang <it/them> ke dok lalu coba lagi.
  • deviceNotFound : <device(s)> <is/are>tidak tersedia. Sebaiknya coba siapkan <it/them> lagi.
  • deviceNotMounted : Maaf, sepertinya <device(s)> tidak dapat melakukannya karena <it/mereka> <is/are>tidak terpasang.
  • deviceNotReady : <device(s)> <is/are>belum siap.
  • deviceStuck : <device(s)> <is/are> macet dan membutuhkan bantuan Anda.
  • deviceTampered : <device(s)> <has/have> telah dirusak.
  • deviceThermalShutdown : Maaf, sepertinya <device(s)> mati karena suhu ekstrem.
  • directResponseOnlyUnreachable : <device(s)> <tidak/tidak> mendukung remote control.
  • disarmFailure : <device(s)> tidak dapat dinonaktifkan.
  • discreteOnlyOpenClose : Maaf, <device(s)> hanya dapat dibuka atau ditutup sepenuhnya.
  • dispenseAmountAboveLimit : <device(s)> tidak dapat mengeluarkan dalam jumlah besar.
  • dispenseAmountBelowLimit : <device(s)> tidak dapat mengeluarkan dalam jumlah kecil.
  • dispenseAmountRemainingexceled : <device(s)> tidak memiliki cukup <dispense item> untuk melakukannya.
  • dispenseFractionalAmountNotSupported : <device(s)> tidak dapat mengeluarkan pecahan dari <dispense item>.
  • dispenseFractionalUnitNotSupported : <device(s)> tidak mendukung pecahan unit tersebut untuk <dispense item>.
  • dispenseUnitNotSupported : <device(s)> tidak mendukung unit tersebut untuk <dispense item>.
  • DoorClosedTooLong : Sudah lama sejak pintu di <device(s)> dibuka. Harap buka pintunya, pastikan ada sesuatu di dalamnya, lalu coba lagi.
  • EmergencyHeatOn : <device(s)> <is/are> dalam Mode Sistem Pemanas Darurat, sehingga <it/mereka> harus disesuaikan secara manual.
  • faultyBattery : <device(s)> <has/have> <a faulty Battery/rusak Battery>.
  • floorUnreachable : <device(s)> tidak dapat menjangkau ruangan tersebut. Pindahkan <it/them> ke lantai yang benar lalu coba lagi.
  • functionNotSupported : Sebenarnya, <device(s)> <tidak/tidak> mendukung fungsi tersebut.
  • generikDispenseNotSupported : Saya perlu tahu apa yang ingin Anda keluarkan. Coba lagi dengan menyebutkan nama item.
  • hardError : Maaf, terjadi masalah dan saya tidak bisa mengontrol perangkat smart home Anda.
  • hardError : Maaf, terjadi masalah dan saya tidak bisa mengontrol perangkat smart home Anda.
  • inAutoMode : <device(s)> <is/are> saat ini disetel ke mode otomatis. Untuk mengubah suhu, Anda harus mengalihkan <it/them> ke mode lain.
  • inAwayMode : <device(s)> <is/are> saat ini disetel ke mode pergi. Untuk mengontrol termostat, Anda perlu mengalihkannya ke mode di rumah secara manual menggunakan aplikasi Nest di ponsel, tablet, atau komputer.
  • inDryMode : <device(s)> <is/are> saat ini disetel ke mode kering. Untuk mengubah suhu, Anda harus mengalihkan <it/them> ke mode lain.
  • inEcoMode : <device(s)> <is/are> saat ini disetel ke mode hemat energi. Untuk mengubah suhu, Anda harus mengalihkan <it/them> ke mode lain.
  • inFanOnlyMode : <device(s)> <is/are> saat ini disetel ke mode khusus kipas. Untuk mengubah suhu, Anda harus mengalihkan <it/them> ke mode lain.
  • inHeatOrCool : <device(s)> <is/are>tidak dalam mode hangat/sejuk.
  • inHumidifierMode : <device(s)> <is/are> saat ini disetel ke mode pelembap udara. Untuk mengubah suhu, Anda harus mengalihkan <it/them> ke mode lain.
  • inOffMode : <device(s)> <is/are> saat ini nonaktif. Untuk mengubah suhu, Anda harus mengganti <it/them> ke mode lain.
  • inPurifierMode : <device(s)> <is/are> saat ini disetel ke mode pembersih udara. Untuk mengubah suhu, Anda harus mengalihkan <it/them> ke mode lain.
  • inSleepMode : <device(s)> <is/are> dalam mode tidur. Coba lagi nanti.
  • inSoftwareUpdate : <device(s)> <is/are> saat ini sedang mengupdate software.
  • lockFailure : <device(s)> tidak dapat dikunci.
  • lockState : <device(s)> <is/are> saat ini terkunci.
  • lockToRange : Suhu tersebut berada di luar rentang yang dikunci di <device(s)>.
  • lowBattery : <device(s)> <has/have> low baterai.
  • maxSettingReached : <device(s)> <is/are> sudah disetel ke setelan tertinggi.
  • maxSpeedReached : <device(s)> <is/are> sudah disetel ke kecepatan maksimum.
  • minSettingReached : <device(s)> <is/are> sudah disetel ke setelan terendah.
  • minSpeedReached : <device(s)> <is/are> sudah disetel ke kecepatan minimum.
  • monitoringServiceConnectionLost : <device(s)> <has/have> kehilangan koneksi <its/mereka> ke layanan pemantauan.
  • needLampiran : Maaf, sepertinya <device(s)> <is/are> tidak memiliki lampiran yang diperlukan. Harap ganti lalu coba lagi.
  • needBin : Maaf, sepertinya <device(s)> <is/are> tidak memiliki tempat sampah. Harap ganti lalu coba lagi.
  • needPads : <device(s)> <need(s)> new pads.
  • needSoftwareUpdate : <device(s)> <need(s)> update software.
  • needWater : <device(s)> <need(s)> air.
  • networkProfileNotRecognized : Maaf, saya tidak mengenali "<network profile>" di <device(s)>.
  • networkSpeedTestInProgress : Saya sudah menguji <network> <speed/speeds>>.
  • noAvailableApp : Maaf, sepertinya <nama aplikasi> tidak tersedia.
  • noAvailableChannel : Maaf, sepertinya channel <channel name> tidak tersedia.
  • noChannelSubscription : Maaf, saat ini Anda tidak subscribe ke channel <channel name>.
  • noTimerExists : Maaf, sepertinya tidak ada timer yang disetel di <device(s)>.
  • notDidukung : Maaf, mode itu tidak tersedia untuk <device(s)>.
  • obstructionDetected : <device(s)> mendeteksi gangguan.
  • offline , deviceOffline : Maaf, sepertinya saat ini <device(s)> <is/are> tidak tersedia.
  • onRequiresMode : Tentukan mode yang ingin Anda aktifkan.
  • frasa sandi salah : Maaf, sepertinya PIN tersebut salah.
  • persenOutOfRange : Maaf, saya tidak dapat menyetel <device(s)> ke <percent>.
  • pinSalah : (frasa sandi Salah)
  • Hujan terdeteksi : Saya tidak membuka <device(s)> karena hujan terdeteksi.
  • rangeTooClose : Itu terlalu dekat untuk rentang Hangat-Sejuk untuk <device(s)>. Pilih suhu yang jaraknya lebih jauh.
  • relinkRequired : Maaf, sepertinya ada masalah dengan akun Anda. Gunakan Aplikasi Google Home atau Asisten untuk menautkan kembali <device(s)>.
  • remoteSetDisabled :
    • Parameter opsional errorCodeReason
    • currentlyArmed - Maaf, karena keamanan sudah aktif, Anda harus menggunakan <device(s)> atau aplikasi untuk melakukan perubahan.
    • remoteUnlockNotAllowed - Maaf, saya tidak dapat membuka kunci <device(s)> dari jarak jauh.
    • remoteControlOff - Tindakan tersebut saat ini dinonaktifkan. Aktifkan remote control di <device(s)> dan coba lagi.
    • childSafetyModeActive - Tindakan tersebut dinonaktifkan untuk <device(s)> saat mode keselamatan anak aktif.
  • RoomsOn DifferentFloors : <device(s)> tidak dapat menjangkau ruangan tersebut karena berada di lantai yang berbeda.
  • safetyShutOff : <device(s)> <is/are> dalam Mode Nonaktif Keselamatan, sehingga <it/mereka> harus disesuaikan secara manual.
  • sceneCannotBeApplied : Maaf, <device(s)> tidak dapat diterapkan.
  • securityRestriction : <device(s)> <has/have> a security restriction.
  • softwareUpdateNotAvailable : Maaf, tidak ada update software yang tersedia di <device(s)>.
  • startRequiresTime : Untuk melakukannya, Anda harus memberi tahu saya berapa lama Anda ingin menjalankan <device(s)>.
  • StillCoolingDown : <device(s)> <is/are> masih dingin.
  • masihWarmingUp : <device(s)> <is/are> masih dalam proses persiapan.
  • streamUnavailable : Maaf, sepertinya streaming saat ini tidak tersedia dari <device(s)>.
  • streamUnplayable : Maaf, saat ini saya tidak bisa memutar streaming dari <device(s)>.
  • blockEmpty : <device(s)> <has/have> <an empty shell/emptytangs>. Isi <it/them> dan coba lagi.
  • targetAlreadyReached : Maaf, sepertinya suhu tersebut sudah sesuai dengan saat ini.
  • timerValueOutOfRange : <device(s)> tidak dapat disetel untuk durasi tersebut.
  • terlaluManyFailedCobas : Maaf, terlalu banyak upaya yang gagal. Buka aplikasi perangkat Anda untuk menyelesaikan tindakan tersebut.
  • temporaryError : Maaf, terjadi error saat mengontrol <device(s)>. Coba lagi.
  • dinonaktifkan , deviceTurnedOff : <device(s)> <is/are> nonaktif sekarang.
  • NotToLocationsDevice : Saya tidak dapat menemukan <device(s)>.
  • unknownFoodPreset : <device(s)> tidak mendukung preset makanan tersebut.
  • UnlockFailure : <device(s)> tidak dapat dibuka kuncinya.
  • unpausableState : <device(s)> tidak dapat dijeda saat ini.
  • userDibatalkan : oke
  • valueOutOfRange : <device(s)> tidak dapat disetel ke suhu tersebut.

Pengecualian

Anda harus menampilkan pengecualian saat ada masalah atau pemberitahuan yang terkait dengan perintah. Perintah bisa berhasil atau gagal.

Jika perintah berhasil (status = "SUCCESS"), laporkan pengecualian menggunakan trait StatusReport (untuk perangkat selain target), atau dengan menampilkan exceptionCode yang sesuai (untuk perangkat target).

Misalnya, jika layar lint pengering penuh, pengguna masih dapat memulai pengering, tetapi Anda mungkin ingin memperingatkan pengguna tentang status ini. Demikian pula, jika baterai perangkat lemah dan tidak kosong, Anda masih dapat menjalankan perintah, tetapi harus memberi tahu bahwa baterai perangkat lemah.

Jika perintah gagal karena pengecualian, statusnya harus menjadi "EXCEPTIONS", dan pengecualian harus dilaporkan menggunakan trait StatusReport.

Pengecualian non-pemblokiran (SUCCESS) tentang perangkat target

Contoh ini untuk mengunci pintu:

Daya baterai kunci pintu depan lemah. Mengunci pintu depan.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["device-id-1"],
      "status": "SUCCESS",
      "states": {
        "on": true,
        "online": true,
        "isLocked": true,
        "isJammed": false,
        "exceptionCode": "lowBattery"
      }
    }]
  }
}

Pengecualian non-pemblokiran (SUCCESS) tentang perangkat lain yang menggunakan StatusReport

Contoh ini untuk mengaktifkan sistem keamanan: Oke, mengaktifkan sistem keamanan. Jendela depan terbuka.

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [{
      "ids": ["device-id-1"],
      "status": "SUCCESS",
      "states": {
        "on": true,
        "online": true,
        "isArmed": true,
        "currentArmLevel": "L2",
        "currentStatusReport": [{
          "blocking": false,
          "deviceTarget": "sensor_id1",
          "priority": 0,
          "statusCode": "deviceOpen"
        }]
      }
    }]
  }
}

Memblokir pengecualian tentang perangkat lain menggunakan StatusReport

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "devices": {
      "device-id-1": {
        "on": true,
        "online": true,
        "status": "EXCEPTIONS",
        "currentStatusReport": [{
            "blocking": true,
            "deviceTarget": "device-id-1",
            "priority": 0,
            "statusCode": "lowBattery"
          },
          {
            "blocking": true,
            "deviceTarget": "front_window_id",
            "priority": 1,
            "statusCode": "deviceOpen"
          },
          {
            "blocking": true,
            "deviceTarget": "back_window_id",
            "priority": 1,
            "statusCode": "deviceOpen"
          }
        ]
      }
    }
  }
}

Daftar pengecualian

Pengecualian berikut akan menghasilkan TTS terkait di perangkat.

  • bagFull : <device(s)> <has/have> <a full bag/fullbag>. Kosongkan <it/them> dan coba lagi.
  • binFull : <device(s)> <has/have> <a full bin/full bins>.
  • karbonMonoksida Terdeteksi : Karbon monoksida telah terdeteksi di <nama rumah>.
  • deviceAtExtremeTemperature : <device(s)> <is/are> pada <anjaksana suhu ekstrem/suhu ekstrem>.
  • deviceJammingDetected : <device(s)> <is/are> macet.
  • deviceMemindahkan : <device(s)> <was/were> dipindahkan.
  • deviceOpen : <device(s)> <is/are> terbuka.
  • deviceTampered : <device(s)> <has/have> telah dirusak.
  • deviceUnpluged : <device(s)> <is/are> dicabut.
  • floorUnreachable : <device(s)> tidak dapat menjangkau ruangan tersebut. Pindahkan <it/them> ke lantai yang benar lalu coba lagi.
  • hardwareFailure : <device(s)> <has/have> a hardware problem.
  • inSoftwareUpdate : <device(s)> <is/are> saat ini sedang mengupdate software.
  • Diabaikan : <device(s)> <is/are> saat ini diabaikan.
  • lowBattery : <device(s)> <has/have> low baterai.
  • motionDetected : <device(s)> <detect(s)> gerakan.
  • needPads : <device(s)> <need(s)> new pads.
  • needSoftwareUpdate : <device(s)> <need(s)> update software.
  • needWater : <device(s)> <need(s)> air.
  • networkJammingDetected : koneksi jaringan rumah ke <device(s)> tidak berfungsi dengan benar.
  • noIssuesMelaporkan : <device(s)> melaporkan tidak ada masalah.
  • RoomsOn DifferentFloors : <device(s)> tidak dapat menjangkau ruangan tersebut karena berada di lantai yang berbeda.
  • runCycleCompleted : <device(s)> <has/have> selesai berjalan.
  • securityRestriction : <device(s)> <has/have> a security restriction.
  • asap Terdeteksi : Asap telah terdeteksi di <nama rumah>.
  • blockEmpty : <device(s)> <has/have> <an empty shell/emptytangs>. Isi <it/them> dan coba lagi.
  • menggunakanCellularBackup : <device(s)> <is/are> menggunakan pencadangan seluler.
  • WaterLeakDetected : <device(s)> <detect(s)> kebocoran air.