Błędy i wyjątki

W tym dokumencie znajdziesz listę oficjalnie obsługiwanych błędów i wyjątków dotyczących urządzeń inteligentnego domu. Używaj tych kodów błędów i wyjątków w odpowiedzi na intencję lub w powiadomieniach (jeśli zostały przez Ciebie wdrożone), aby Asystent Google informował użytkowników o problemach związanych z danym poleceniem lub stanem urządzenia. Jeśli odpowiedź zawiera nieprawidłowe formatowanie lub errorCode, Asystent Google wyświetli użytkownikom ogólny komunikat o błędzie, np. „Przepraszamy, urządzenie jest teraz niedostępne”.

Błędy

Gdy problem powoduje niepowodzenie żądania wykonania lub zapytania, należy zwrócić kod błędu. Jeśli na przykład zamek drzwi jest zablokowany i nie można go zamknąć ani otworzyć, użytkownik powinien otrzymać komunikat o błędzie.

Kody błędów można dołączać na poziomie urządzenia lub na poziomie globalnym. Jeśli na przykład użytkownik ma wiele świateł od jednego dostawcy i są one sterowane przez hub, gdy poprosi o wyłączenie wszystkich świateł, dostawca może zwrócić błąd na poziomie urządzenia, jeśli jedno światło jest offline, lub błąd na poziomie globalnym, jeśli cały hub jest offline i nie można sterować żadnym światłem. Jeśli wszystkie urządzenia są offline, nie ma różnicy między błędami na poziomie globalnym a błędami na poziomie urządzenia.

Podsumowanie:

  • Błąd na poziomie globalnym: wszystkie urządzenia w odpowiedzi mają ten sam błąd.
  • Błąd na poziomie lokalnym: odpowiedź mieszana z przypadkami błędów i sukcesów

Błędy na poziomie globalnym

Poniższy fragment kodu JSON pokazuje, jak zwracać błędy na poziomie globalnym w odpowiedzi QUERY lub EXECUTE.

Przykład błędu na poziomie globalnym deviceOffline spowodowanego tym, że hub jest offline:

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

Przykład błędu na poziomie globalnym inSoftwareUpdate spowodowanego aktualizacją huba:

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

Błędy na poziomie urządzenia

Odpowiedź na zapytanie

Poniższy fragment kodu JSON pokazuje, jak zwracać błędy na poziomie urządzenia w odpowiedzi QUERY.

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

Odpowiedź EXECUTE

Poniższy fragment kodu JSON pokazuje, jak zwrócić błędy na poziomie urządzenia w odpowiedzi 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
        }
      }
    ]
  }
}

Powiadomienia z błędami

Aktywne powiadomienie

Poniższy fragment kodu JSON pokazuje, jak zgłaszać błędy na poziomie urządzenia w powiadomieniu proaktywnym.

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

Odpowiedź uzupełniająca

Poniższy fragment kodu JSON pokazuje, jak zgłaszać błędy na poziomie urządzenia w odpowiedzi uzupełniającej.

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

Lista błędów

