Ошибки и исключения

В этом документе перечислены официально поддерживаемые ошибки и исключения для устройств умного дома. Пожалуйста, используйте указанные коды ошибок и исключений в ответе Intent или в уведомлениях , если вы их реализовали, чтобы Google Assistant оповещал конечных пользователей о проблемах, связанных с данной командой или состоянием устройства. Если ответ содержит некорректный формат или errorCode , Google Assistant выдаст пользователям общее сообщение об ошибке, например: «Извините, устройство сейчас недоступно».

Ошибки

В случае возникновения проблемы, приводящей к сбою выполнения запроса или запроса, следует возвращать код ошибки. Например, если дверной замок заклинило и его невозможно запереть или разблокировать, пользователю следует вернуть сообщение об ошибке, указывающее на это состояние.

Коды ошибок могут быть присвоены на уровне устройства или на глобальном уровне. Например, если у пользователя много светильников от одного поставщика, и они управляются через хаб, то при запросе на выключение всех светильников поставщик может вернуть ошибку на уровне устройства, если один светильник отключен, или ошибку на глобальном уровне, если весь хаб отключен и управлять светильниками невозможно. Если все устройства отключены, разницы между использованием ошибок глобального уровня и ошибок на уровне устройства нет.

В итоге:

  • Ошибка глобального уровня: все устройства в ответе имеют одинаковую ошибку.
  • Ошибка на локальном уровне: смешанный ответ с случаями ошибки и успеха.

Ошибки глобального уровня

Приведенный ниже фрагмент 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"
  }
}

Ошибки на уровне устройства

ответ на запрос

Следующий фрагмент JSON показывает, как возвращаются ошибки на уровне устройства в ответе на запрос.

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

ВЫПОЛНИТЬ ответ

