기기나 요청이 예상대로 작동하지 않는 경우 적절한 오류 처리와 커뮤니케이션을 제공하여 가능한 한 해결 방법을 파악할 수 있습니다. 잘 생각해 보세요 장애 시나리오와 기기의 응답 방식을 설명합니다. 사용자가 중단하나요? 사용자가 기기에서 작업을 요청하면 어떻게 하나요? 어떻게 해야 할까요? 이러한 문제에 대비하고 사용자가 복구하도록 지원 사용자의 불만을 피하고 더 높은 품질의 경험을 제공할 수 있습니다. 맞춤설정할 수 있습니다.
이 가이드에서는 오류를 처리하는 인텐트 응답의 몇 가지 예를 제공합니다. 자세한 내용은
오류 및 예외는
유효한 errorCode
값의 오류 및 예외 검토
예 1: EXECUTE
인텐트의 오류 응답
최종 사용자가 거실에 설치된 스마트 조명 2개를 보유하고 있습니다. 사용자
'거실 조명 켜 줘'라는 명령 실행 Google에서 EXECUTE
을(를) 전송했습니다.
인텐트를 처리 URL에 추가합니다. 사용자의 기기가 오프라인 상태인 것으로 확인되었습니다.
제어할 수 없으므로 처리에서 다음과 함께 EXECUTE
응답을 반환합니다.
status
ERROR
및 errorCode
deviceOffline
입니다.
이 예에서는 다음 예와 함께 EXECUTE
응답을 반환하는 방법을 보여줍니다.
앞에서 설명한 대로 가벼운 기기의 errorCode
:
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [ { "ids": [ "light-device-id-1" ], "status": "ERROR", "errorCode": "deviceOffline" }, { "ids": [ "light-device-id-2" ], "status": "ERROR", "errorCode": "deviceOffline" } ] } }
Google Assistant에서 사용자에게 '기기는
지금은 이용할 수 없습니다.' 확인할 수 있습니다 사용자는 여전히
전송 후 보고 상태에 있는 기기의 경우 오프라인 상태를 전송해야 함
EXECUTE
응답에 deviceOffline
errorCode
.
예 2: EXECUTE
인텐트의 비차단 예외
사용자가 다음과 같은 상태의 기기를 사용하여 현관문에서 스마트 도어락을 잠그려고 합니다.
Assistant 도어락을 성공적으로 제어할 수 있지만
기기 배터리가 부족하여 주문 처리에서 EXECUTE
을 반환합니다.
status
SUCCESS
및 exceptionCode
lowBattery
를 포함하는 응답입니다.
이 예에서는 EXECUTE
응답을
앞서 설명한 대로 잠금 기기에서 exceptionCode
를 호출합니다.
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["lock-device-id-1"], "status": "SUCCESS", "states": { "on": true, "online": true, "isLocked": true, "isJammed": false, "exceptionCode": "lowBattery" } }] } }
Assistant에서 사용자에게 '기기의 배터리가 부족합니다. 배터리' 확인할 수 있습니다
예 3: 사전 오류 알림
경우에 따라 사용자에게 오류를 알려주는 것이 도움이 될 수 있습니다. 특히 사용자가 자동으로 완료할 것으로 예상되는 함수입니다. 인간이 갈 수 있는 사전 알림을 지원하기 때문에 smart home를 구현한 경우 오류가 발생합니다. 사전 알림을 제공합니다.
스마트 건조기가 작동 중이고 이 주기가 끝나기 전에 누군가가 문을 엽니다.
Google Home Graph API를 호출할 수 있습니다.
reportStateAndNotifications
메서드로 사전 알림을 보낼 수 있습니다.
errorCode
:
이 예에서는
앞서 설명한 대로 건조기 기기에서 errorCode
를 호출합니다.
POST https://homegraph.googleapis.com/v1/devices:reportStateAndNotification
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "agentUserId": "agent-user-id", "eventId": "unique-event-id", "payload": { "devices": { "notifications": { "dryer-device-id": { "RunCycle": { "priority": 0, "status": "FAILURE", "errorCode": "deviceDoorOpen" } } }, "states": { "dryer-device-id": { "isRunning": false, "isPaused": true } } } } }
Assistant에서 사용자에게 '기기 문이 이미 있습니다.'라는 메시지를 표시합니다. 열림' 알림을 수신할 수 없습니다. 해당하는 기기 상태를 동일한 페이로드에 있는 알림과 함께 사용합니다.
예 4: 후속 조치 알림
후속 알림을 지원하는 트레잇 명령어의 경우 오류나 예외가 발생한 경우 사용자에게 후속 알림 smart home를 구현했습니다. 후속 조치 알림.
사용자가 차고 문을 닫으라는 명령을 내렸지만 문이 걸려 움직이지 않습니다.
를 닫습니다. errorCode
를 사용하여 후속 알림을 보낼 수 있습니다.
POST https://homegraph.googleapis.com/v1/devices:reportStateAndNotification
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "agentUserId": "agent-user-id", "eventId": "unique-event-id", "payload": { "devices": { "notifications": { "door-device-id": { "LockUnlock": { "priority": 0, "followUpResponse": { "status": "FAILURE", "errorCode": "deviceJammingDetected", "followUpToken": "follow-up-token-1" } } } }, "states": { "door-device-id": { "openPercent": 70 } } } } }
Assistant에서 사용자에게 '기기는 걸림' 알림을 수신할 수 없습니다. 해당하는 알림을 포함하는 기기 상태를 생성합니다.
자세한 내용 및 자세한 errorCodes
는
오류 및 예외
참조하세요.