Poniższe błędy spowodują odtworzenie na urządzeniu powiązanego komunikatu TTS.

  • aboveMaximumLightEffectsDuration : To przekracza maksymalny czas trwania wynoszący godzinę. Spróbuj ponownie.
  • aboveMaximumTimerDuration : Mogę ustawić <device(s)> na maksymalnie <time period>
  • actionNotAvailable : Nie mogę tego teraz zrobić. Wskazówka: sprawdź w realizacji zamówienia cechy urządzenia i logikę bieżącego stanu.
  • actionUnavailableWhileRunning : <device(s)> <is/are> currently running, so I can't make any changes.
  • alreadyArmed : Urządzenie(-a) <is/are> już uzbrojone.
  • alreadyAtMax : <device(s)> <is/are> already set to the maximum temperature.
  • alreadyAtMin : <device(s)> <is/are> already set to the minimum temperature.
  • alreadyClosed : Urządzenie(-a) <is/are> już zamknięte.
  • alreadyDisarmed : Urządzenie(-a) <is/are> już rozbrojone.
  • alreadyDocked : <device(s)> <is/are> already docked.
  • alreadyInState : <device(s)> <is/are> already in that state.
  • alreadyLocked : <device(s)> <is/are> already locked.
  • alreadyOff : <device(s)> <is/are> already off.
  • alreadyOn : <device(s)> <is/are> already on.
  • alreadyOpen : <device(s)> <is/are> already open.
  • alreadyPaused : Urządzenie(-a) <is/are> już wstrzymane.
  • alreadyStarted : <device(s)> <is/are> already started.
  • alreadyStopped : <device(s)> <is/are> already stopped.
  • alreadyUnlocked : Urządzenie(-a) <is/are> już odblokowane.
  • ambiguousZoneName : Przepraszam, ale <device(s)> nie może rozpoznać strefy, o którą Ci chodzi. Sprawdź, czy strefy mają unikalne nazwy, i spróbuj jeszcze raz.
  • amountAboveLimit : To więcej, niż urządzenie <device(s)> jest w stanie obsłużyć.
  • appLaunchFailed : Nie udało się uruchomić aplikacji <app name> na urządzeniu <device(s)>. Wskazówka: sprawdź identyfikator aplikacji i upewnij się, że aplikacja jest obsługiwana na docelowym sprzęcie.
  • armFailure : Nie udało się włączyć urządzenia <device(s)>.
  • armLevelNeeded : Nie mam pewności, na jaki tryb ustawić <device(s)>. Spróbuj powiedzieć „Ustaw <urządzenia> na <niski poziom bezpieczeństwa>” lub „Ustaw <urządzenia> na <wysoki poziom bezpieczeństwa>”.
  • authFailure : Nie mogę się połączyć z <device(s)>. Sprawdź w aplikacji, czy <device/devices> <is/are> w pełni skonfigurowane.
  • bagFull : Urządzenie(-a) <has/have> <a full bag/full bags>. Opróżnij <it/them> i spróbuj ponownie.
  • belowMinimumLightEffectsDuration : To krócej niż minimalny czas trwania wynoszący 5 minut. Spróbuj ponownie.
  • belowMinimumTimerDuration : Nie mogę ustawić <device(s)> na tak krótki czas. Spróbuj ponownie.
  • binFull : <device(s)> <has/have> <a full bin/full bins>.
  • cancelArmingRestricted : Nie udało mi się anulować uzbrajania <device(s)>.
  • cancelTooLate : Już za późno na anulowanie. Użyj <device(s)> lub aplikacji.
  • channelSwitchFailed : Nie udało mi się zmienić kanału na <channel name>.Spróbuj ponownie później. Wskazówka: sprawdź nazwy i numery kanałów oraz stan subskrypcji użytkownika.
  • chargerIssue : Wygląda na to, że <device(s)> <has/have> <a charger issue/charger issues>. Wskazówka: partner powinien sprawdzić telemetrię na poziomie sprzętu i stan baterii.
  • commandInsertFailed : Nie można przetworzyć poleceń dla urządzenia(-ń) <device(s)>. Wskazówka: sprawdź wydajność zapisu w bazie danych lub wewnętrzną logikę kolejkowania poleceń.
  • deadBattery : <device(s)> <has/have> <a dead battery/dead batteries>.
  • degreesOutOfRange : Żądane ustawienie w stopniach nie mieści się w zakresie w przypadku <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 : Wygląda na to, że <device(s)> robi w tej chwili coś innego.
  • deviceCharging : Wygląda na to, że <device(s)> nie może tego zrobić, ponieważ (ha_shared.ItsTheyre size=$item.devices.total_device_count) się ładuje.
  • deviceClogged : Wygląda na to, że <device(s)> jest zapchane.
  • deviceCurrentlyDispensing : Urządzenie<device(s)> właśnie coś wydaje.
  • deviceDoorOpen : Drzwiczki urządzenia <device(s)> są otwarte. Zamknij je i spróbuj ponownie.
  • deviceHandleClosed : Uchwyt na urządzeniu <device(s)> jest zamknięty. Otwórz go i spróbuj ponownie.
  • deviceJammingDetected : <device(s)> <is/are> jammed.
  • deviceLidOpen : Pokrywa urządzenia <device(s)> jest otwarta. Zamknij ją i spróbuj ponownie.
  • deviceNeedsRepair : <device(s)> <need(s)> to be repaired. Skontaktuj się z lokalnym serwisem.
  • deviceNotDocked : Wygląda na to, że <device(s)> <isn't/aren't> zadokowane. Umieść <je/go> w stacji i spróbuj ponownie.
  • deviceNotFound : Urządzenia <device(s)> <is/are> niedostępne. Spróbuj jeszcze raz skonfigurować <to urządzenie/te urządzenia>. Wskazówka: upewnij się, że backend zawsze synchronizuje Home Graph. Wywołuj funkcję requestSync za każdym razem, gdy dodasz lub usuniesz urządzenia.
  • deviceNotMounted : Wygląda na to, że <device(s)> nie może tego zrobić, bo <it/they> <is/are>n't zamontowane.
  • deviceNotReady : Urządzenie(-a) <is/are>n't ready.
  • deviceStuck : <device(s)> <is/are> stuck and needs your help.
  • deviceTampered : <device(s)> <has/have> been tampered with.
  • deviceThermalShutdown : Wygląda na to, że <device(s)> zostały wyłączone z powodu skrajnej temperatury.
  • directResponseOnlyUnreachable : Urządzenie(-a) <nie obsługuje/nie obsługują> zdalnego sterowania.
  • disarmFailure : Nie udało się rozbroić <urządzeń>.
  • discreteOnlyOpenClose : Przepraszam, <device(s)> można tylko całkowicie zamknąć lub otworzyć.
  • dispenseAmountAboveLimit : <device(s)> nie może wydać tak dużo.
  • dispenseAmountBelowLimit : <device(s)> nie może wydać tak mało.
  • dispenseAmountRemainingExceeded : Urządzenie <device(s)> nie ma wystarczającej ilości <dispense item>, aby to zrobić.
  • dispenseFractionalAmountNotSupported : <device(s)> nie może wydawać ułamków <dispense item>.
  • dispenseFractionalUnitNotSupported : Urządzenie <device(s)> nie obsługuje ułamkowych części tej jednostki miary <dispense item>.
  • dispenseUnitNotSupported : Urządzenie <device(s)> nie obsługuje tej jednostki dla <dispense item>.
  • doorClosedTooLong : Drzwi urządzenia <device(s)> od dłuższego czasu są zamknięte. Otwórz je i sprawdź, czy coś jest w środku, a potem spróbuj jeszcze raz.
  • emergencyHeatOn : <device(s)> <is/are> in Emergency Heat Mode, so <it/they>'ll have to be adjusted by hand.
  • faultyBattery : <device(s)> <has/have> <a faulty battery/faulty batteries>.
  • floorUnreachable : Urządzenia <device(s)> nie mogą dostać się do tego pomieszczenia. Przenieś <it/them> na właściwe piętro i spróbuj ponownie.
  • functionNotSupported : Urządzenie <device(s)> <doesn't/don't> obsługuje tej funkcji. Wskazówka: upewnij się, że odpowiedź SYNC dokładnie odzwierciedla możliwości urządzenia.
  • genericDispenseNotSupported : Muszę wiedzieć, co chcesz wydać. Spróbuj jeszcze raz, podając nazwę produktu.
  • hardError : Coś poszło nie tak i nie mogę sterować urządzeniem domowym.
  • hardError : Coś poszło nie tak i nie mogę sterować urządzeniem domowym.
  • inAutoMode : <device(s)> <is/are> currently set to auto mode. Żeby zmienić temperaturę, musisz przełączyć <it/them> w inny tryb.
  • inAwayMode : <device(s)> <is/are> currently set to away mode. Aby sterować termostatem, musisz ręcznie przełączyć go na tryb domowy, używając aplikacji Nest na telefonie, tablecie lub komputerze.
  • inDryMode : <device(s)> <is/are> currently set to dry mode. Żeby zmienić temperaturę, musisz przełączyć <it/them> w inny tryb.
  • inEcoMode : <device(s)> <is/are> currently set to eco mode. Żeby zmienić temperaturę, musisz przełączyć <it/them> w inny tryb.
  • inFanOnlyMode : <device(s)> <is/are> currently set to fan-only mode. Żeby zmienić temperaturę, musisz przełączyć <it/them> w inny tryb.
  • inHeatOrCool : <device(s)> <is/are>n't in heat/cool mode.
  • inHumidifierMode : <device(s)> <is/are> currently set to humidifier mode. Żeby zmienić temperaturę, musisz przełączyć <it/them> w inny tryb.
  • 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. Żeby zmienić temperaturę, musisz przełączyć <it/them> w inny tryb.
  • inSleepMode : <device(s)> <is/are> in sleep mode. Spróbuj ponownie później.
  • inSoftwareUpdate : <device(s)> <is/are> currently in a software update.
  • lockFailure : Nie udało się zablokować urządzenia(urządzeń). Wskazówka: sprawdź, czy nie doszło do zablokowania mechanicznego, czy nie ma problemów z zasilaniem lub czy nie doszło do awarii silnika zamka.
  • lockedState : <device(s)> <is/are> currently locked.
  • lockedToRange : Ta temperatura jest poza zakresem urządzenia <device(s)>.
  • lowBattery : <device(s)> <has/have> low battery.
  • maxSettingReached : <device(s)> <is/are> already set to the highest setting.
  • maxSpeedReached : <device(s)> <is/are> already set to the maximum speed.
  • 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 : Wygląda na to, że <device(s)> <is/are> nie ma wymaganego załącznika. Zamontuj go i spróbuj jeszcze raz.
  • needsBin : Wygląda na to, że w urządzeniu <device(s)> <is/are> nie ma pojemnika. Zamontuj go i spróbuj jeszcze raz.
  • needsPads : <device(s)> <need(s)> nowe nakładki.
  • needsSoftwareUpdate : <device(s)> <need(s)> a software update.
  • needsWater : <device(s)> <need(s)> water.
  • networkProfileNotRecognized : Przepraszam, nie rozpoznaję profilu „<network profile>” na urządzeniu <device(s)>. Wskazówka: sprawdź, czy ciąg znaków nazwy profilu jest zgodny z obsługiwanymi profilami w odpowiedzi SYNC.
  • networkSpeedTestInProgress : Już testuję <network> <speed/speeds>.
  • noAvailableApp : Przepraszamy, ale aplikacja <app name> jest niedostępna.
  • noAvailableChannel : Wygląda na to, że kanał <channel name> jest niedostępny.
  • noChannelSubscription : Obecnie nie subskrybujesz kanału <channel name>.
  • noTimerExists : Wygląda na to, że na urządzeniu <device(s)> nie ma ustawionych żadnych minutników.
  • notSupported : Ten tryb nie jest dostępny na urządzeniach <device(s)>.
  • obstructionDetected : <device(s)> wykryto przeszkodę.
  • offline , deviceOffline : Wygląda na to, że <device(s)> <is/are> w tej chwili niedostępne.
  • onRequiresMode : Określ, który tryb chcesz włączyć.
  • passphraseIncorrect : Wygląda na to, że ten kod PIN jest nieprawidłowy.
  • percentOutOfRange : Nie mogę ustawić <device(s)> na <percent>.
  • pinIncorrect : (passphraseIncorrect)
  • rainDetected : Nie otworzyłem urządzenia <device(s)>, ponieważ wykryto deszcz.
  • rangeTooClose : Różnica między tymi wartościami jest zbyt mała dla trybu naprzemiennego grzania i chłodzenia w przypadku urządzenia <device(s)>. Wybierz bardziej skrajne temperatury.
  • relinkRequired : Wygląda na to, że coś jest nie tak z Twoim kontem. Użyj aplikacji Asystent lub Google Home, aby ponownie połączyć <device(s)>. Wskazówka: upewnij się, że serwer zwraca ten kod, gdy token odświeżania jest trwale nieważny.
  • remoteSetDisabled :
    • Parametr opcjonalny errorCodeReason
    • currentlyArmed - Alarm jest już włączony, więc zmiany możesz wprowadzić tylko za pomocą <device(s)> lub aplikacji.
    • remoteUnlockNotAllowed – Nie mogę zdalnie odblokować urządzenia <device(s)>.
    • remoteControlOff – To działanie jest obecnie wyłączone. Włącz pilota na urządzeniach <device(s)> i spróbuj jeszcze raz.
    • childSafetyModeActive – Nie można wykonać tej czynności w przypadku <device(s)>, gdy włączony jest tryb bezpieczeństwa dzieci.
  • roomsOnDifferentFloors : <device(s)> nie może dostać się do tych pomieszczeń, bo są one na innych piętrach.
  • safetyShutOff : <device(s)> <is/are> in Safety Shut-Off Mode, so <it/they>'ll have to be adjusted by hand.
  • sceneCannotBeApplied : Przepraszamy, nie można zastosować <device(s)>. Wskazówka: sprawdź wewnętrzny stan scen użytkownika w chmurze partnera.
  • securityRestriction : <device(s)> <has/have> a security restriction.
  • softwareUpdateNotAvailable : Przepraszamy, ale na urządzeniach <device(s)> nie jest dostępna aktualizacja oprogramowania.
  • startRequiresTime : Aby to zrobić, musisz mi powiedzieć, na jak długo chcesz włączyć <device(s)>.
  • stillCoolingDown : <device(s)> <is/are> still cooling down.
  • stillWarmingUp : <device(s)> <is/are> still warming up.
  • streamUnavailable : Wygląda na to, że strumieniowe przesyłanie danych z <device(s)> jest obecnie niedostępne.
  • streamUnplayable : Nie mogę teraz odtworzyć strumienia z urządzenia <device(s)>. Wskazówka: sprawdź sygnalizację WebRTC/HLS i upewnij się, że adres URL strumienia jest prawidłowy.
  • tankEmpty : <device(s)> <has/have> <an empty tank/empty tanks>. Please fill <it/them> and try again.
  • targetAlreadyReached : Przepraszam, wygląda na to, że to jest już aktualna temperatura.
  • timerValueOutOfRange : Nie można ustawić urządzenia <device(s)> na taki czas.
  • tooManyFailedAttempts : Przepraszamy, zbyt wiele nieudanych prób. Otwórz aplikację na urządzeniu, aby dokończyć tę czynność.
  • transientError : Podczas sterowania <device(s)> coś poszło nie tak. Spróbuj jeszcze raz. Wskazówka: najczęściej błędy te objawiają się przerwaniem połączenia z urządzeniem lub usługą. Dotyczy to też sytuacji, gdy nie można otworzyć nowych połączeń z serwerem.
  • turnedOff , deviceTurnedOff : <device(s)> <is/are> off right now.
  • unableToLocateDevice : Nie udało mi się znaleźć <device(s)>. Wskazówka: sprawdź lokalną łączność urządzenia (Wi-Fi/Bluetooth).
  • unknownFoodPreset : Urządzenie(-a) <device(s)> nie obsługuje tych gotowych ustawień.
  • unlockFailure : Nie udało się odblokować <device(s)>. Wskazówka: sprawdź, czy nie doszło do zacięcia sprzętu, czy bateria nie jest słaba lub czy kod PIN został wpisany prawidłowo.
  • unpausableState : Nie można teraz wstrzymać działania <device(s)>.
  • userCancelled : ok
  • valueOutOfRange : Nie można ustawić urządzenia(-ń) <device(s)> na taką temperaturę.