Приведенный ниже фрагмент 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 на устройстве.

  • aboveMaximumLightEffectsDuration : Это превышает максимальную продолжительность в 1 час. Пожалуйста, попробуйте еще раз.
  • aboveMaximumTimerDuration : Я могу установить продолжительность работы <устройства(ов)> не более <периода времени>.
  • actionNotAvailable : Извините, сейчас я не могу этого сделать.
  • actionUnavailableWhileRunning : <устройство(а)> в данный момент запущено, поэтому я не могу внести никаких изменений.
  • alreadyArmed : <устройство(а)> уже(ы) вооружены(вооружены(ы)).
  • alreadyAtMax : <устройство(а)> уже установлено на максимальную температуру.
  • alreadyAtMin : <устройство(а)> уже установлено на минимальную температуру.
  • alreadyClosed : <устройство(а)> уже закрыто.
  • alreadyDisarmed : <устройство(а)> уже отключено/отключены.
  • alreadyDocked : <устройство(а)> уже подключено(ы).
  • alreadyInState : <устройство(а)> уже находится(ются) в этом состоянии.
  • alreadyLocked : <устройство(а)> уже заблокировано.
  • alreadyOff : <устройство(а)> уже выключено.
  • alreadyOn : <устройство(а)> уже включено.
  • alreadyOpen : <устройство(а)> уже открыто(ы).
  • alreadyPaused : <устройство(а)> уже приостановлено.
  • alreadyStarted : <устройство(а)> уже запущено.
  • alreadyStopped : <устройство(а)> уже остановлено.
  • alreadyUnlocked : <устройство(а)> уже разблокировано.
  • ambiguousZoneName : Извините, <устройство(а)> не может определить, о какой зоне вы говорите. Пожалуйста, убедитесь, что ваши зоны имеют уникальные имена, и попробуйте снова.
  • amountAboveLimit : Это больше, чем может поддерживать <устройство(а)>.
  • appLaunchFailed : Извините, не удалось запустить <название приложения> на <устройстве(ах)>.
  • armFailure : <устройство(а)> не удалось активировать.
  • armLevelNeeded : Я не уверен, какой уровень безопасности установить для <устройства(ов)>. Попробуйте сказать "Установить для <устройства(ов)> уровень безопасности <низкий>" или "Установить для <устройства(ов)> уровень безопасности <высокий>".
  • authFailure : Не удается связаться с <устройством(ами)>. Попробуйте проверить приложение, чтобы убедиться, что ваше <устройство/устройства> полностью настроены.
  • bagFull : <устройство(а)> <имеет/имеют> <полный пакет/пакеты>. Пожалуйста, очистите <их/их> и попробуйте снова.
  • belowMinimumLightEffectsDuration : Это меньше минимальной продолжительности в 5 минут. Пожалуйста, попробуйте еще раз.
  • belowMinimumTimerDuration : Я не могу установить <устройство(а)> на такое короткое время. Пожалуйста, попробуйте еще раз.
  • binFull : <устройство(а)> <имеет/имеет> <полный контейнер/контейнеры>.
  • cancelArmingRestricted : Извините, мне не удалось отменить постановку устройства(ов) на охрану.
  • cancelTooLate : Извините, отменить уже поздно. Воспользуйтесь <устройством(ами)> или приложением.
  • channelSwitchFailed : Извините, не удалось переключиться на канал <название канала>. Пожалуйста, попробуйте позже.
  • chargerIssue : Извините, похоже, что у <устройства(ов)> <есть/имеют> <проблема с зарядным устройством/проблемы с зарядным устройством>.
  • commandInsertFailed : Не удалось обработать команды для <устройства(ов)>.
  • deadBattery : <устройство(а)> <имеет/имеет> <разряженную батарею/разряженные батареи>.
  • degreesOutOfRange : Запрошенные градусы выходят за пределы допустимого диапазона для <устройства(ов)>.
  • deviceAlertNeedsAssistance : <устройство(а)> <имеет/имеют> активное оповещение и <нуждается(ются)> в вашей помощи.
  • deviceAtExtremeTemperature : <устройство(а)> находится/находятся> при <экстремальной температуре/температурах>.
  • deviceBusy : Извините, похоже, что <устройство(а)> уже что-то делает прямо сейчас.
  • deviceCharging : Извините, похоже, что <устройство(а)> не может этого сделать, потому что (ha_shared.ItsTheyre size=$item.devices.total_device_count) заряжается.
  • deviceClogged : Извините, похоже, что <устройство(а)> засорилось.
  • deviceCurrentlyDispensing : <устройство(а)> уже что-то выдает в данный момент.
  • deviceDoorOpen : Дверь открыта на <устройстве(ах)>. Пожалуйста, закройте её и попробуйте снова.
  • deviceHandleClosed : Дескриптор закрыт на <устройстве(ах)>. Пожалуйста, откройте его и попробуйте снова.
  • deviceJammingDetected : <устройство(а)> <заблокировано/блокированы>.
  • deviceLidOpen : Крышка открыта на <устройстве(ах)>. Пожалуйста, закройте её и попробуйте снова.
  • deviceNeedsRepair : <устройство(а)> <требуется(ются)> ремонт. Пожалуйста, обратитесь к местному сервисному центру.
  • deviceNotDocked : Извините, похоже, что <устройство(а)> <не подключено/не подключено>. Пожалуйста, подключите <их/их> и попробуйте снова.
  • deviceNotFound : <устройство(а)> недоступно. Возможно, вам стоит попробовать настроить его/их заново.
  • deviceNotMounted : Извините, похоже, что <устройство(а)> не может этого сделать, потому что <оно/они> не смонтировано.
  • deviceNotReady : <устройство(а)> не готово.
  • deviceStuck : <устройство(а)> зависло(ы) и нуждается(ют) в вашей помощи.
  • deviceTampered : <устройство(а)> было(и) подвергнуто(ы) вмешательству.
  • deviceThermalShutdown : Извините, похоже, что <устройство(а)> отключилось из-за экстремальных температур.
  • directResponseOnlyUnreachable : <устройство(а)> <не поддерживает/не поддерживает> удаленное управление.
  • disarmFailure : Не удалось снять с охраны <устройство(а)>.
  • discreteOnlyOpenClose : Извините, <устройство(а)> можно только полностью открыть или закрыть.
  • dispenseAmountAboveLimit : <устройство(а)> не может выдать такое большое количество.
  • dispenseAmountBelowLimit : <устройство(а)> не может выдать такое маленькое количество.
  • dispenseAmountRemainingExceeded : У <устройства(ов)> недостаточно <выдаваемого предмета> для выполнения этой операции.
  • dispenseFractionalAmountNotSupported : <устройство(а)> не может выдавать доли <выдаваемого товара>.
  • dispenseFractionalUnitNotSupported : <устройство(а)> не поддерживает дробные значения этой единицы для <выдаваемого товара>.
  • dispenseUnitNotSupported : <устройство(а)> не поддерживает данную единицу измерения для <выдаваемого товара>.
  • doorClosedTooLong : Дверь на <устройстве(ах)> не открывалась уже некоторое время. Пожалуйста, откройте дверь, убедитесь, что внутри что-то есть, и попробуйте снова.
  • emergencyHeatOn : <устройство(а)> находится в режиме аварийного обогрева, поэтому его/их придется регулировать вручную.
  • faultyBattery : <устройство(а)> <имеет/имеет> <неисправную батарею/батареи>.
  • floorUnreachable : <устройство(а)> не может попасть в эту комнату. Пожалуйста, переместите <устройство/устройство> на нужный этаж и попробуйте снова.
  • functionNotSupported : На самом деле, <устройство(а)> <не поддерживает/не поддерживает> эту функциональность.
  • genericDispenseNotSupported : Мне нужно знать, что именно вы хотите выдать. Пожалуйста, попробуйте еще раз, указав название товара.
  • hardError : Извините, произошла ошибка, и я не могу управлять вашим домашним устройством.
  • hardError : Извините, произошла ошибка, и я не могу управлять вашим домашним устройством.
  • inAutoMode : <устройство(а)> в данный момент установлено в автоматический режим. Чтобы изменить температуру, вам нужно переключить <устройство/их> в другой режим.
  • inAwayMode : <устройство(а)> в данный момент находится в режиме "вне дома". Для управления термостатом вам потребуется вручную переключить его в домашний режим с помощью приложения Nest на телефоне, планшете или компьютере.
  • inDryMode : <устройство(а)> в данный момент находится в режиме сушки. Чтобы изменить температуру, вам нужно переключить <устройство/их> в другой режим.
  • inEcoMode : <устройство(а)> в данный момент находится в экономичном режиме. Чтобы изменить температуру, вам нужно переключить <устройство/их> в другой режим.
  • inFanOnlyMode : <устройство(а)> в данный момент настроено на режим только вентилятора. Чтобы изменить температуру, вам нужно переключить <устройство/их> в другой режим.
  • inHeatOrCool : <устройство(а)> не находится в режиме обогрева/охлаждения.
  • inHumidifierMode : <устройство(а)> в данный момент находится в режиме увлажнителя. Чтобы изменить температуру, вам нужно переключить <устройство/их> в другой режим.
  • inOffMode : <устройство(а)> в данный момент выключено. Чтобы изменить температуру, вам нужно переключить <их/их> в другой режим.
  • inPurifierMode : <устройство(а)> в данный момент находится в режиме очистителя. Чтобы изменить температуру, вам нужно переключить <устройство/их> в другой режим.
  • inSleepMode : <устройство(а)> находится(ются) в спящем режиме. Пожалуйста, попробуйте позже.
  • inSoftwareUpdate : <устройство(а)> в данный момент находится в процессе обновления программного обеспечения.
  • lockFailure : Не удалось заблокировать <устройство(а)>.
  • lockedState : <устройство(а)> в данный момент заблокировано.
  • lockedToRange : Эта температура выходит за пределы заблокированного диапазона на <устройстве(ах)>.
  • lowBattery : <устройство(а)> <имеет/имеют> низкий заряд батареи.
  • maxSettingReached : <устройство(а)> <установлено/установлены> на максимальное значение.
  • maxSpeedReached : <устройство(а)> уже установлено на максимальную скорость.
  • minSettingReached : <устройство(а)> <установлено/установлены> на минимальное значение.
  • minSpeedReached : <устройство(а)> <установлено/установлены> на минимальную скорость.
  • monitoringServiceConnectionLost : <устройство(а)> потеряло/потеряли> соединение со службой мониторинга.
  • needsAttachment : Извините, похоже, что на <устройстве(ах)> отсутствует необходимое вложение. Пожалуйста, замените его и попробуйте снова.
  • needsBin : Извините, похоже, что на <устройстве(ах)> отсутствует файл bin. Пожалуйста, замените его и попробуйте снова.
  • needsPads : <устройство(а)> <нужны(-ы)> новые планшеты.
  • needsSoftwareUpdate : <устройство(а)> <требуется(ются)> обновление программного обеспечения.
  • needsWater : <устройство(а)> <нуждается(ются)> в воде.
  • networkProfileNotRecognized : Извините, я не распознаю "<сетевой профиль>" на <устройстве(ах)>.
  • networkSpeedTestInProgress : Я уже тестирую <сеть> <скорость/скорости>>.
  • noAvailableApp : Извините, похоже, приложение <название приложения> недоступно.
  • noAvailableChannel : Извините, похоже, канал <название канала> недоступен.
  • noChannelSubscription : Извините, в данный момент вы не подписаны на канал <название канала>.
  • noTimerExists : Извините, похоже, на <устройстве(ах)> не установлены никакие таймеры.
  • notSupported : Извините, этот режим недоступен для <устройства(ов)>.
  • Обнаружено препятствие : <устройство(а)> обнаружило препятствие.
  • offline, deviceOffline : Извините, похоже, что <устройство(а)> сейчас недоступно.
  • onRequiresMode : Пожалуйста, укажите, какой режим вы хотите включить.
  • passphraseIncorrect : Извините, похоже, что этот PIN-код неверный.
  • percentOutOfRange : Извините, я не могу установить значение <устройство(а)> в <процент>.
  • pinIncorrect : (passphraseIncorrect)
  • rainDetected : Я не открыл <устройство(а)>, потому что был обнаружен дождь.
  • rangeTooClose : Эти значения слишком близки для диапазона «нагрев-охлаждение» для <устройства(ов)>. Выберите более близкие значения температуры.
  • relinkRequired : Извините, похоже, что-то пошло не так с вашей учетной записью. Пожалуйста, используйте приложение Google Home или Google Ассистент для повторной привязки <устройства(ов)>.
  • remoteSetDisabled :
    • Необязательный параметр errorCodeReason
    • currentlyArmed - Извините, поскольку система безопасности уже активирована, для внесения изменений вам необходимо использовать <устройство(а)> или приложение.
    • remoteUnlockNotAllowed - Извините, я не могу разблокировать <устройство(а)> удаленно.
    • remoteControlOff - Это действие в данный момент отключено. Пожалуйста, включите дистанционное управление на <устройстве(ах)> и попробуйте снова.
    • childSafetyModeActive - Это действие отключено для <устройства(ов)>, пока активен режим безопасности для детей.
  • roomsOnDifferentFloors : <устройство(а)> не может связаться с этими комнатами, потому что они находятся на разных этажах.
  • safetyShutOff : <устройство(а)> находится(ются) в режиме защитного отключения, поэтому его/их придется регулировать вручную.
  • sceneCannotBeApplied : Извините, <устройство(а)> не может быть применено.
  • securityRestriction : <устройство(а)> <имеет/имеют> ограничение безопасности.
  • softwareUpdateNotAvailable : К сожалению, для <устройства(ов)> нет доступных обновлений программного обеспечения.
  • startRequiresTime : Для этого вам нужно указать, как долго вы хотите запускать программу на <устройстве(ах)>.
  • stillCoolingDown : <устройство(а)> все еще остывает.
  • stillWarmingUp : <устройство(а)> все еще находится в процессе прогрева.
  • streamUnavailable : Извините, похоже, что поток в данный момент недоступен на <устройстве(ах)>.
  • streamUnplayable : Извините, в данный момент я не могу воспроизвести поток с <устройства(ов)>.
  • tankEmpty : <устройство(а)> <имеет/имеют> <пустой бак/баки>. Пожалуйста, наполните <его/их> и попробуйте снова.
  • targetAlreadyReached : Извините, похоже, это уже текущая температура.
  • timerValueOutOfRange : <устройство(а)> не может быть установлено на указанное время.
  • tooManyFailedAttempts : Извините, слишком много неудачных попыток. Пожалуйста, перейдите в приложение на вашем устройстве, чтобы завершить это действие.
  • transientError : Извините, произошла ошибка при управлении <устройством(ами)>. Пожалуйста, попробуйте еще раз.
  • turnedOff , deviceTurnedOff : <устройство(а)> сейчас выключено.
  • unableToLocateDevice : Мне не удалось найти <устройство(а)>.
  • unknownFoodPreset : <устройство(а)> не поддерживает этот предустановленный набор продуктов.
  • unlockFailure : Не удалось разблокировать <устройство(а)>.
  • unpausableState : <устройство(а)> не может быть приостановлено в данный момент.
  • userCancelled : ok
  • valueOutOfRange : <устройство(а)> не может быть установлено на эту температуру.

