Yerel sipariş karşılama

Local Home SDK'sı, akıllı ev amaçları için yerel bir sipariş karşılama yolu ekleyerek akıllı ev entegrasyonunuzu Google Asistan ile iyileştirir.

SDK, TypeScript veya JavaScript kullanarak akıllı ev iş mantığınızı içeren yerel bir sipariş 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, mevcut protokoller üzerinden kullanıcı komutlarını yerine getirmek için bir yerel ağ (LAN) üzerinden kablosuz ağ üzerinden mevcut akıllı cihazlarınızla doğrudan iletişim kurar.

SDK'nın entegrasyonu, akıllı ev işleminize daha düşük gecikme ve daha yüksek güvenilirlik gibi performans iyileştirmeleri sunar. Yerel istek karşılama, ikincil kullanıcı doğrulaması kullananlar hariç tüm cihaz türleri ve cihaz özellikleri için desteklenir.

Derlemeye başlayın Örneği deneyin

İşleyiş şeklini anlayın

Yerel Ev platformu, bulut karşılamanızdan bir SYNC yanıtı aldıktan sonra, Asistan'a bağlı akıllı cihazları keşfetmek için mDNS, UDP yayını veya UPnP'yi kullanarak kullanıcının yerel alan ağını tarar.

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 edilebilir olup olmadığını belirlemek için bir IDENTIFY amacı gönderir. Algılanan cihaz bir merkez veya köprü ise platform bir REACHABLE_DEVICES amacı gönderir ve merkezi, yerel iletişim için proxy cihaz olarak değerlendirir.

Yerel cihazı onaylayan bir yanıt aldığında platform, kullanıcının Google Home veya Google Nest cihazına giden yerel bir sipariş karşılama yolu oluşturur ve ardından kullanıcı komutlarını yerel istek karşılama için yönlendirir.

Bir kullanıcı, yerel sipariş karşılama yolu olan bir akıllı ev işlemini tetiklediğinde Asistan, EXECUTE niyetini veya QUERY amacını bulut istek karşılama yerine Google Home veya Google Nest cihazına gönderir. Cihaz, amacı işlemek için yerel istek karşılama uygulamasını çalıştırır.

Bu şekilde, yerel sipariş karşılama için yürütme akışı gösterilmektedir. Yürütme yolu, Google Asistan yüklü bir telefondan kullanıcının niyetini yakalar, ardından kullanıcının niyeti Google Cloud tarafından işlenir, ardından Google Home cihazında yerel olarak yürütülür ve komut doğrudan cihaz merkezine veya doğrudan cihaza gönderilir. Geliştirici bulutu, yedek olarak kullanılabilir.
Şekil 1: Akıllı ev İşleminiz için yerel sipariş karşılama yolu ekleme.

Yerel Home platformu, komutu hangi Google Home veya Google Nest cihazının tetikleyeceği konusunda belirleyici değildir. EXECUTE ve QUERY amaçları, hedef cihazla aynı Home Graph yapısında tanımlanmış herhangi bir Google Home veya Google Nest cihazından gelebilir.

Yerel sipariş karşılama uygulaması

Yerel sipariş karşılama uygulaması, Yerel Ev platformu tarafından gönderilen amaçları işlemek ve akıllı cihazınıza yerel ağ üzerinden erişmek için iş mantığını içerir. Yerel istek karşılamayı entegre etmek için donanımınızda herhangi bir değişiklik yapılması beklenmez. Uygulama; HTTP, TCP veya UDP gibi uygulama katmanı protokolleri üzerinden akıllı cihaza kontrol komutları göndererek akıllı ev işlemi isteklerini karşılar. Yerel sipariş karşılama yolunun başarısız olması durumunda bulut sipariş karşılama işleminiz bir yedek yürütme yolu olarak kullanılır.