Raportowanie stanu online i offline

Gdy urządzenie jest offline, w ciągu 5 minut od jego działania należy zgłosić <code{"online": code="" dir="ltr" false}<="" translate="no"> do Report State w ciągu 5 minut od jego działania. Z kolei, gdy urządzenie wróci do stanu online, w ciągu 5 minut od zmiany jego stanu należy zgłosić wartość <code{"online": code="" dir="ltr" translate="no" true}<=""> do interfejsu Report State. Gdy urządzenie wróci do trybu online, partner powinien zgłosić wszystkie bieżące stany urządzenia za pomocą interfejsu reportStateAndNotification API. Ten przykład pokazuje, że light urządzenie jest online i zgłasza wszystkie bieżące stany urządzenia.
"requestId": "test-request-id",
  "agentUserId": "agent-user-1",
    "payload":{
      "devices": {
        "states": {
          "device-id-1": {
            "brightness": 65,
            "on": true,
            "online": true
          }
          "notifications": {},
        }
      }
    }

Wyjątki

W przypadku problemu lub alertu związanego z poleceniem należy zwrócić wyjątek. Polecenie może się powieść lub nie.

Jeśli polecenie zostało wykonane (status = „SUCCESS”), zgłoś wyjątki za pomocą cechy StatusReport (w przypadku urządzeń innych niż docelowe) lub zwracając odpowiedni exceptionCode (w przypadku urządzenia docelowego).

