이 문서에서는 스마트 홈 기기의 공식 지원 오류 및 예외를 나열합니다. 이러한 오류와 예외 코드를 인텐트 응답이나 알림에서 구현한 경우 Google 어시스턴트는 이를 사용하여 최종 사용자에게 지정된 명령어나 기기 상태와 관련된 문제를 알립니다. 응답에 잘못된 형식 또는 errorCode
가 포함되어 있으면 Google 어시스턴트가 사용자에게 일반 오류 메시지(예: '죄송합니다. 현재 기기를 사용할 수 없습니다')와 같은 메시지를 표시합니다.
오류
문제로 인해 실행 또는 쿼리 요청이 실패하면 오류 코드를 반환해야 합니다. 예를 들어 문 잠금이 걸려 있어 잠그거나 잠금 해제할 수 없는 경우 이 상태에 관한 오류가 사용자에게 반환되어야 합니다.
오류 코드는 기기 수준 또는 전역 수준에서 연결할 수 있습니다. 예를 들어 한 제공업체의 조명이 많으며 허브에 의해 제어되는 경우 사용자가 조명을 모두 끄려고 할 때 제공업체는 기기 수준의 오류를 반환할 수 있습니다. 단일 조명이 오프라인이면 전체 수준의 오류를 반환하고 전체 허브가 오프라인 상태이고 조명을 제어할 수 없으면 전체 수준의 오류를 반환할 수 있습니다. 모든 기기가 오프라인 상태이더라도 전역 수준 오류와 기기 수준 오류에는 차이가 없습니다. 기기가 오프라인 상태이면 deviceOffline
오류 코드를 반환하더라도 reportState에서 {"online": false}
상태를 보고해야 합니다.
학습 내용을 요약하면 다음과 같습니다.
- 전역 수준 오류: 응답에 포함된 모든 기기에 동일한 오류가 있음
- 로컬 수준 오류: 응답 및 오류와 성공 사례의 혼합
전역 수준 오류
다음 JSON 스니펫은 QUERY 또는 EXECUTE 응답에서 전역 수준 오류를 반환하는 방법을 보여줍니다.
허브로 인한 전역 수준 오류 deviceOffline
의 예시는 다음과 같습니다.
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "errorCode": "deviceOffline", "status" : "ERROR" } }
허브로 인한 전역 수준 오류 inSoftwareUpdate
의 예는 다음과 같습니다.
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "errorCode": "inSoftwareUpdate", "status" : "ERROR" } }
기기 수준 오류
QUERY 응답
다음 JSON 스니펫은 쿼리 응답에서 기기 수준 오류를 반환하는 방법을 보여줍니다.
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "devices": { "device-id-1": { "errorCode": "deviceOffline", "status" : "ERROR" }, "device-id-2": { "errorCode": "deviceOffline", "status" : "ERROR" } } } }
EXECUTE 응답
다음 JSON 스니펫은 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 } } ] } }
오류가 있는 알림
사전 알림
다음 JSON 스니펫은 사전 알림에서 기기 수준의 오류를 보고하는 방법을 보여줍니다.
{ "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" } } } } } }
후속 응답
다음 JSON 스니펫은 후속 응답에서 기기 수준 오류를 보고하는 방법을 보여줍니다.
{ "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" } } } } } } }
오류 목록
다음 오류는 기기에 연결된 TTS를 생성합니다.
- aboveMaxLightEffectsDuration : 최대 길이인 1시간을 초과합니다. 다시 시도해 주세요.
- 연결되어 있는지의 최대 타이머 시간 : <기기(>)는 최대 <기간>까지만 설정할 수 있습니다.
- actionNotAvailable : 죄송하지만 지금은 그렇게 할 수 없습니다.
- actionUnavailableWithrunning : <device(s)> <is/re> 현재 실행 중이므로 변경할 수 없습니다.
- 이미 ARMed : <기기(>)> <is/are>가 이미 설정되어 있습니다.
- atAtMax : <기기(>)가 이미 최대 온도로 설정되어 있습니다.
- 이미 AtMin : <device(s)> <is/are>가 이미 최저 온도로 설정되어 있습니다.
- 이미 닫힘 : <기기> <is/are> 이미 닫혀 있어.
- 이미 갖추고 있음 : <기기(>)> <is/are>가 이미 해제되어 있습니다.
- 이미 도킹됨 : <기기(>) <is/are>가 이미 도킹되었습니다.
- 이미 InState : <기기(s)>가 이미 해당 상태입니다.
- 이미 잠김 : <기기>> <is/are> 이미 잠겨 있어.
- 이미 꺼짐 : <기기>> <is/are>가 이미 꺼져 있습니다.
- 이미 사용 설정 : <기기(>)가 이미 사용 설정되어 있습니다.
- openOpen : <device(s)> <is/are>가 이미 열려 있습니다.
- 이미 일시중지됨 : <device(s)>는 이미 <is/are>입니다.
- 이미 시작됨 : <기기(>)가 <is/are> 이미 시작되었습니다.
- 이미 중지됨 : <기기(>) <is/are>가 이미 중지되었습니다.
- 이미 잠금 해제 : <기기(>)가 이미 잠금 해제되었습니다.
- ambiguousZoneName : 죄송합니다. <device(s)>에서는 사용자가 의도한 영역을 식별할 수 없습니다. 영역에 고유한 이름이 있는지 확인하고 다시 시도해 주세요.
- amountAboveLimit : <device(s)>에서 지원하는 수준보다 많습니다.
- appLaunchFailed : 죄송합니다. <기기>에서 <앱 이름>을(를) 실행하지 못했습니다.
- armFailure : <기기(s)>를 설정할 수 없습니다.
- armLevelNeeded : 어떤 수준으로 <기기(s)>를 설정해야 할지 잘 모르겠습니다. "<기기(>)> 보안 수준이 낮음>으로 설정해 줘" 또는 "<기기(>)> 보안을 높음으로 설정"이라고 말씀해 보세요.
- FailureFailure : <device(s)>에 연결할 수 없는 것 같습니다. 앱에서 <device/devices> 설정이 <is/are>되어 있는지 확인해 보세요.
- PoolFull
- MinimumMinimumEffectsDuration : 최소 길이인 5분보다 짧습니다. 다시 시도해 주세요.
- MinimumMinimumDurationDuration : 이렇게 짧은 시간 동안 <device(s)>을(를) 설정할 수 없습니다. 다시 시도해 주세요.
- binFull : <기기>> <전체 빈/전체 빈>이 <있다>합니다.
- cancelArmingRestricted : 죄송합니다. <device(s)> 알람을 설정할 수 없습니다.
- cancelTooLate : 죄송합니다. 지금은 취소할 수 없습니다. 대신 <device(s)> 또는 앱을 사용하세요.
- channelSwitchFailed : 죄송합니다. <channel name> 채널로 전환하지 못했습니다. 나중에 다시 시도해 주세요.
- 충전기 문제 : 죄송합니다. <기기>의 <충전기 문제/충전기 문제>가 <해지고 있습니다>.
- CommandInsertFailed : <device(s)>의 명령어를 처리할 수 없습니다.
- adBattery : <기기(들)>은 <배터리가 없거나 배터리가 방전>되었습니다.
- 각도 제외 : 요청된 각도가 <device(s)>의 범위를 벗어났습니다.
- deviceAlertNeedsAssistance : <기기(들)>에 활성 알림이 <있거나> 있고 지원이 <니즈가 있습니다>.
- deviceAtExtremeTemperature : <기기가> <극한의 온도/극한 온도>에서 <is/are>입니다.
- deviceBusy : 죄송합니다. <device(s)>에서 이미 작업을 수행하고 있는 것 같습니다.
- deviceCharging : 죄송합니다. (ha_shared.ItsThatre size=$item.devices.total_device_count)개의 충전 중이기 때문에 <device (s)>에서 충전이 되지 않습니다.
- deviceClogged : 죄송합니다. <device(s)>이(가) 막힌 것 같습니다.
- deviceCurrentlyDispensing : <device(s)>에서 이미 배식 중입니다.
- deviceDoorOpen : <device(s)>에서 문이 열려 있습니다. 문을 닫고 다시 시도해 주세요.
- deviceHandleClosed : <device(s)>의 핸들이 닫혀 있습니다. 핸들을 열고 다시 시도해 주세요.
- deviceJammingDetected : <기기(>) <is/are>가 걸렸습니다.
- deviceLidOpen : <device(s)>에서 덮개가 열려 있습니다. 닫은 후 다시 시도해 보세요.
- deviceNeedsRepair : <device(s)> <need(s)> to beRepaired. 지역 서비스 대리점에 문의하세요.
- deviceNotDocped : 죄송합니다. <device(s)> 도킹되지 <isn't/aren't>입니다. <it/them>을(를) 도킹한 후 다시 시도해 주세요.
- DeviceNotFound : <device(s)> <is/are>를 사용할 수 없습니다. <it/them>을 다시 설정해 보세요.
- deviceNotMounted : 죄송합니다. <it/them>이(가) 마운트되어 있지 않기 때문에 <device(s)>에서 실행할 수 없는 것 같습니다.
- deviceNotReady : <device(s)> <is/res>준비되지 않음.
- deviceStuck : <device(s)> 문제가 <is/are>있으며 도움이 필요합니다.
- deviceTampered : <device>이(가) 조작되었습니다.
- deviceThermalShutdown : 극한의 온도로 인해 <device(s)>의 전원이 종료된 것 같습니다.
- directResponseOnlyUnreachable : <device(s)>는 리모컨을 지원하지 <않습니다/지원하지 않습니다>
- disarmFailure : <기기(>)>의 경보 시스템을 해제할 수 없습니다.
- discreteOnlyOpenClose : <device(s)>은(는) 완전히 열거나 닫는 것만 가능합니다.
- dispenseAmountAboveLimit : <device(s)>는 이렇게 많은 양을 배출할 수 없습니다.
- dispenseAmountunderLimit : <device(s)>에서는 이렇게 적은 양을 배출할 수 없습니다.
- dispenseAmountRemainingExceeded : <device(s)>에 <dispence item>이(가) 충분하지 않습니다.
- dispenseFractionalAmountNotSupported : <device(s)>는 <dispense item>의 비율을 제공할 수 없습니다.
- dispenseFractionalUnitNotSupported : <device(s)>는 <dispense item>에 대해 이 단위의 일부를 지원하지 않습니다.
- dispenseUnitNotSupported : <device(s)>에서 <dispense item>을(를) 지원하지 않습니다.
- doorClosedTooLong : <기기(>)>의 문을 연 지 오래되었습니다. 문을 열어 안에 아무것도 없는지 확인한 후 다시 시도해 주세요.
- EmergencyHeatOn : <기기(들)>가 응급 난방 모드에 있으므로<it/> 기기를 직접 조정해야 합니다.
- 결함 배터리 : <기기(들)>에 <결함이 있는 배터리/배터리 결함>이 있습니다.
- floorUnreachable : <device(s)>에서 말씀하신 방에 연결할 수 없습니다. <it/them>을 층으로 옮긴 후 다시 시도해 주세요.
- functionNotSupported : 실제로 <device(s)>는 이 기능을 지원하지 <않습니다/지원하지 않습니다>.
- GeneralDispenseNotSupported : 배분하시려는 항목을 알고 싶습니다. 상품 이름으로 다시 시도해 주세요.
- 하드 오류 : 죄송합니다. 문제가 발생하여 홈 기기를 제어할 수 없습니다.
- 하드 오류 : 죄송합니다. 문제가 발생하여 홈 기기를 제어할 수 없습니다.
- inAutoMode : <기기(>)가 현재 자동 모드로 설정되어 있습니다. 온도를 변경하려면 <it/them>을 다른 모드로 전환하셔야 합니다.
- inAwayMode : <기기(들)>이(가) 현재 외출 모드로 설정되어 있습니다. 온도 조절기를 제어하려면 스마트폰, 태블릿 또는 컴퓨터에서 Nest 앱을 사용하여 온도 조절기를 재택 모드로 직접 전환해야 합니다.
- inDryMode : <기기>>가 현재 건조 모드로 설정되어 있습니다. 온도를 변경하려면 <it/them>을 다른 모드로 전환하셔야 합니다.
- inEcoMode : <기기>>가 현재 절전 모드로 설정되어 있습니다. 온도를 변경하려면 <it/them>을 다른 모드로 전환하셔야 합니다.
- inFanOnlyMode : <기기>>가 현재 팬 전용 모드로 설정되어 있습니다. 온도를 변경하려면 <it/them>을 다른 모드로 전환하셔야 합니다.
- inHeatOrCool : <device(s)>이 난방/냉방 모드로 설정되어 있지 않습니다.
- inHumidifierMode : <기기>>가 가습기 모드로 현재 설정되어 있습니다. 온도를 변경하려면 <it/them>을 다른 모드로 전환하셔야 합니다.
- inOffMode : <기기(들)>이 현재 <is/are>입니다. 온도를 변경하려면 <it/them>을(를) 다른 모드로 전환해야 합니다.
- inPurifierMode : <기기(>)가 현재 공기 청정기 모드로 설정되어 있습니다. 온도를 변경하려면 <it/them>을 다른 모드로 전환하셔야 합니다.
- inSleepMode : 절전 모드<기기입니다>. 나중에 다시 시도해 주세요.
- inSoftwareUpdate : <device(s)> <is/are>가 현재 소프트웨어 업데이트를 진행 중입니다.
- lockFailure : <기기(>)>를 잠글 수 없습니다.
- lockState : <기기(>) <is/are>가 현재 잠겨 있습니다.
- lockToRange : 말씀하신 온도가 <device(s)>의 잠긴 범위를 벗어났습니다.
- LowBattery : <device(s)> 배터리가 부족합니다.
- maxSettingReached : <device(s)> <is/are>가 이미 가장 높은 설정으로 설정되어 있습니다.
- maxSpeedReached : <기기(>)가 이미 최대 속도로 설정되어 있습니다.
- minSettingReached : <기기(>)가 가장 낮은 설정으로 이미 설정되어 있습니다.
- minSpeedReached : <기기(>)가 이미 최저 속도로 설정되어 있습니다.
- MonitoringServiceConnectionLost : <device(s)> 모니터링 서비스에 대한 <its/your> 연결이 끊어졌습니다.
- needAttachment : 죄송합니다. <device(s)> <is/are>에서 필수 첨부파일이 누락된 것 같습니다. 부착 후 다시 시도해 주세요.
- NeedBin : 죄송합니다. <device(s)> 휴지통이 <is/are> 없는 것 같습니다. 부착 후 다시 시도해 주세요.
- NeedPads : <device(s)> <need(s)> new pads.
- NeedSoftwareUpdate : 소프트웨어 업데이트 <기기(>) <need(s)>.
- needWater : <device(s)> <need(s)> water.
- networkProfileNotRecognized : 죄송합니다. <기기(>)에서 '<네트워크 프로필>'을 인식할 수 없습니다.
- networkSpeedTestInProgress : 이미 <network> <speed/speeds>>를 테스트하고 있습니다.
- noAvailableApp : <앱 이름>을(를) 사용할 수 없는 것 같습니다.
- noAvailableChannel : <채널 이름> 채널을 사용할 수 없는 것 같습니다.
- noChannelSubscription : 현재 <channel name> 채널을 구독하지 않으셨습니다.
- noCalculatorExists : 죄송합니다. <device(s)>에 설정된 타이머가 없는 것 같습니다.
- 지원되지 않음 : <device(s)>에서 해당 모드를 사용할 수 없습니다.
- obstructionDetected : <device(s)>에서 장애물을 감지했습니다.
- 오프라인 , deviceOffline : 죄송합니다. 현재 <기기>를 구매할 수 <is/are>없습니다.
- onRequiresMode : 어떤 모드를 켜고 싶으신지 알려 주세요.
- 암호 오류 : PIN이 잘못된 것 같습니다.
- percentageOutOfRange : 죄송합니다. <device(s)>를 <percent>로 설정할 수 없습니다.
- pinInvalid : (passphraseInvalid)
- rainDetected : 비가 감지되어 <device(s)>을(를) 열지 않았습니다.
- rangeTooClose : <device(s)>의 난방-냉방 범위로 너무 가깝습니다. 더 멀리 있는 온도를 선택하세요.
- relinkRequired : 계정에 문제가 발생한 것 같습니다. Google Home 또는 어시스턴트 앱을 사용하여 <기기>를 다시 연결해 주세요.
-
remoteSetDisabled
:
- 선택적 매개변수
errorCodeReason
currentlyArmed
- 죄송합니다. 보안이 이미 설정되어 있으므로 변경하려면 <device(s)> 또는 앱을 사용해야 합니다.remoteUnlockNotAllowed
- 죄송합니다. <device(s)>을(를) 원격으로 잠금 해제할 수 없습니다.remoteControlOff
- 이 작업은 현재 사용 중지되어 있습니다. <device(s)>에서 리모컨을 사용 설정하고 다시 시도해 주세요.childSafetyModeActive
- 이 작업은 아동 안전 모드가 활성화되어 있는 동안 <device(s)>에서 사용 중지됩니다.
- 선택적 매개변수
- roomsOnDifferentFloors : <기기(>)>가 다른 층에 있으므로 말씀하신 방에 연결할 수 없습니다.
- safetyShutOff : <device(s)> <is/are>가 안전 종료 모드로 설정되어 있어 <it/them>이(가) 직접 조정해야 합니다.
- sceneCannotApply : <device(s)>을(를) 적용할 수 없습니다.
- SecurityRestriction : <기기(>)에 보안 제한이 <has/have> 있습니다.
- SoftwareUpdateNotAvailable : <device(s)>에 소프트웨어 업데이트가 없습니다.
- startRequiresTime : 그러려면 <device(s)>의 실행 기간을 알려 주셔야 합니다.
- 스틸 쿨링 : <기기> <is/are>가 여전히 식고 있습니다.
- 스틸 WarmingUp : <기기(>) 준비 중<is/are>.
- streamUnavailable : 죄송합니다. 현재 <device(s)>에서 스트림을 사용할 수 없습니다.
- streamUnplayable : 죄송합니다. 지금은 <device>에서 스트림을 재생할 수 없습니다.
- tankEmpty : <기기(들)>에 <빈 탱크/빈 탱크가 > 있습니다>. <it/them>을 채우고 다시 시도해 주세요.
- targetAlreadyReached : 죄송합니다. 이미 현재 온도인 것 같습니다.
- 타이머ValueOutOfRange : <기기(s)>는 말씀하신 시간 동안 설정할 수 없습니다.
- ManyManyFailedFaileds : 실패한 시도 횟수가 너무 많습니다. 기기의 앱으로 이동하여 작업을 완료하세요.
- transientError : 죄송합니다. <device(s)> 제어에 문제가 발생했습니다. 다시 시도해 주세요.
- TurnOff , deviceTurnedOff : <기기(s)> 현재 <is/are> 꺼짐.
- UnableToLocateDevice : <device(s)>를 찾지 못했습니다.
- unknownFoodPreset : <device(s)>에서 해당 음식 사전 설정을 지원하지 않습니다.
- lockFailure : <device(s)>을(를) 잠금 해제할 수 없습니다.
- unpausableState : <기기(>)>는 현재 일시중지할 수 없습니다.
- userCanceled : 확인
- valueOutOfRange : <device(s)>를 말씀하신 온도로 설정할 수 없습니다.
예외
명령어와 관련된 문제 또는 알림이 있으면 예외를 반환해야 합니다. 명령어가 성공하거나 실패할 수 있습니다.
명령어가 성공하면 (상태 = 'SUCCESS') StatusReport
속성을 사용하거나 (대상 외 기기의 경우) 적절한 exceptionCode
(대상 기기의 경우)를 반환하여 예외를 보고합니다.
예를 들어 건조기 린트 화면이 가득 찬 경우에도 사용자가 건조기를 시작할 수 있지만 이 상태에 관해 경고해야 할 수도 있습니다. 마찬가지로 기기의 배터리 잔량이 비어 있지 않아도 계속 명령어를 실행할 수 있지만 기기 배터리 잔량이 부족하다고 알려야 합니다.
예외로 인해 명령어가 실패하면 상태는 'EXCEPTIONS'여야 하며 예외는 StatusReport
특성을 사용하여 보고해야 합니다.
대상 기기에 관한 비차단 예외 (SUCCESS)
다음은 문을 잠그는 예입니다.
현관 잠금장치의 배터리가 부족합니다. 현관문을 잠급니다.
{ "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" } }] } }
StatusReport를 사용하는 다른 기기에 관한 비차단 예외 (SUCCESS)
이 예시는 보안 시스템을 설정합니다. 알겠습니다. 전면 창이 열려 있습니다.
{ "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" }] } }] } }
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" } ] } } } }
예외 목록
다음 예외는 기기에서 연결된 TTS를 생성합니다.
- PoolFull
- binFull : <기기>> <전체 빈/전체 빈>이 <있다>합니다.
- 탄소산화물 감지 : <하우스 이름>에서 일산화탄소가 감지되었습니다.
- deviceAtExtremeTemperature : <기기가> <극한의 온도/극한 온도>에서 <is/are>입니다.
- deviceJammingDetected : <기기(>) <is/are>가 걸렸습니다.
- 기기 이동됨 : <기기(>)가 <이전 입니다.
- deviceOpen : <device(s)> <is/are>가 열려 있습니다.
- deviceTampered : <device>이(가) 조작되었습니다.
- DeviceUnplugged : <device(s)> <is/are>가 연결되어 있지 않습니다.
- floorUnreachable : <device(s)>에서 말씀하신 방에 연결할 수 없습니다. <it/them>을 층으로 옮긴 후 다시 시도해 주세요.
- HardwareFailure : <device(s)> 하드웨어 문제가 <has/have> 있습니다.
- inSoftwareUpdate : <device(s)> <is/are>가 현재 소프트웨어 업데이트를 진행 중입니다.
- isBypassed : <device(s)> <is/are>가 현재 우회되고 있습니다.
- LowBattery : <device(s)> 배터리가 부족합니다.
- 모션 감지 : <기기 > 감지 <detect(s)>
- NeedPads : <device(s)> <need(s)> new pads.
- NeedSoftwareUpdate : 소프트웨어 업데이트 <기기(>) <need(s)>.
- needWater : <device(s)> <need(s)> water.
- networkJammingDetected : <device(s)>에 대한 홈 네트워크 연결이 불안정합니다.
- noIssuesReported : <device(s)>에서 문제를 신고하지 않았습니다.
- roomsOnDifferentFloors : <기기(>)>가 다른 층에 있으므로 말씀하신 방에 연결할 수 없습니다.
- runCycleFinished : <기기>> 실행이 <완료되어 있음>
- SecurityRestriction : <기기(>)에 보안 제한이 <has/have> 있습니다.
- smokeDetected : <house name>에서 연기가 감지되었습니다.
- tankEmpty : <기기(들)>에 <빈 탱크/빈 탱크가 > 있습니다>. <it/them>을 채우고 다시 시도해 주세요.
- CellularCellularBackup : 모바일 데이터 서비스를 사용 중인 <device(s)> <is/are>입니다.
- WaterLeakDetected : 누수 <device(s)> <detect(s)>.