Cihazlar veya istekler beklendiği gibi çalışmadığında kullanıcılarınızın ne olduğunu ve mümkün olduğunda nasıl düzeltileceklerini anlamalarına yardımcı olacak iyi bir hata giderme ve iletişim hizmeti sağlamak önemlidir. Olası hata senaryolarını ve cihazınızın nasıl tepki vereceğini düşündüğünüzden emin olun: Kullanıcı devam eden bir görevi yarıda keserse ne olur? Kullanıcı çevrimdışı olan bir cihazdan işlem istediğinde ne olur? Bu sorunlar için plan yapmak ve kullanıcınızın bunlardan kurtulmasına yardımcı olmak, kullanıcıların hayal kırıklığına uğramasını önleyerek cihazlarınız için daha kaliteli bir deneyim oluşturur.
Bu kılavuzda, hataları işleyen intent yanıtlarına bazı örnekler verilmiştir. Hata ve istisnalar için geçerli errorCode
değerlerini incelemek üzere Hatalar ve istisnalar'a bakın.
1. Örnek: EXECUTE
amacı 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 verir ve Google, sipariş karşılama URL'nize bir EXECUTE
niyeti gönderdi. Kullanıcının cihazlarının internete bağlı olmadığını ve kontrol edilemez olduğunu tespit ettiniz. Bu nedenle, istek karşılama işleminiz status
ERROR
ve errorCode
deviceOffline
ile bir EXECUTE
yanıtı döndürdü.
Bu örnekte, daha önce açıklandığı gibi hafif bir cihazdan errorCode
içeren bir EXECUTE
yanıtının nasıl döndürüleceği gösterilmektedir:
{ "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" } ] } }
Yanıtı aldıktan sonra Google Assistant, kullanıcıdan "cihaz şu anda kullanılamıyor" mesajıyla karşılaşır. EXECUTE
yanıtında errorCode
deviceOffline
gönderdikten sonra rapor durumundaki cihazlar için çevrimdışı durumu göndermeniz gerektiğini unutmayın.
2. örnek: EXECUTE
amacı için engellemeyen istisna
Bir kullanıcı, Assistant kullanarak cihazı kullanarak ön kapıda akıllı kilidini kilitlemeye çalışıyor. Cihazların kilidini başarıyla kontrol edebilirsiniz ancak cihazın pilinin düşük olduğunu görürsünüz. Bu nedenle, siparişiniz status
SUCCESS
ve exceptionCode
lowBattery
ile EXECUTE
yanıtı döndürüyor.
Bu örnekte, daha önce açıklandığı gibi kilit cihazından exceptionCode
ile nasıl EXECUTE
yanıtı gönderileceği gösterilmektedir:
{ "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, yanıtı aldıktan sonra kullanıcıya "cihazın pil seviyesi düşük" mesajıyla ulaşır.
3. Örnek: Proaktif hata bildirimleri
Bazı durumlarda, özellikle de kullanıcıların otomatik olarak tamamlamayı beklediği işlevlerde kullanıcıları bir hata konusunda uyarmak faydalı olabilir. Proaktif bildirimleri destekleyen özellikler için, smart home proaktif bildirimleri uyguladıysanız hata meydana gelirken kullanıcıyı proaktif olarak bilgilendirebilirsiniz.
Akıllı bir kurutma makinesi çalışıyor ve döngü bitmeden birisi kapıyı açıyor.
errorCode
ile proaktif bildirim göndermek için Google Home Graph API reportStateAndNotifications
yöntemini çağırabilirsiniz:
Bu örnekte, daha önce açıklandığı gibi bir kurutucu cihazdan errorCode
ile nasıl proaktif bildirim gönderileceği gösterilmektedir:
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, bildirimi aldıktan sonra kullanıcıya "cihaz kapısı açıldı" mesajıyla ulaşır. İlgili cihaz durumlarını, aynı yükteki bildirimlerle birlikte gönderebilirsiniz.
4. Örnek: Takip bildirimi
smart home Takip bildirimlerini uyguladıysanız, takip bildirimlerini destekleyen özellik komutlarında, hata veya istisna meydana geldiğinde kullanıcıya takip bildirimi gönderebilirsiniz.
Bir kullanıcı, garaj kapısını kapatmak için bir komut verir ama kapı kapanırken sıkıştı. 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, bildirimi aldıktan sonra kullanıcıya "cihaz sıkıştı" mesajıyla ulaşır. İlgili cihaz durumlarını, aynı yükte bildirimlerle birlikte gönderebilirsiniz.
Daha fazla bilgi ve ayrıntılı errorCodes
için Hatalar ve istisnalar referans belgelerine bakın.