Yerel Ev SDK'sı, akıllı ev intent'lerini yönlendirecek yerel bir intent karşılama yolu ekleyerek Google Asistan ile akıllı ev entegrasyonunuzu iyileştirir.
Yerel Ev SDK'sı iki özellik sunar: Yerel yürütme ve yerel sorgu.
- Yerel yürütme, bulut API çağrısı yapmak yerine yerel karşılama yolu üzerinden
EXEC
intent'leri göndererek komutları yerine getirme olanağı sunar. Örneğin, "Işığı aç" isteği Yerel Yürütme tarafından işlenebilir. - Yerel Sorgu, yerel yerine getirme yolu üzerinden
QUERY
intent'leri göndererek cihaz durumuyla ilgili sorguları işleme olanağı sağlar. Örneğin, yerel sorgu, bulut API çağrısı yapmadan "Işığım açık mı?" sorgusunu yerine getirir.
SDK, TypeScript veya JavaScript kullanarak akıllı ev iş mantığınızı içeren yerel bir sipariş tamamlama uygulaması yazmanıza olanak tanır. Google Home veya Google Nest cihazlar, uygulamanızı cihazda yükleyip çalıştırabilir. Uygulamanız, mevcut protokoller üzerinden kullanıcı komutlarını yerine getirmek için yerel alan ağında (LAN) kablosuz bağlantı üzerinden doğrudan mevcut akıllı cihazlarınızla iletişim kurar.
SDK'nın entegrasyonu, daha düşük gecikme süresi ve daha yüksek güvenilirlik dahil olmak üzere Cloud-to-cloud entegrasyonunuzda performans iyileştirmeleri sunar. Yerel sipariş tamamlama, ikincil kullanıcı doğrulamasını kullananlar hariç tüm cihaz türleri ve cihaz özellikleri için desteklenir.
Oluşturmaya başlama Örneği deneyin
İşleyiş şeklini anlama
Yerel Home platformu, buluttan yanıt aldıktan sonra Asistan'a bağlı akıllı cihazları bulmak için mDNS, UDP yayını veya UPnP'yi kullanarak kullanıcının yerel alan ağını tarar.SYNC
Platform, IDENTIFY
yanıtındaki cihaz kimliğini önceki SYNC
yanıtı tarafından döndürülen kimliklerle karşılaştırarak cihazın yerel olarak kontrol edilip edilemeyeceğini belirlemek için bir IDENTIFY
intent'i gönderir. Algılanan cihaz bir hub veya köprüyse platform bir REACHABLE_DEVICES
intent'i gönderir ve hub'ı yerel olarak iletişim kurmak için proxy cihaz olarak değerlendirir.
Yerel bir cihazı onaylayan bir yanıt aldığında platform, kullanıcının Google Home veya Google Nest cihazına giden yerel bir karşılama yolu oluşturur ve ardından kullanıcı komutlarını yerel karşılama için yönlendirir.
Kullanıcı yerel karşılama yolu olan bir Cloud-to-cloud entegrasyonu tetiklediğinde Asistan, EXECUTE
intent'ini veya QUERY
intent'ini bulut karşılama yerine Google Home ya da Google Nest cihazına gönderir. Ardından cihaz, amacı işlemek için yerel uygulamayı çalıştırır.
Yerel Home platformu, hangi Google Home veya Google Nest cihazının komutu tetikleyeceğini seçerken kesin değildir. EXECUTE
ve QUERY
intent'leri, hedef cihazla aynı Home Graph yapısında tanımlanan herhangi bir Google Home veya Google Nest cihazı üzerinden gelebilir.
Yerel sipariş karşılama uygulaması
Yerel karşılama uygulaması, yerel ev platformu tarafından gönderilen intent'leri işlemek ve yerel alan ağı üzerinden akıllı cihazınıza erişmek için iş mantığını içerir. Yerel sipariş karşılama özelliğini entegre etmek için donanımınızda herhangi bir değişiklik yapmanız gerekmez. Uygulama, HTTP, TCP veya UDP gibi uygulama katmanı protokolleri aracılığıyla akıllı cihaza kontrol komutları göndererek Cloud-to-cloud entegrasyon isteklerini yerine getirir. Yerel sipariş tamamlama yolu başarısız olursa yedek yürütme yolu olarak bulut sipariş tamamlama işleminiz kullanılır.
Yerel Ev SDK'sı, uygulama oluşturmayı desteklemek için aşağıdaki iki ana sınıfı sağlar:
DeviceManager
: TCP, UDP soketlerini veya HTTP isteklerini kullanarak akıllı cihazlarla iletişim kurma yöntemleri sağlar.App
: Yerel olarak kontrol edilebilir cihazları (IDENTIFY
,REACHABLE_DEVICES
) keşfettikten sonra Google'ın gönderdiği intent'ler için işleyici ekleme yöntemleri sağlar. Bu sınıf ayrıca kullanıcı komutlarını yerine getirir (EXECUTE
) ve mevcut cihaz durumuyla ilgili kullanıcı sorgularını yanıtlar (QUERY
).
Geliştirme sırasında, uygulamayı kendi barındırma sunucunuza veya yerel geliştirme makinenize yükleyerek derleyip test edebilirsiniz. Google, üretimde uygulamanızı kullanıcının Google Home veya Google Nest cihazındaki güvenli bir JavaScript korumalı alanı ortamında barındırır.
Report State API'si şu anda yerel sipariş tamamlama için desteklenmemektedir. Google, bu istekleri işlemek için buluttan sipariş tamamlama hizmetinizi kullanır.
Uygulama yaşam döngüsü
Yerel Home platformu, proje tarama yapılandırmasıyla eşleşen yeni yerel cihazlar keşfettiğinde veya daha önce tanımlanmış bir cihazla ilgili yayın isteklerini beklediğinde yerel uygulamanız isteğe bağlı olarak yüklenir.
Google Home veya Google Nest cihazları bellek açısından sınırlıdır ve yerel sipariş tamamlama uygulamanız sistemdeki bellek baskısı nedeniyle herhangi bir zamanda sonlandırılabilir. Bu durum, uygulamanız çok fazla bellek kullanmaya başladığında veya sistemin başka bir uygulamaya yer açması gerektiğinde gerçekleşebilir. Yerel Home platformu, uygulamanızı yalnızca yayınlanacak yeni intent'ler olduğunda ve uygulamanın çalışması için yeterli bellek kaynağı olduğunda yeniden başlatır.
Yerel Home platformu, kullanıcı hesabının bağlantısını kaldırdığında veya kullanıcının agentUserId
ile ilişkili yerel sipariş tamamlamayı destekleyen cihaz kalmadığında, boşta kalma zaman aşımı süresinden sonra uygulamanızı kaldırır.
Desteklenen cihazlar
Yerel Ev platformu, yerel sipariş tamamlama uygulamanızı desteklenen Google Home veya Google Nest cihazlarda yürütür. Aşağıdaki tabloda, desteklenen cihazlar ve her cihazda kullanılan çalışma zamanı açıklanmaktadır. Çalışma zamanı gereksinimleri hakkında daha fazla bilgi edinmek için Yürütme ortamı başlıklı makaleyi inceleyin.
Cihaz | Tür | Ortam |
---|---|---|
Google Home | Hoparlör | Chrome |
Google Home Mini | Hoparlör | Chrome |
Google Home Max | Hoparlör | Chrome |
Nest Mini | Hoparlör | Chrome |
Nest Hub | Görüntülü Reklam Ağı | Chrome |
Nest Hub Max | Görüntülü Reklam Ağı | Chrome |
Nest Wifi | Yönlendirici | Node.js |
Nokta | Chrome |
Yürütme ortamı
Yerel sipariş tamamlama uygulamanızın yürütme ortamı cihazınıza bağlıdır. Yerel Ana Sayfa platformu aşağıdaki çalışma ortamı sürümlerini destekler:
- Chrome: Yerel sipariş tamamlama uygulamanız, ECMAScript ES2018 sürümü desteğiyle Chrome M80 veya sonraki bir sürümü çalıştıran bir Chrome tarayıcı
window
bağlamında yürütülür. - Node.js: Yerel sipariş karşılama uygulamanız, ECMAScript ES2018 sürümü desteğiyle Node v10.x LTS veya sonraki bir sürümü çalıştıran bir Node.js işleminde komut dosyası olarak yürütülür.
Kaynak kodu yapısı
Yerel Ev SDK'sı tarafından sağlanan paketleyici yapılandırmalarını kullanarak bağımlılıkları tek bir JavaScript dosyasında toplamanızı ve kaynak kodunuzu hemen çağrılan işlev ifadesi (IIFE) olarak paketlemenizi öneririz.
Uygulama yolu
Akıllı ev entegrasyonunuz için Yerel Ev SDK'sını kullanmak üzere aşağıdaki görevleri tamamlamanız gerekir:
1 | Tarama yapılandırmasını ayarlama | Asistan'ın yerel olarak kontrol edilebilir cihazları keşfetmesi için Google Home Developer Console parametresini gerekli parametrelerle yapılandırın. |
2 | Buluttan sipariş tamamlama | Bulut karşılama işleminizde, platformun yerel bir karşılama yolu oluşturmak için kullandığı
otherDeviceIds alanını desteklemek amacıyla SYNC istek işleyicisini değiştirin. Bu alanda, yerel olarak kontrol edilebilecek cihazların kimliklerini belirtin.
|
3 | Yerel sipariş tamamlama uygulamasını uygulama | IDENTIFY ,
EXECUTE ve
QUERY intent'lerini işlemek için JavaScript uygulaması oluşturmak üzere Local Home SDK'sını kullanın. Hub veya köprü proxy cihazları için REACHABLE_DEVICES intent'ini de yönetmeniz gerekir.
|
4 | Uygulamanızı test etme ve hata ayıklama | Google Home Test Suite'i kullanarak entegrasyonunuzu test edin (veya kendi kendinize sertifika verin). |
Başlamadan önce
- Cloud-to-cloud entegrasyonu oluşturma ile ilgili temel bilgilere göz atın.
- Google Home Developer Console'da, mevcut bir akıllı ev projeniz olduğundan ve hesap bağlama özelliğinin yapılandırıldığından emin olun.
- Test cihazınızdaki Developer Console ve Asistan'da aynı Google Hesabı ile giriş yaptığınızdan emin olun.
- Uygulamanızı yazmak için bir Node.js ortamına ihtiyacınız vardır. Node.js ve npm'yi yüklemek için Node Version Manager önerilir.
- Yerel Home SDK'sının en son sürümüyle çalışmak için test cihazlarınızı Cast Preview Program'a kaydetmeniz gerekir.