Онлайн и офлайн отчетность по штатам

Если устройство отключено от сети, следует сообщить об этом. Сообщайте о состоянии устройства в течение пяти минут после его поведения. И наоборот, когда устройство возвращается в онлайн-режим, следует сообщить о его состоянии. Сообщить о состоянии устройства следует в течение пяти минут после его срабатывания. Как только устройство снова подключается к сети, партнер должен сообщать обо всех текущих состояниях устройства, используя API reportStateAndNotification . В этом примере показано, что в сети находится устройство типа light , и сообщается обо всех текущих состояниях устройства.
"requestId": "test-request-id",
  "agentUserId": "agent-user-1",
    "payload":{
      "devices": {
        "states": {
          "device-id-1": {
            "brightness": 65,
            "on": true,
            "online": true
          }
          "notifications": {},
        }
      }
    }

Исключения

В случае возникновения проблемы или предупреждения, связанных с командой, следует возвращать исключение. Команда может быть выполнена успешно или завершиться с ошибкой.

Если команда выполнена успешно (статус = "УСПЕХ"), сообщите об исключениях, используя трейт StatusReport (для устройств, отличных от целевого), или вернув соответствующий exceptionCode (для целевого устройства).

Например, если фильтр для сбора ворса в сушилке заполнен, пользователь все равно может запустить сушилку, но следует предупредить его об этом состоянии. Аналогично, если у устройства низкий заряд батареи, но оно не разряжено, вы все равно можете выполнить команду, но должны сообщить пользователю о низком заряде батареи.

