Akıllı Ev ile ilgili SSS

Genel

S: Buluttan buluta sipariş tamamlama altyapımızı nerede ve hangi dilde uygulamalıyız?

Y: Modern SSL (TLS) ve OAuth 2.0'ı desteklediği sürece altyapınızı istediğiniz platformda ve dilde uygulayabilirsiniz. Güvenilirliği artırmak ve gerçek kullanıcı cihazlarında yürütme gecikmesini azaltmak için altyapınızın geri kalanına mümkün olduğunca yakın bir yerde dağıtmanızı öneririz.


S: Cihaz kimliklerinin benzersiz olması gerekir mi?

Y: Kimlikler benzersiz olmalıdır. Hizmetinizde benzersiz kimlikler yoksa en azından kullanıcı başına benzersiz olmalıdır. Birden fazla evi olan ve her iki evin de aynı kullanıcıyla entegrasyonu olan bir kullanıcıyı düşünün. Bir evdeki ışığı açmak istediğinizde başka bir evdeki aynı kimliğe sahip ışık açılmamalıdır.


S: Cihaz adlarının benzersiz olması gerekir mi?

Y: Adların benzersiz olması gerekmez. Ancak zaman içinde, daha iyi bir kullanıcı deneyimi için kullanıcıları kurulumdan sonra kötü adlandırmaları iyileştirmeye teşvik edebiliriz.

Aşağıda, adlandırmayla ilgili kısa bir kılavuz verilmiştir:

  • Adlar, kullanıcıların söyleyebileceği kelimeler olmalıdır.
  • Dize alt kümelerini tanırız. Dolayısıyla "acme color light" ifadeniz varsa "acme light" ifadesine de yanıt veririz.
  • Hem ürün için açıklayıcı bir ad hem de bir veya daha fazla kullanıcı tanımlı ad kullanmanız önerilir.
  • Kullanıcıların ışıklara oda adı vermesi gerekmez. Bunun için odalarımız vardır. Oda başına benzersiz adlar verilmelidir ancak her zaman her şeye komut vermek için çoğul kullanabilirler (örneğin, ofis apliklerindeki iki ampul "kuzey ışığı" ve "doğu ışığı" olarak adlandırılır ancak "ışıklar" olarak da komut verilebilir).

S: Cihaz durumu ne sıklıkta güncellenir?

Y: Geçici durum, kullanıcı tarafından başlatılan işlemler olan QUERY veya EXECUTE'te alınır. Kullanıcı "Işık açık mı?" diye sorarsa veya bir ışığı açmak isterse mevcut durumu öğrenmek için bir sorgu yapmamız gerekir.


S: Home Graph'i doğrudan bir cihazın mevcut durumuyla güncellemek mümkün mü?

Y: Evet, Report State API çağrısını kullanın.


Hesap bağlama ve OAuth

Y: Evet, kullanıcının cihazlarını sağlayıcının bulut hizmetlerine bağlamak için hesap bağlama işlemi gerekir.


S: OAuth için erişim jetonlarının süresini 15.213 saatte bir sonlandırıyoruz. Bu uygun mu?

Y: Evet, ancak lütfen 10-20 dakika gibi oldukça kısa bir süre sonu seçerek test edin. OAuth istemcimiz, jetonları gerektiği gibi yenilemelidir. Bunun çalıştığını kısa bir süre sonu değeriyle test edebilirsiniz.


Niyetler

S: Senkronizasyon ne zaman gerçekleşir?

Y: SENKRONİZASYON, OAuth tamamlandıktan hemen sonra ve Senkronizasyon İste çağrısı yapıldıktan sonra gerçekleşir.


S: SYNC neden çalışmıyor?

Y: Bunun başarısız olmasının birkaç yaygın nedeni vardır.

  • Yanlış cihaz türleri gönderiyorsunuz.

    • Örneğin, action.devices.types.LIGHT göndermenizi beklerken action.devices.types.Light gönderirseniz
  • Desteklenmeyen cihaz türleri gönderiyorsunuz.

    • Örneğin, action.devices.types.FLASHLIGHT gönderiyorsunuz. Bu, desteklediğimiz bir şey değildir.
  • Geçersiz/desteklenmeyen alanlar gönderiyorsunuz.

    • Örneğin, spesifikasyonumuzda bulunmayan bir alanınız var.
  • SYNC yanıtınızla ilgili başka bir biçimlendirme sorunu var.

    • Parantezlerinizi kontrol edin.
  • Hesap bağlama sorunuyla karşılaşıyorsunuz.

    • Lütfen SYNC isteğinin Auth başlığında geçerli bir erişim jetonu aldığınızı doğrulayın.
  • SYNC isteğine yanıt vermeniz çok uzun sürüyor.

    • Lütfen SYNC isteğine 5 saniye içinde yanıt verdiğinizi doğrulayın.

S: "Beklemede" yanıtı uygun mu?

Y: Cihazlarınız gerçek zamanlı olarak kullanılabilir durumdaysa beklemede yerine başarı/başarısızlık yanıtı almayı tercih ederiz. "Beklemede" yanıta ihtiyacınız olduğunu düşünüyorsanız lütfen bizimle iletişime geçin. Düşük güçlü ve anlık olmayan bazı cihazlarda beklemede yanıt ve eşzamansız yürütme modeli gerekebileceğinin farkındayız.


