Error dan pengecualian

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

Error

Anda harus menampilkan kode error saat 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 dilampirkan di tingkat perangkat atau di tingkat global. Misalnya, jika pengguna memiliki banyak lampu dari satu penyedia dan lampu tersebut dikontrol oleh hub, saat pengguna meminta untuk mematikan semua lampu, penyedia dapat menampilkan error tingkat perangkat jika satu lampu sedang offline, atau error tingkat global jika seluruh hub sedang offline dan tidak ada lampu yang dapat dikontrol. Jika semua perangkat sedang offline, tidak ada perbedaan antara menggunakan error tingkat global atau tingkat perangkat. Saat perangkat sedang offline, Anda harus melaporkan status {"online": false} di reportState meskipun Anda menampilkan kode error deviceOffline.

Ringkasan:

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

Error tingkat global

Cuplikan JSON berikut menunjukkan cara 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 sedang diperbarui:

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

Error tingkat perangkat

Respons QUERY

Cuplikan JSON berikut menunjukkan cara 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 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 dengan 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"
          }
        }
      }
    }
  }
}

Respons selanjutnya

Cuplikan JSON berikut menunjukkan cara 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.

  • aboveMaximumLightEffectsDuration : Durasi ini lebih dari durasi maksimum 1 jam. Harap coba lagi.
  • aboveMaximumTimerDuration : Saya hanya dapat menyetel <device(s)> hingga <time period>
  • actionNotAvailable : Maaf, sepertinya saya tidak dapat melakukannya saat ini.
  • actionAvailableWhileRunning : <device(s)> <is/are> sedang berjalan, jadi saya tidak dapat membuat perubahan apa pun.
  • alreadyArmed : <device(s)> <is/are> sudah diaktifkan.
  • 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.
  • alreadyDisarmed : <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.
  • sudah Terkunci : <device(s)> <is/are> sudah terkunci.
  • alreadyOff : <device(s)> <is/are> sudah nonaktif.
  • sudahOn : <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.
  • Sudah dihentikan : <device(s)> <is/are> sudah dihentikan.
  • sudah tidak terkunci : <device(s)> <is/are> sudah tidak terkunci.
  • WeatherName : 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 <app name> di <device(s)>.
  • armFailure : <device(s)> tidak dapat diaktifkan.
  • armLevelNeeded : Saya tidak yakin level mana yang harus ditetapkan <device(s)>. Coba ucapkan "Setel <perangkat> ke <keamanan rendah>" atau "Setel <perangkat> ke <keamanan tinggi>"
  • authFailure : Sepertinya saya tidak dapat menjangkau <device(s)>. Coba periksa aplikasi untuk memastikan <device/devices> <is/are> Anda sudah siap.
  • bagFull : <device(s)> <has/have> <a full bag/full cases>. Kosongkan <it/them> dan coba lagi.
  • belowMinimumLightEffectsDuration : Kurang dari durasi minimum 5 menit. Harap coba lagi.
  • belowMinimumTimerDuration : Saya tidak dapat menyetel <device(s)> untuk waktu yang begitu singkat. Harap coba lagi.
  • binFull : <device(s)> <has/have> <a full bin/full bins>.
  • cancelArmingRestricted : Maaf, saya tidak dapat membatalkan pengaktifan <device(s)>.
  • cancelTooLate : Maaf, sudah terlambat untuk membatalkannya. Gunakan <device(s)> atau aplikasi.
  • channelSwitchFailed : Maaf, gagal beralih ke channel <channel name>. Coba lagi nanti.
  • chargerIssue : 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/baterai mati>.
  • degreeOutOfRange : Derajat yang diminta berada di luar rentang untuk <device(s)>.
  • deviceAlertNeedsAssistance : <device(s)> <has/have> peringatan aktif dan <need(s)> bantuan Anda.
  • deviceAtExtremeTemperature : <device(s)> <is/are> pada <an ekstrem temperature/extreme temperatures>.
  • deviceBusy : Maaf, sepertinya <device(s)> sudah melakukan sesuatu saat ini.
  • devicePengisian : Maaf, sepertinya <device(s)> tidak dapat melakukannya karena (ha_shared.Its Theyre size=$item.devices.total_device_count) mengisi daya.
  • deviceClogged : Maaf, sepertinya <device(s)> tersumbat.
  • deviceCurrentDispensing : <device(s)> sudah mengeluarkan sesuatu saat ini.
  • deviceDoorOpen : Pintu terbuka di <device(s)>. Tutup dan coba lagi.
  • deviceHandleClosed : Handle ditutup di <device(s)>. Buka dan coba lagi.
  • deviceJammingDetected : <device(s)> <is/are> macet.
  • deviceLidOpen : Penutupnya terbuka di <device(s)>. Tutup lalu coba lagi.
  • deviceNeedsRepair : <device(s)> <need(s)> untuk diperbaiki. Hubungi dealer servis setempat.
  • deviceNotDocked : Maaf, sepertinya <device(s)> <isn't/aren't> terpasang. Pasang <it/mereka> ke dok dan coba lagi.
  • deviceNotFound : <device(s)> <is/are> tidak tersedia. Sebaiknya coba siapkan <it/them> lagi.
  • deviceNotMounted : Maaf, sepertinya <device(s)> tidak bisa melakukannya karena <it/they> <is/are> tidak dipasang.
  • deviceNotReady : <device(s)> <is/are>belum siap.
  • deviceStuck : <device(s)> <is/are> macet dan memerlukan bantuan Anda.
  • perangkatDirusak : <device(s)> <has/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 jumlah sebesar itu.
  • dispenseAmountBelowLimit : <device(s)> tidak dapat mengeluarkan jumlah sebanyak itu.
  • dispenseAmountRemaining Exceeded : <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 satuan 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.
  • daruratHeatOn : <device(s)> <is/are> dalam Mode Pemanas Darurat, jadi <it/they> harus disesuaikan secara manual.
  • faultyBattery : <device(s)> <has/have> <a rusak baterai/baterai rusak>.
  • floorUnreachable : <device(s)> tidak dapat menjangkau ruangan tersebut. Pindahkan <it/them> ke lantai yang benar dan coba lagi.
  • functionNotsupported : Sebenarnya, <device(s)> <tidak/tidak> mendukung fungsi tersebut.
  • generikDispenseNotSupported : Saya ingin tahu item yang ingin Anda berikan. Coba lagi dengan nama item.
  • hardError : Maaf, terjadi error dan saya tidak dapat mengontrol perangkat smart home Anda.
  • hardError : Maaf, terjadi error dan saya tidak dapat mengontrol perangkat smart home Anda.
  • inAutoMode : <device(s)> <is/are> saat ini disetel ke mode otomatis. Untuk mengubah suhu, Anda harus mengalihkan <it/mereka> ke mode lain.
  • inAwayMode : <device(s)> <is/are> saat ini disetel ke mode pergi. Untuk mengontrol termostat, Anda harus 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/mereka> ke mode lain.
  • inEcoMode : <device(s)> <is/are> saat ini disetel ke mode hemat energi. Untuk mengubah suhu, Anda harus mengalihkan <it/mereka> ke mode lain.
  • inFanOnlyMode : <device(s)> <is/are> saat ini disetel ke mode khusus kipas. Untuk mengubah suhu, Anda harus mengalihkan <it/mereka> 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/mereka> ke mode lain.
  • inOffMode : <device(s)> <is/are> saat ini nonaktif. Untuk mengubah suhu, Anda harus mengalihkan <it/them> ke mode lain.
  • inPurifierMode : <device(s)> <is/are> saat ini disetel ke mode pembersih udara. Untuk mengubah suhu, Anda harus mengalihkan <it/mereka> 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> baterai lemah.
  • 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.
  • monitoringServiceConnectionKehilangant : <device(s)> <has/have> kehilangan koneksi <its/their> ke layanan pemantauan.
  • needsLampiran : Maaf, sepertinya <device(s)> <is/are> lampiran yang diperlukan tidak ada. Harap ganti dan coba lagi.
  • needBin : Maaf, sepertinya <device(s)> <is/are> tidak ada bin. Harap ganti dan coba lagi.
  • needPads : <device(s)> <need(s)> pad baru.
  • needSoftwareUpdate : <device(s)> <need(s)> update software.
  • needWater : <device(s)> <need(s)> air.
  • networkProfileNotInterfaced : Maaf, saya tidak mengenali "<network profile>" di <device(s)>.
  • networkSpeedTestInProgress : Saya sudah menguji <network> <speed/speeds>>.
  • noAvailableApp : Maaf, sepertinya <app name> 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)>.
  • tidak Didukung : Maaf, mode tersebut tidak tersedia untuk <device(s)>.
  • blockionDetected : <device(s)> mendeteksi gangguan.
  • offline , deviceOffline : Maaf, sepertinya <device(s)> <is/are> tidak tersedia saat ini.
  • onRequiresMode : Tentukan mode yang ingin Anda aktifkan.
  • Frasa sandi salah : Maaf, sepertinya PIN salah.
  • percentOutOfRange : Maaf, saya tidak bisa menyetel <device(s)> ke <percent>.
  • pinSalah : (frasa sandiSalah)
  • rainDetected : Saya tidak membuka <device(s)> karena hujan terdeteksi.
  • rangeTooClose : Suhu ini 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 diaktifkan, Anda perlu menggunakan <device(s)> atau aplikasi untuk melakukan perubahan.
    • remoteUnlockNotAllowed - Maaf, saya tidak bisa membuka <device(s)> dari jarak jauh.
    • remoteControlOff - Tindakan itu saat ini dinonaktifkan. Aktifkan remote control di <device(s)>, lalu coba lagi.
    • childSafetyModeActive - Tindakan tersebut dinonaktifkan untuk <device(s)> saat mode keselamatan anak aktif.
  • kamarDiLantai yang berbeda : <device(s)> tidak dapat menjangkau ruangan tersebut karena berada di lantai yang berbeda.
  • safetyShutOff : <device(s)> <is/are> dalam Mode Nonaktif Keamanan, sehingga <it/they> harus disesuaikan secara manual.
  • sceneCannotBeApplied : Maaf, <device(s)> tidak dapat diterapkan.
  • securityRestriction : <device(s)> <has/have> pembatasan keamanan.
  • softwareUpdateNotAvailable : Maaf, tidak ada update software yang tersedia di <device(s)>.
  • startRequiresTime : Untuk melakukannya, Anda perlu memberi tahu saya berapa lama Anda ingin menjalankan <device(s)>.
  • masihCoolingDown : <device(s)> <is/are> masih mendingin.
  • masihWarmingUp : <device(s)> <is/are> masih melakukan pemanasan.
  • streamTidak tersedia : Maaf, sepertinya streaming tersebut saat ini tidak tersedia dari <device(s)>.
  • streamUnplayable : Maaf, saat ini saya tidak bisa memutar streaming dari <device(s)>.
  • tankEmpty : <device(s)> <has/have> <an empty tank/empty Tans>. Isi <it/them> dan coba lagi.
  • targetSudah tercapai : Maaf, sepertinya suhu saat ini sudah sesuai.
  • timerValueOutOfRange : <device(s)> tidak dapat ditetapkan untuk jangka waktu tersebut.
  • manyFailedTrys : Maaf, terlalu banyak upaya yang gagal. Buka aplikasi perangkat Anda untuk menyelesaikan tindakan tersebut.
  • transientError : Maaf, terjadi error saat mengontrol <device(s)>. Coba lagi.
  • dinonaktifkan , deviceTurnedOff : <device(s)> <is/are> nonaktif sekarang.
  • unableTodiscoverDevice : Saya tidak dapat menemukan <device(s)>.
  • UnknownFoodPreset : <device(s)> tidak mendukung preset makanan tersebut.
  • lockFailure : <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 dapat berhasil atau gagal.

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