Если команда завершается с ошибкой из-за исключений, статус должен быть "ИСКЛЮЧЕНИЯ", а об исключениях следует сообщать с помощью трейта StatusReport .

Неблокирующее исключение (УСПЕХ) для целевого устройства

Этот пример предназначен для запирания двери:

В замке входной двери разряжена батарея. Входная дверь запирается.

{
  "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.

Этот пример демонстрирует постановку системы безопасности на охрану: Хорошо, ставим систему безопасности на охрану. Переднее окно открыто.

{
  "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 на устройстве.

  • bagFull : <устройство(а)> <имеет/имеют> <полный пакет/пакеты>. Пожалуйста, очистите <их/их> и попробуйте снова.
  • binFull : <устройство(а)> <имеет/имеет> <полный контейнер/контейнеры>.
  • Обнаружен угарный газ : в доме <название дома> обнаружен угарный газ.
  • deviceAtExtremeTemperature : <устройство(а)> находится/находятся> при <экстремальной температуре/температурах>.
  • deviceJammingDetected : <устройство(а)> <заблокировано/блокированы>.
  • deviceMoved : <устройство(а)> <было/были> перемещено.
  • deviceOpen : <устройство(а)> <открыто(ы)>.
  • deviceTampered : <устройство(а)> было(и) подвергнуто(ы) вмешательству.
  • deviceUnplugged : <устройство(а)> <отключено/отключены>.
  • floorUnreachable : <устройство(а)> не может попасть в эту комнату. Пожалуйста, переместите <устройство/устройство> на нужный этаж и попробуйте снова.
  • hardwareFailure : <устройство(а)> <имеет/имеют> аппаратную проблему.
  • inSoftwareUpdate : <устройство(а)> в данный момент находится в процессе обновления программного обеспечения.
  • isBypassed : <устройство(а)> в данный момент обойдено.
  • lowBattery : <устройство(а)> <имеет/имеют> низкий заряд батареи.
  • motionDetected : <устройство(а)> <обнаружено(ы)> движение.
  • needsPads : <устройство(а)> <нужны(-ы)> новые планшеты.
  • needsSoftwareUpdate : <устройство(а)> <требуется(ются)> обновление программного обеспечения.
  • needsWater : <устройство(а)> <нуждается(ются)> в воде.
  • networkJammingDetected : подключение к домашней сети <устройство(а)> работает некорректно.
  • noIssuesReported : <устройство(а)> не сообщило о каких-либо проблемах.
  • roomsOnDifferentFloors : <устройство(а)> не может связаться с этими комнатами, потому что они находятся на разных этажах.
  • runCycleFinished : <устройство(а)> <завершило/завершили работу.
  • securityRestriction : <устройство(а)> <имеет/имеют> ограничение безопасности.
  • smokeDetected : В доме <название дома> обнаружен дым.
  • tankEmpty : <устройство(а)> <имеет/имеют> <пустой бак/баки>. Пожалуйста, наполните <его/их> и попробуйте снова.
  • usingCellularBackup : <устройство(а)> использует резервное копирование через сотовую сеть.
  • waterLeakDetected : <устройство(а)> <обнаруживает(ют)> утечку воды.