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 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 harus menampilkan kode error saat masalah menyebabkan permintaan eksekusi atau kueri gagal. Misalnya, jika kunci pintu macet dan tidak dapat dikunci atau dibuka, error tentang status ini harus ditampilkan kepada pengguna.
Kode error dapat dilampirkan di tingkat perangkat atau tingkat global. Misalnya, jika pengguna memiliki banyak lampu dari satu penyedia dan lampu tersebut dikontrol oleh hub, saat pengguna meminta untuk mematikan semua lampunya, 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 offline, tidak ada perbedaan antara penggunaan error tingkat global atau tingkat perangkat.
Rangkuman:
- Error tingkat global: semua perangkat dalam respons memiliki error yang sama
- Error tingkat lokal: respons campuran dengan kasus error dan keberhasilan
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" } } } }
Respons EXECUTE
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 lanjutan
Cuplikan JSON berikut menunjukkan cara melaporkan error tingkat perangkat dalam respons lanjutan.
{ "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 tersebut lebih dari durasi maksimum 1 jam. Coba lagi.
- aboveMaximumTimerDuration : Saya hanya dapat menyetel <device(s)> hingga <time period>
- actionNotAvailable : Maaf, sepertinya saat ini saya tidak bisa melakukan itu. Tips: Verifikasi sifat perangkat dan logika status saat ini dalam pemenuhan Anda.
- actionUnavailableWhileRunning : <device(s)> <is/are> currently running, so I can't make any changes.
- 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> already closed.
- alreadyDisarmed : <device(s)> <is/are> already disarmed.
- alreadyDocked : <device(s)> <is/are> sudah terhubung ke dok.
- alreadyInState : <device(s)> <is/are> already in that state.
- alreadyLocked : <device(s)> <is/are> sudah terkunci.
- alreadyOff : <device(s)> <is/are> already off.
- alreadyOn : <device(s)> <is/are> already on.
- alreadyOpen : <device(s)> <is/are> sudah terbuka.
- alreadyPaused : <device(s)> <is/are> already paused.
- alreadyStarted : <device(s)> <is/are> sudah dimulai.
- alreadyStopped : <device(s)> <is/are> already stopped.
- alreadyUnlocked : <device(s)> <is/are> sudah dibuka kuncinya.
- ambiguousZoneName : Maaf, <device(s)> tidak dapat mengidentifikasi zona yang Anda maksud. Pastikan zona Anda memiliki nama yang unik, lalu coba lagi.
- amountAboveLimit : Jumlah tersebut melebihi yang dapat didukung oleh <device(s)>.
- appLaunchFailed : Maaf, gagal meluncurkan <nama aplikasi> di <perangkat>. Tips: Verifikasi appId dan pastikan aplikasi didukung di hardware target.
- armFailure : <device(s)> tidak dapat diaktifkan.
- armLevelNeeded : Saya tidak yakin mau menyetel <device(s)> ke level mana. 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> sudah disiapkan sepenuhnya.
- bagFull : <device(s)> <has/have> <a full bag/full bags>. Please empty <it/them> and try again.
- belowMinimumLightEffectsDuration : Durasi ini kurang dari durasi minimum 5 menit. Coba lagi.
- belowMinimumTimerDuration : Saya tidak dapat menyetel <device(s)> untuk waktu yang sesingkat itu. 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 membatalkan. Sebagai gantinya, gunakan <device(s)> atau aplikasi.
- channelSwitchFailed : Maaf, gagal beralih ke channel <channel name>.Harap coba lagi nanti. Tips: Verifikasi nama/nomor saluran dan status langganan pengguna.
- chargerIssue : Maaf, sepertinya <device(s)> <has/have> <a charger issue/charger issues>. Tips: Partner harus menyelidiki telemetri tingkat hardware dan kesehatan baterai.
- commandInsertFailed : Tidak dapat memproses perintah untuk <device(s)>. Tips: Selidiki performa penulisan database atau logika antrean perintah internal.
- deadBattery : <device(s)> <has/have> <a dead battery/dead batteries>.
- degreesOutOfRange : Derajat yang diminta berada di luar rentang untuk <device(s)>.
- deviceAlertNeedsAssistance : <device(s)> <has/have> an active alert and <need(s)> your assistance.
- deviceAtExtremeTemperature : <device(s)> <is/are> at <an extreme temperature/extreme temperatures>.
- deviceBusy : Maaf, sepertinya <device(s)> sedang melakukan sesuatu saat ini.
- deviceCharging : Maaf, sepertinya <device(s)> tidak dapat melakukan tindakan tersebut karena (ha_shared.ItsTheyre size=$item.devices.total_device_count) mengisi daya.
- deviceClogged : Maaf, sepertinya <device(s)> sedang tersumbat.
- deviceCurrentlyDispensing : <device(s)> sedang mengeluarkan sesuatu saat ini.
- deviceDoorOpen : Pintu terbuka di <device(s)>. Harap tutup dan coba lagi.
- deviceHandleClosed : Penutup perangkat <device(s)> tertutup. Buka penutupnya, lalu coba lagi.
- deviceJammingDetected : <device(s)> <is/are> jammed.
- deviceLidOpen : Penutup <perangkat> terbuka. Tutup penutupnya, lalu coba lagi.
- deviceNeedsRepair : <device(s)> <need(s)> to be repaired. Hubungi dealer reparasi lokal Anda.
- deviceNotDocked : Maaf, sepertinya <device(s)> <isn't/aren't> dipasang ke dok. Pasangkan <it/them> ke dok, lalu coba lagi.
-
deviceNotFound
:
<device(s)> <is/are>n't available. Sebaiknya coba siapkan <it/them> lagi. Tips: Pastikan backend Anda selalu menyinkronkan Home Graph. Panggil
requestSyncsetiap kali perangkat ditambahkan atau dihapus. - deviceNotMounted : Maaf, sepertinya <device(s)> tidak dapat melakukan tindakan tersebut karena <it/they> <is/are>n't dipasang.
- deviceNotReady : <device(s)> <is/are>n't ready.
- deviceStuck : <device(s)> <is/are> macet dan memerlukan bantuan Anda.
- deviceTampered : <device(s)> <has/have> been tampered with.
- deviceThermalShutdown : Maaf, sepertinya <device(s)> mati karena suhu ekstrem.
- directResponseOnlyUnreachable : <device(s)> <doesn't/don't> support 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 sebanyak itu.
- dispenseAmountBelowLimit : <device(s)> tidak dapat mengeluarkan dalam jumlah sesedikit itu.
- dispenseAmountRemainingExceeded : <device(s)> tidak memiliki <dispense item> yang cukup untuk melakukannya.
- dispenseFractionalAmountNotSupported : <device(s)> tidak dapat mengeluarkan <dispense item> dalam jumlah pecahan.
- dispenseFractionalUnitNotSupported : <device(s)> tidak mendukung unit pecahan untuk <item yang dikeluarkan>.
- dispenseUnitNotSupported : <device(s)> tidak mendukung unit tersebut untuk <dispense item>.
- doorClosedTooLong : Pintu di <device(s)> sudah lama tidak dibuka. Silakan buka pintunya, pastikan ada sesuatu di dalamnya, lalu coba lagi.
- emergencyHeatOn : <device(s)> <is/are> dalam Mode Sistem Pemanas Darurat, jadi <it/they> harus disesuaikan secara manual.
- faultyBattery : <device(s)> <has/have> <a faulty battery/faulty batteries>.
- floorUnreachable : <device(s)> tidak dapat menjangkau ruangan tersebut. Pindahkan <it/them> ke lantai yang benar, lalu coba lagi.
- functionNotSupported : Sebenarnya, <device(s)> <doesn't/don't> mendukung fungsi tersebut. Tips: Pastikan respons SYNC Anda secara akurat mencerminkan kemampuan perangkat.
- genericDispenseNotSupported : Saya perlu tahu apa yang ingin Anda keluarkan. Coba lagi dengan nama item.
- hardError : Maaf, terjadi error dan saya tidak bisa mengontrol perangkat smart home Anda.
- hardError : Maaf, terjadi error 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 mengganti <it/them> ke mode lain.
- inAwayMode : <device(s)> <is/are> currently set to away mode. Untuk mengontrol termostat, Anda perlu mengalihkannya ke mode rumah secara manual dengan aplikasi Nest di ponsel, tablet, atau komputer.
- inDryMode : <device(s)> <is/are> currently set to dry mode. Untuk mengubah suhu, Anda harus mengganti <it/them> ke mode lain.
- inEcoMode : <device(s)> <is/are> currently set to eco mode. Untuk mengubah suhu, Anda harus mengganti <it/them> ke mode lain.
- inFanOnlyMode : <device(s)> <is/are> saat ini disetel ke mode khusus kipas. Untuk mengubah suhu, Anda harus mengganti <it/them> ke mode lain.
- inHeatOrCool : <device(s)> <is/are>n't in heat/cool mode.
- inHumidifierMode : <device(s)> <is/are> saat ini disetel ke mode pelembap udara. Untuk mengubah suhu, Anda harus mengganti <it/them> ke mode lain.
- inOffMode : <device(s)> <is/are> currently off. To change the temperature, you'll need to switch <it/them> to a different mode.
- inPurifierMode : <device(s)> <is/are> currently set to purifier mode. Untuk mengubah suhu, Anda harus mengganti <it/them> ke mode lain.
- inSleepMode : <device(s)> <is/are> dalam mode tidur. Coba lagi nanti.
- inSoftwareUpdate : <device(s)> <is/are> currently in a software update.
- lockFailure : <device(s)> tidak dapat dikunci. Tips: Selidiki gangguan fisik, daya rendah, atau kegagalan motor pada hardware smart lock.
- lockedState : <device(s)> <is/are> currently locked.
- lockedToRange : Suhu tersebut berada di luar rentang yang dikunci di <device(s)>.
- lowBattery : <device(s)> <has/have> low battery.
- 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> already set to the lowest setting.
- minSpeedReached : <device(s)> <is/are> already set to the minimum speed.
- monitoringServiceConnectionLost : <device(s)> <has/have> lost <its/their> connection to the monitoring service.
- needsAttachment : Maaf, sepertinya <device(s)> <is/are> tidak memiliki perlengkapan yang diperlukan. Silakan ganti lalu coba lagi.
- needsBin : Maaf, sepertinya <device(s)> <is/are> tidak memiliki wadah. Silakan ganti lalu coba lagi.
- needsPads : <device(s)> <need(s)> bantalan baru.
- needsSoftwareUpdate : <device(s)> <need(s)> update software.
- needsWater : <device(s)> <need(s)> air.
- networkProfileNotRecognized : Maaf, saya tidak mengenali "<network profile>" di <device(s)>. Tips: Verifikasi bahwa string nama profil cocok dengan profil yang didukung dalam respons SYNC.
- 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 belum berlangganan ke channel <nama channel>.
- noTimerExists : Maaf, sepertinya tidak ada timer yang disetel di <device(s)>.
- notSupported : Maaf, mode tersebut tidak tersedia untuk <device(s)>.
- obstructionDetected : <device(s)> mendeteksi adanya penghalang.
- offline , deviceOffline : Maaf, sepertinya <device(s)> <is/are>n't available right now.
- onRequiresMode : Tentukan mode yang ingin Anda aktifkan.
- passphraseIncorrect : Maaf, sepertinya PIN yang dimasukkan salah.
- percentOutOfRange : Maaf, saya tidak dapat menyetel <perangkat> ke <persen>.
- pinIncorrect : (passphraseIncorrect)
- rainDetected : Saya tidak membuka <perangkat> karena terdeteksi hujan.
- rangeTooClose : Rentang suhu Hangat-Sejuk untuk <device(s)> terlalu dekat. Pilih suhu yang rentangnya lebih jauh.
- relinkRequired : Maaf, sepertinya ada masalah dengan akun Anda. Silakan gunakan Aplikasi Google Home atau Asisten untuk menautkan kembali <device(s)>. Tips: Pastikan server Anda menampilkan kode ini saat token refresh tidak valid secara permanen.
-
remoteSetDisabled
:
- Parameter opsional
errorCodeReason currentlyArmed- Maaf, karena keamanan sudah diaktifkan, Anda harus menggunakan <device(s)> atau aplikasi untuk melakukan perubahan apa pun.remoteUnlockNotAllowed- Maaf, saya tidak dapat membuka kunci <perangkat> dari jarak jauh.remoteControlOff- Tindakan tersebut saat ini dinonaktifkan. Aktifkan remote control di <device(s)> lalu coba lagi.childSafetyModeActive- Tindakan itu dinonaktifkan untuk <device(s)> saat mode keselamatan anak sedang aktif.
- Parameter opsional
- roomsOnDifferentFloors : <device(s)> tidak dapat menjangkau ruangan tersebut karena berada di lantai yang berbeda.
- safetyShutOff : <device(s)> <is/are> dalam Mode Mati Aman, jadi <it/they> harus disesuaikan secara manual.
- sceneCannotBeApplied : Maaf, <device(s)> tidak dapat diterapkan. Tips: Periksa kondisi internal adegan pengguna di cloud partner.
- 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)>.
- stillCoolingDown : <device(s)> <is/are> masih mendingin.
- stillWarmingUp : <device(s)> <is/are> masih dalam proses inisialisasi.
- streamUnavailable : Maaf, sepertinya streaming dari <device(s)> tidak tersedia saat ini.
- streamUnplayable : Maaf, saya tidak dapat memutar streaming dari <device(s)> saat ini. Tips: Verifikasi sinyal WebRTC/HLS dan pastikan URL streaming valid.
- tankEmpty : <device(s)> <has/have> <an empty tank/empty tanks>. Please fill <it/them> and try again.
- targetAlreadyReached : Maaf, sepertinya suhu yang diminta sama dengan suhu saat ini.
- timerValueOutOfRange : <device(s)> tidak dapat disetel untuk durasi waktu tersebut.
- tooManyFailedAttempts : Maaf, terlalu banyak upaya yang gagal. Harap buka aplikasi perangkat Anda untuk menyelesaikan tindakan tersebut.
- transientError : Maaf, terjadi error saat mengontrol <device(s)>. Coba lagi. Tips: Biasanya, error ini muncul saat koneksi ke perangkat atau layanan terputus. Juga jika koneksi baru ke server tidak dapat dibuka.
- turnedOff , deviceTurnedOff : <device(s)> <is/are> off right now.
- unableToLocateDevice : Saya tidak dapat menemukan <device(s)>. Tips: Periksa konektivitas lokal perangkat (Wi-Fi/Bluetooth).
- unknownFoodPreset : <device(s)> tidak mendukung preset makanan tersebut.
- unlockFailure : <device(s)> tidak dapat dibuka kuncinya. Tips: Selidiki gangguan hardware, baterai lemah, atau entri PIN yang tidak valid.
- unpausableState : <device(s)> tidak dapat dijeda saat ini.
- userCancelled : ok
- valueOutOfRange : <device(s)> tidak dapat disetel ke suhu tersebut.
Pelaporan status online dan offline
Saat perangkat offline, Anda harus melaporkan <code{"online": code="" dir="ltr" false}<="" translate="no"> ke Report State dalam waktu lima menit setelah perilaku perangkat. Sebaliknya, saat perangkat kembali ke status online, Anda harus melaporkan <code{"online": code="" dir="ltr" translate="no" true}<=""> ke Report State dalam waktu lima menit setelah perilaku perangkat. Setiap kali perangkat kembali online, partner harus melaporkan semua status perangkat saat ini menggunakanreportStateAndNotification API.
Contoh ini menunjukkan bahwa jenis perangkat light sedang online, dan melaporkan
semua status perangkat saat ini.
"requestId": "test-request-id",
"agentUserId": "agent-user-1",
"payload":{
"devices": {
"states": {
"device-id-1": {
"brightness": 65,
"on": true,
"online": true
}
"notifications": {},
}
}
}Pengecualian
Anda harus menampilkan pengecualian jika ada masalah atau pemberitahuan yang terkait dengan perintah. Perintah dapat 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 serat pengering penuh, pengguna masih dapat memulai pengering, tetapi Anda mungkin ingin memperingatkan mereka tentang kondisi ini. Demikian pula, saat baterai perangkat hampir habis tetapi tidak kosong, Anda masih dapat menjalankan perintah, tetapi harus memberi tahu pengguna bahwa baterai perangkat hampir habis.
Jika perintah gagal karena pengecualian, statusnya harus "EXCEPTIONS",
dan pengecualian harus dilaporkan menggunakan trait StatusReport.
Pengecualian tidak memblokir (BERHASIL) tentang perangkat target
Contoh ini adalah untuk mengunci pintu:
Kunci pintu depan memiliki daya baterai rendah. 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 (BERHASIL) tentang perangkat lain yang menggunakan StatusReport
Contoh ini adalah 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" }] } }] } }
Pengecualian pemblokiran tentang perangkat lain yang 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 bags>. Please empty <it/them> and try again.
- binFull : <device(s)> <has/have> <a full bin/full bins>.
- carbonMonoxideDetected : Karbon monoksida telah terdeteksi di <nama rumah>.
- deviceAtExtremeTemperature : <device(s)> <is/are> at <an extreme temperature/extreme temperatures>.
- deviceJammingDetected : <device(s)> <is/are> jammed.
- deviceMoved : <device(s)> <was/were> moved.
- deviceOpen : <device(s)> <is/are> open.
- deviceTampered : <device(s)> <has/have> been tampered with.
- deviceUnplugged : <device(s)> <is/are> unplugged.
- 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> currently in a software update.
- isBypassed : <device(s)> <is/are> currently bypassed.
- lowBattery : <device(s)> <has/have> low battery.
- motionDetected : <device(s)> <detect(s)> motion.
- needsPads : <device(s)> <need(s)> bantalan baru.
- needsSoftwareUpdate : <device(s)> <need(s)> update software.
- needsWater : <device(s)> <need(s)> air.
- networkJammingDetected : koneksi jaringan rumah ke <device(s)> tidak berfungsi dengan benar.
- noIssuesReported : <device(s)> tidak melaporkan masalah.
- roomsOnDifferentFloors : <device(s)> tidak dapat menjangkau ruangan tersebut karena berada di lantai yang berbeda.
- runCycleFinished : <device(s)> <has/have> finished running.
- securityRestriction : <device(s)> <has/have> pembatasan keamanan.
- smokeDetected : Asap telah terdeteksi di <house name>.
- tankEmpty : <device(s)> <has/have> <an empty tank/empty tanks>. Please fill <it/them> and try again.
- usingCellularBackup : <device(s)> <is/are> menggunakan pencadangan seluler.
- waterLeakDetected : <device(s)> <detect(s)> kebocoran air.