Local Home SDK, uygulamanın geliştirilmesini desteklemek için şu iki temel sınıfı sağlar:

  • DeviceManager: TCP, UDP yuvaları veya HTTP istekleri kullanarak akıllı cihazlarla iletişim kurmak için yöntemler sağlar.
  • App: Google'ın yerel olarak kontrol edilebilen cihazları (IDENTIFY, REACHABLE_DEVICES) keşfettikten sonra gönderdiği amaçlar için işleyici ekleme yöntemleri sunar. Bu sınıf, kullanıcı komutlarını da (EXECUTE) ve geçerli cihaz durumundaki (QUERY) kullanıcı sorgularını yanıtlar.

Geliştirme sırasında uygulamayı kendi barındırma sunucunuza veya yerel geliştirme makinenize yükleyerek derleyip test edebilirsiniz. Üretimde Google, uygulamanızı kullanıcının Google Home veya Google Nest cihazındaki güvenli bir JavaScript korumalı alanda barındırır.

Report State API'si şu anda yerel istek karşılama için desteklenmemektedir. Google, bu istekleri işlemek için buluttaki karşılamanıza güvenir.

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 olarak teslim edilmeyi bekleyen niyetler olduğunda yerel sipariş karşılama uygulamanız isteğe bağlı olarak yüklenir.

Google Home veya Google Nest cihazlarda bellek kısıtlaması vardır ve sistemdeki bellek baskısı nedeniyle yerel istek karşılama uygulamanız herhangi bir anda sonlandırılabilir. Uygulamanız çok fazla bellek kullanmaya başlarsa veya sistemin başka bir uygulamaya yer açması gerekirse bu durum meydana gelebilir. Local Home platformu, uygulamanızı yalnızca yayınlanacak yeni amaçlar 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 artık kullanıcının agentUserId cihazıyla ilişkilendirilmiş yerel karşılamayı destekleyen cihaz kalmadığında Yerel Home platformu, boşta kalma zaman aşımı süresinden sonra uygulamanızı kaldırır.

Desteklenen cihaz sayısı

Yerel Ev platformu, yerel sipariş karşılama 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 için Yürütme ortamı bölümüne bakın.

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 istek karşılama uygulamanızın yürütme ortamı cihazınıza bağlıdır. Yerel Home platformu aşağıdaki çalışma zamanı ortamlarını destekler:

  • Chrome: Yerel istek karşılama uygulamanız, Chrome M80 veya sonraki bir sürümü çalıştıran ve ECMAScript ES2018 destekli Chrome tarayıcı window bağlamında yürütülür.
  • Node.js: Yerel istek karşılama uygulamanız, Node v10.x LTS veya ECMAScript ES2018 sürümünü destekleyen bir Node.js işleminde komut dosyası olarak yürütülür.

Kaynak kodu yapısı

Bağımlılıklarınızı Yerel Home SDK'nın sağladığı paketleyici yapılandırmalarını kullanarak tek bir JavaScript dosyasında toplamanızı ve kaynak kodunuzu Hemen çağrılan İşlev İfadesi (IIFE) olarak paketlemenizi öneririz.

Uygulama yolu

Akıllı ev entegrasyonunuz için Local Home SDK'yı kullanmak istiyorsanız aşağıdaki görevleri gerçekleştirmeniz gerekir:

1 Tarama yapılandırmasını ayarlayın Asistan'ın yerel olarak kontrol edilebilen cihazları keşfetmesi için gerekli parametrelerle Actions konsolunu yapılandırın.
2 Bulut istek karşılamanızdaki SYNC yanıtını güncelleme Bulut karşılamanızda SYNC istek işleyicisini, platformun yerel istek karşılama yolu oluşturmak için kullandığı otherDeviceIds alanını destekleyecek şekilde değiştirin. Bu alanda, yerel olarak kontrol edilebilen cihazların kimliklerini belirtin.
3 Yerel sipariş karşılama uygulamasını uygulayın IDENTIFY, EXECUTE ve QUERY amaçlarını işlemek üzere JavaScript uygulaması oluşturmak için Yerel Home SDK'yı kullanın. Hub veya köprü proxy cihazları için REACHABLE_DEVICES amacını da işlemeniz gerekir.
4 Uygulamanızı test etme ve hatalarını ayıklama Google Home Test Suite'i kullanarak entegrasyonunuzu test edin (veya içerik üretici onayı alın).

Başlamadan önce