Misalnya, jika layar lint pengering penuh, pengguna masih dapat menyalakan pengering, tetapi Anda mungkin ingin memperingatkan mereka tentang status ini. Demikian pula, jika perangkat memiliki daya baterai rendah yang tidak kosong, Anda tetap dapat menjalankan perintah tetapi harus memberi tahu bahwa baterai perangkat lemah.

Jika perintah gagal karena pengecualian, statusnya harus "PENGECUALIAN", 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 menggunakan StatusReport

Contoh berikut ditujukan 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/full cases>. Kosongkan <it/them> dan coba lagi.
  • binFull : <device(s)> <has/have> <a full bin/full bins>.
  • carbonMonoksidaDetected : Karbon monoksida telah terdeteksi di <nama rumah>.
  • deviceAtExtremeTemperature : <device(s)> <is/are> pada <an ekstrem temperature/extreme temperatures>.
  • deviceJammingDetected : <device(s)> <is/are> macet.
  • perangkat Dipindahkan : <perangkat> <was/were> dipindahkan.
  • deviceOpen : <device(s)> <is/are> terbuka.
  • perangkatDirusak : <device(s)> <has/telah> dirusak.
  • deviceUnplugged : <device(s)> <is/are> dicabut.
  • floorUnreachable : <device(s)> tidak dapat menjangkau ruangan tersebut. Pindahkan <it/them> ke lantai yang benar dan coba lagi.
  • hardwareFailure : <device(s)> <has/have> masalah hardware.
  • inSoftwareUpdate : <device(s)> <is/are> saat ini sedang mengupdate software.
  • isignoreed : <device(s)> <is/are> saat ini diabaikan.
  • lowBattery : <device(s)> <has/have> baterai lemah.
  • motionDetected : gerakan <device(s)> <detect(s)>.
  • needPads : <device(s)> <need(s)> pad baru.
  • 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.
  • kamarDiLantai yang berbeda : <device(s)> tidak dapat menjangkau ruangan tersebut karena berada di lantai yang berbeda.
  • runCycleFinished : <device(s)> <has/have> selesai berlari.
  • securityRestriction : <device(s)> <has/have> pembatasan keamanan.
  • asapDetected : Asap telah terdeteksi di <nama rumah>.
  • tankEmpty : <device(s)> <has/have> <an empty tank/empty Tans>. Isi <it/them> dan coba lagi.
  • usingCellularBackup : <device(s)> <is/are> menggunakan pencadangan seluler.
  • waterLeakDetected : <device(s)> <detect(s)> kebocoran air.