Jeśli na przykład filtr kłaczków suszarki jest pełny, użytkownik nadal może włączyć suszarkę, ale warto go o tym poinformować. Podobnie, gdy urządzenie ma niski poziom naładowania baterii, ale nie jest ona pusta, nadal możesz wykonać polecenie, ale powinieneś poinformować użytkownika, że bateria urządzenia jest słaba.

Jeśli polecenie nie powiedzie się z powodu wyjątków, stan powinien mieć wartość „EXCEPTIONS”, a wyjątki powinny być zgłaszane za pomocą cechy StatusReport.

Wyjątek nieblokujący (SUCCESS) dotyczący urządzenia docelowego

Ten przykład dotyczy zamykania drzwi:

Zamek w drzwiach wejściowych ma słabą baterię. Zamykam zamek w drzwiach wejściowych.

{
  "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"
      }
    }]
  }
}

Wyjątek nieblokujący (SUCCESS) dotyczący innego urządzenia korzystającego z StatusReport

Ten przykład dotyczy włączania systemu alarmowego: OK, włączam system alarmowy. Przednie okno jest otwarte.

{
  "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"
        }]
      }
    }]
  }
}

Wyjątek blokujący dotyczący innego urządzenia korzystającego z 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"
          }
        ]
      }
    }
  }
}

