Local Home SDK, akıllı ev intent'lerini yönlendirecek yerel bir intent karşılama yolu ekleyerek Google Asistan ile akıllı ev entegrasyonunuzu iyileştirir.
Local Home SDK, 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
EXECintent'ler göndererek komutları yerine getirme olanağı sağlar. Örneğin, "Işığı aç" isteği Yerel Yürütme tarafından işlenebilir. - Yerel Sorgu, yerel yerine getirme yolu üzerinden
QUERYintent'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, akıllı ev işletme mantığınızı içeren TypeScript veya JavaScript kullanarak yerel bir karşılama uygulaması yazmanıza olanak tanır. Google Home veya Google Nest cihazları, uygulamanızı cihaz üzerinde yükleyip çalıştırabilir. Uygulamanız, kullanıcı komutlarını yerine getirmek için mevcut protokoller üzerinden yerel ağda (LAN) kablosuz bağlantı aracılığıyla mevcut akıllı cihazlarınızla doğrudan 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 sağlar. Yerel karşılama, ikincil kullanıcı doğrulaması kullananlar hariç tüm cihaz türleri ve cihaz özellikleri için desteklenir.
Oluşturmaya başlayın Örneği deneyin
İşleyiş şekli
Yerel Ev platformu, bulut entegrasyonunuzdan SYNC yanıtı aldıktan sonra mDNS, UDP yayını veya UPnP kullanarak kullanıcının yerel ağını tarar ve Asistan'a bağlı akıllı cihazları bulur.
Platform, IDENTIFY yanıtındaki cihaz kimliğini önceki SYNC yanıtında döndürülenlerle 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ü ise platform, bir REACHABLE_DEVICES intent'i gönderir ve hub'ı yerel olarak iletişim kurmak için proxy cihaz olarak değerlendirir.
Platform, yerel bir cihazı onaylayan bir yanıt aldığında kullanıcının Google Home veya Google Nest cihazına yerel bir karşılama yolu oluşturur ve ardından yerel karşılama için kullanıcı komutlarını yönlendirir.
Kullanıcı, yerel intent karşılama yolu olan bir Cloud-to-cloud entegrasyonunu tetiklediğinde Asistan, bulut intent karşılama yerine Google Home veya Google Nest cihazına EXECUTE intent'ini ya da QUERY intent'ini gönderir. Ardından cihaz, amacı işlemek için yerel karşılama uygulamasını çalıştırır.
Yerel Ev platformu, komutu tetikleyecek Google Home veya Google Nest cihazını seçerken belirleyici 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ından gelebilir.
Yerel sipariş karşılama uygulaması
Yerel intent karşılama uygulaması, Local Home platformu tarafından gönderilen intent'leri işlemek ve yerel ağ üzerinden akıllı cihazınıza erişmek için işletme mantığını içerir. Yerel sipariş karşılamayı entegre etmek için donanımınızda 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 karşılama yolunun başarısız olması durumunda bulut karşılamanız yedek yürütme yolu olarak kullanılır.
Local Home SDK, uygulamanın oluşturulmasını desteklemek için şu iki ana sınıfı sağlar:
DeviceManager: TCP, UDP soketleri veya HTTP isteklerini kullanarak akıllı cihazlarla iletişim kurma yöntemleri sağlar.App: Yerel olarak kontrol edilebilen cihazları (IDENTIFY,REACHABLE_DEVICES) keşfettikten sonra Google'ın gönderdiği intent'ler için işleyiciler ekleme yöntemleri sağlar. Bu sınıf, kullanıcı komutlarını da yerine getirir (EXECUTE) ve mevcut cihaz durumuyla ilgili kullanıcı sorgularını yanıtlar (QUERY).
Geliştirme aşamasında, uygulamayı kendi barındırma sunucunuza veya yerel geliştirme makinenize yükleyerek derleyip test edebilirsiniz. Üretim aşamasında Google, 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 şu anda yerel karşılama için desteklenmemektedir. Google, bu istekleri işlemek için bulut sipariş karşılamanızı kullanır.
Uygulama yaşam döngüsü
Yerel ev platformu, proje tarama yapılandırmasıyla eşleşen yeni yerel cihazlar keşfettiğinde veya daha önce tanımlanmış bir cihazla ilgili beklemede olan intent'leri olduğunda yerel karşılama uygulamanız isteğe bağlı olarak yüklenir.
Google Home veya Google Nest cihazlarının bellek kapasitesi sınırlıdır ve yerel karşılama uygulamanız, sistemdeki bellek baskısı nedeniyle herhangi bir zamanda sonlandırılabilir. Bu durum, uygulamanız çok fazla bellek tüketmeye başlarsa veya sistemin başka bir uygulama için yer açması gerekiyorsa ortaya çıkabilir. Yerel Ev platformu, uygulamanızı yalnızca yayınlanacak yeni intent'ler ve uygulamanın çalışması için yeterli bellek kaynağı olduğunda yeniden başlatır.
Kullanıcı hesabının bağlantısını kaldırdığında veya kullanıcının agentUserId ile ilişkili yerel karşılamayı destekleyen cihaz kalmadığında Local Home platformu, boşta kalma zaman aşımından sonra uygulamanızı kaldırır.
Desteklenen cihazlar
Yerel Ev platformu, yerel karşılama uygulamanızı desteklenen Google Home veya Google Nest cihazlarında çalıştırı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ş karşılama uygulamanızın yürütme ortamı, cihazınıza bağlıdır. Yerel Ev platformu aşağıdaki çalışma zamanı ortamlarını destekler:
- Chrome: Yerel karşılama uygulamanız, ECMAScript sürüm ES2018'i destekleyen Chrome M80 veya sonraki sürümleri çalıştıran bir Chrome tarayıcı
windowbağlamında yürütülür. - Node.js: Yerel karşılama uygulamanız, ECMAScript sürüm ES2018 desteğiyle Node v10.x LTS veya sonraki sürümleri çalıştıran bir Node.js işlemi içinde komut dosyası olarak yürütülür.
Kaynak kodu yapısı
Local Home SDK tarafından sağlanan paketleyici yapılandırmalarını kullanarak bağımlılıklarınızı tek bir JavaScript dosyasında birleştirmenizi ve kaynak kodunuzu Hemen Çağrılan İşlev İfadesi (IIFE) olarak paketlemenizi öneririz.
Uygulama yolu
Akıllı ev entegrasyonunuz için Yerel Ev SDK'sını kullanmak istiyorsanız aşağıdaki görevleri yerine getirmeniz gerekir:
| 1 | Tarama yapılandırmasını ayarlama | Asistan'ın yerel olarak kontrol edilebilen cihazları keşfetmesi için Google Home Developer Console öğesini gerekli parametrelerle yapılandırın. |
| 2 | Bulut entegrasyonunuzdaki SYNC yanıtını güncelleme | Bulut karşılama hizmetinizde, platformun yerel karşılama yolu oluşturmak için kullandığı
otherDeviceIds alanını desteklemek üzere SYNC istek işleyicisini değiştirin. Bu alanda, yerel olarak kontrol edilebilecek cihazların kimliklerini belirtin.
|
| 3 | Yerel sipariş karşılama uygulamasını uygulama | IDENTIFY,
EXECUTE ve
QUERY intent'lerini işlemek için Local Home SDK'yı kullanarak bir JavaScript uygulaması oluşturun. Merkez veya köprü proxy cihazları için REACHABLE_DEVICES intent'ini de işlemeniz gerekir.
|
| 4 | Uygulamanızı test etme ve hatalarını ayıklama | Google Home Test Paketi'ni kullanarak entegrasyonunuzu test edin (veya içerik üretici onayı alın). |
Başlamadan önce
- Cloud-to-cloud entegrasyonu oluşturmanın temel bilgileri hakkında bilgi edinin.
- Google Home Developer Console'da mevcut bir akıllı ev projeniz olduğundan ve hesap bağlamanın 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 Node.js ortamına ihtiyacınız vardır. Node.js ve npm'yi yüklemek için Node Version Manager kullanmanız önerilir.
- Local Home SDK'nın en yeni sürümüyle çalışmak için test cihazlarınızı Cast Önizleme Programı'na kaydetmeniz gerekir.