Cihazlar veya istekler beklendiği gibi çalışmadığında iyi bir hata giderme ve iletişim özellikleri sunmanın yanı sıra kullanıcılarınıza, ve mümkün olduğunda nasıl düzeltileceği hakkında sorular sormak. Projenin gidişatına dair olası hata senaryoları ve cihazınızın nasıl yanıt vereceği: Kullanıcı, devam eden bir görevi kesintiye uğratır mı? Kullanıcı bir cihazdan işlem isteğinde bulunursa ne olur? çevrimdışıyken de oynatılsın mı? Bu sorunlar için planlama ve kullanıcınızın kurtarma yapmasına yardımcı olma Böylece, kullanıcıların hayal kırıklığına uğramasını önler ve daha kaliteli bir deneyim sunar .
Bu kılavuzda, hataları işleyen amaç yanıtlarının bazı örnekleri sunulmaktadır. Görüntüleyin
Hatalar ve istisnalar
hata ve istisnalar için geçerli errorCode
değerlerini inceleyin.
Örnek 1: EXECUTE
niyeti için hata yanıtı
Bir son kullanıcının oturma odasında iki akıllı ışığı var. Kullanıcı
"oturma odasının ışıklarını aç" komutu veriyor ve Google bir EXECUTE
gönderdi
niyetinizi göstermelisiniz. Kullanıcının cihazlarının çevrimdışı olduğunu tespit ettiniz
ve kontrol edilemez olduğundan, sipariş karşılama işleminiz aşağıdaki gibi bir EXECUTE
yanıtı döndürüyor:
status
ERROR
ve errorCode
deviceOffline
.
Bu örnekte, bir EXECUTE
yanıtının
Daha önce açıklandığı gibi hafif bir cihazdan 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, kullanıcıya "cihaz" istemini gönderir
şu anda kullanılamıyor" yanıt alabilirsiniz. Yine de aklınızdan çıkarmayın
gönderildikten sonra rapor durumundaki cihazların çevrimdışı durumunu göndermesi gerekiyor
errorCode
EXECUTE
yanıtta deviceOffline
.
2. Örnek: EXECUTE
amacı için engellemeyen istisna
Bir kullanıcı, şuradaki cihazı kullanarak akıllı kilidini ön kapıda kilitlemeye çalışıyor:
Assistant Kilidini başarılı bir şekilde kontrol edebilirsiniz ancak
Cihazın pilinin düşük olduğunu fark ediyorsunuz. Bu durumda, sipariş karşılama işleminiz bir EXECUTE
döndürüyor
status
SUCCESS
ve exceptionCode
lowBattery
ile yanıt.
Bu örnekte, bir EXECUTE
yanıtının
Daha önce açıklandığı gibi kilit cihazından 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, "cihazın güvenlik seviyesi düşük olan kullanıcıya bildirim gönderir. pil" yanıt alabilirsiniz.
3. Örnek: Proaktif hata bildirimleri
Bazı durumlarda, özellikle hata konusunda kullanıcıları uyarmak kullanıcıların otomatik olarak tamamlanmasını beklediği işlevler. Kariyerine proaktif bildirimleri desteklediğinde, bir işlem başlatırken kullanıcıyı proaktif olarak smart home uygulandığında hata oluşur proaktif bildirimlere izin verebilirsiniz.
Akıllı kurutma makinesi çalışıyor ve program bitmeden kapıyı açıyor.
Google Home Graph API'yi çağırabilirsiniz
Proaktif bildirim göndermenin reportStateAndNotifications
yöntemi
errorCode
:
Bu örnekte,
Daha önce açıklandığı gibi kurutma makinesinden 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, "cihaz kapısının şu açıldı" bildirimi alabilirsiniz. İlgili e-posta adresini aynı yükteki bildirimlerin yanında cihaz durumlarını gösterir.
4. Örnek: Takip bildirimi
Takip bildirimlerini destekleyen özellik komutları için bir hata veya istisna oluştuğunda kullanıcıya gösterilen takip bildirimi smart home uyguladınız takip bildirimleri.
Kullanıcı, garaj kapısını kapatma komutu veriyor, ancak kapı sıkışmış
bahsedeceğim. errorCode
ile takip bildirimi gönderebilirsiniz:
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, "cihaz:" seçeneğine sahip kullanıcıya istem gösterir sıkıştı" bildirimi alabilirsiniz. İlgili e-posta adresini bildirimleri içeren cihaz durumlarını gösterir.
Daha fazla bilgi ve ayrıntılı errorCodes
için
Hatalar ve istisnalar
referans belgeler.