Lista wyjątków

W przypadku tych wyjątków na urządzeniu zostanie odtworzona odpowiednia mowa.

  • bagFull : Urządzenie(-a) <has/have> <a full bag/full bags>. Opróżnij <it/them> i spróbuj ponownie.
  • binFull : <device(s)> <has/have> <a full bin/full bins>.
  • carbonMonoxideDetected : W <nazwa domu> wykryto tlenek węgla.
  • 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 : Urządzenia <device(s)> nie mogą dostać się do tego pomieszczenia. Przenieś <it/them> na właściwe piętro i spróbuj ponownie.
  • 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)> nowe nakładki.
  • needsSoftwareUpdate : <device(s)> <need(s)> a software update.
  • needsWater : <device(s)> <need(s)> water.
  • networkJammingDetected : połączenie z <device(s)> w sieci domowej nie działa prawidłowo.
  • noIssuesReported : <device(s)> nie zgłosiło żadnych problemów.
  • roomsOnDifferentFloors : <device(s)> nie może dostać się do tych pomieszczeń, bo są one na innych piętrach.
  • runCycleFinished : <device(s)> <has/have> finished running.
  • securityRestriction : <device(s)> <has/have> a security restriction.
  • smokeDetected : W <nazwa domu> wykryto dym.
  • tankEmpty : <device(s)> <has/have> <an empty tank/empty tanks>. Please fill <it/them> and try again.
  • usingCellularBackup : <device(s)> <is/are> using cellular backup.
  • waterLeakDetected : <device(s)> <detect(s)> wyciek wody.
</code{"online":></code{"online":>