Test ve Gönderim

S: Geliştirme amaçlı bir bulut ortamı oluşturabilir miyiz?

Y: Evet, kullanıma sunulmamış bir bulut ortamını ve yapılandırmasını test edebilirsiniz.


S: İşlemim Google Home uygulamasının Ev Kontrolü bölümünde görünmüyor. Ne oluyor?

Y: Bu projenin geliştiricisi olduğunuzu onaylayın.


Rapor durumu

S: Rapor Durumu'nu uygulamak için ön koşullar var mı?

Y: Projenin Smart Home API'yi kullanması, OAuth2'yi desteklemesi ve raporlanacak durumları olan özelliklere sahip olması gerekir.


S: Bir cihazın durumunu ne sıklıkta bildirmemiz gerekir?

Y: Google, geçiş ve son durumla ilgilenir. Ancak kısa süre içinde çok sayıda durum değişikliği varsa (örneğin, bir kullanıcı bir dakika içinde buzdolabını üç kez açıp kapatır veya bir dimmer'ı kaydırırsa) yalnızca son durumun bildirilmesi gerekir.


S: Durumu bildirme çağrıları yapılırken cihaz durumunun tamamının gönderilmesi gerekir mi?

Y: Kısmi durum güncellemeleri desteklenmez. Bu nedenle, Report State çağrıları her zaman güncellenen belirli bir özellik için tüm verileri içermelidir. İki özellik tutarsızlık oluşturacaksa birlikte bildirilmelidir.


S: Google, durumu öğrenmek için cihazımı sorgulayabilir mi (yani cihazı yoklayabilir mi)?

Y: Bu, önermediğimiz bir yedek mekanizmadır. Bu kullanıcılar için cihazı sık sık yoklamaya geri dönmemiz gerekirse ek yükün ne olacağını garanti edemeyiz. Bu ihtiyaç, yeni görsel yüzeylerden kaynaklanıyor. Bilinmeyen yükleme sorununa ek olarak, kullanıcı deneyimi de olumsuz etkilenir. Report State'ün platform için kritik olduğunu düşünüyoruz.


S: Rapor Durumu özelliği şu anda hangi özelliklerde destekleniyor?

Y: İlişkili durumları olan tüm herkese açık özellikler desteklenir. Cihazın online durumundaki değişiklikler de bildirilmelidir.

Sahnelerin durumlarının olmadığını unutmayın. Ancak bu işlemler cihazların durumunda değişiklik olmasına neden olabilir. Google Home Graph içindeki herhangi bir cihazın durumunda değişiklik olursa bu durum geri bildirilmelidir.


S: Rapor Durumu için zaman damgası gönderilmesi gerekir mi?

C: Zaman damgası gerekmez. Gönderilen son durum, önceki çağrıları geçersiz kılar.


S: Sorgu ve/veya Yürütme'de durumu zaten gönderiyorsam durumu ayrı olarak bildirmem gerekir mi?

Y: Home Graph yalnızca Report State üzerinden gönderilen durumu depolar. EXECUTE ve QUERY intent'lerine yanıt olarak döndürülen durum, yalnızca kullanıcıya verilen konuşma yanıtları için kullanılır ve depolanmaz. Sonuç olarak, cihazın yeni durumu bir EXECUTE veya QUERY intent'inin yanıtı olarak zaten döndürülmüş olsa bile Report State çağrılmalıdır.


S: Rapor Durumu'nun belirtilen son tarihe kadar tam olarak uygulanmaması ne gibi sonuçlar doğurur?

Y: Bu, örneğin Google Home app (GHA) ve görsel yüzeylerde kullanıcı deneyiminin kötüleşmesine neden olur. Bu, durum için ankete gönderilecek çok sayıda SORU isteğinin olacağı anlamına gelir ve bunun iş ortağı bulutunda ek yüke karşılık geleceğini garanti edemeyiz.


S: Rapor Durumu uygulamamızı nasıl test edebilirim?

Y: Home Graph'de depolanan mevcut cihaz durumlarınızı gösteren self servis bir test aracı olan Home Graph Viewer'ı kullanın.


S: Rapor durumu için rastgele bir requestId kullanabilir miyiz?

Y: Report State, EXECUTE isteği tarafından tetikleniyorsa iş ortaklarının EXECUTE isteğinden aldıkları requestId değerini kullanmalarını öneririz. Aksi takdirde rastgele bir requestId kullanabilirsiniz.


S: Bir kullanıcının birden fazla cihazı varsa ve bunlardan birinin durumu değişirse tüm cihazların son durumunu bildirmemiz gerekir mi?

Y: Hayır. Yalnızca söz konusu cihazın durumunu bildirmeniz gerekir.


En İyi Uygulamalar

S: Ne tür gecikmeler kabul edilir?

Y: 200 ms'den az idealdir, 2-5 saniye kabul edilebilir. Gecikmeniz 5 saniye civarındaysa bizimle iletişime geçin.


S: Sesli komutla çalışan hoparlörüm çevrimdışıyken nasıl düzgün yanıt vermesini sağlayabilirim?

Y: Çevrimdışı cihazlar için çevrimdışı durumunu döndürün. Bu hata için TTS olarak "şu anda kullanılamıyor" ifadesini döndürürüz. Daha fazla bilgi için Hatalar ve istisnalar başlıklı makaleyi inceleyin.