Yerel sipariş karşılama

Yerel Ev SDK, 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'si çağrısı yapmak yerine EXECintent'leri yerel karşılama yolu üzerinden göndererek komutları karşılama olanağı sağlar. Örneğin, "Işığı aç" isteği LocalExecution tarafından işlenebilir.
  • Yerel Sorgu, yerel karşılama yolu üzerinden QUERY amaçlarını göndererek cihaz durumuyla ilgili sorguları işleme olanağı sağlar. Örneğin, Yerel Sorgu, "Işığım açık mı?" sorgusunu bulut API çağrısı yapmadan karşılar.

SDK, akıllı ev işletme mantığınızı içeren, TypeScript veya JavaScript kullanarak yerel karşılama uygulaması yazmanıza olanak tanır. Google Home veya Google Nest cihazları, uygulamanızı cihazda yükleyip çalıştırabilir. Uygulamanız, kullanıcı komutlarını yerine getirmek için mevcut protokoller üzerinden yerel alan ağındaki (LAN) kablosuz bağlantı aracılığıyla mevcut akıllı cihazlarınızla doğrudan iletişim kuruyor.

SDK'nın entegrasyonu, Cloud-to-cloud entegrasyonunuzda daha düşük gecikme süresi ve daha yüksek güvenilirlik gibi performans iyileştirmeleri sunar. Yerel karşılama, ikincil kullanıcı doğrulaması kullananlar hariç tüm cihaz türleri ve cihaz özellikleri için desteklenir.

Oluşturmaya başlama Örneği deneyin

İşleyiş şeklini anlama

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

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 edilebilir olup olmadığını belirlemek için bir IDENTIFY intent'i gönderir. Algılanan cihaz bir hub veya köprü ise platform, REACHABLE_DEVICES amaçlı bir işlem gönderir ve hub'ı yerel olarak iletişim kurmak için proxy cihaz olarak ele alır.

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

Bir kullanıcı, yerel bir intent karşılama yolu olan Cloud-to-cloud entegrasyonunu tetiklediğinde Asistan, bulut intent karşılama yerine EXECUTE veya QUERY intent'ini Google Home ya da Google Nest cihazına gönderir. Ardından cihaz, amacı işlemek için yerel 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'ın yüklü olduğu bir telefonda kullanıcının amacını yakalar. Ardından, kullanıcı amacı Google Cloud tarafından işlenir, Google Home cihazında yerel olarak yürütülür ve komut doğrudan cihaz hub'ına veya cihaza verilir. Geliştirici bulutu, bulut yedeklemesi olarak kullanılabilir.
Şekil 1: Akıllı eviniz için yerel bir intent karşılama yolu ekleme İşlem.

Yerel Ev platformu, komutu tetikleyecek Google Home veya Google Nest cihazını seçerken belirleyici değildir. EXECUTE ve QUERY amaçları, 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 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 gereken işletme mantığını içerir. Yerel karşılama özelliğini entegre etmek için donanımınızda değişiklik yapmanız beklenmez. Uygulama, HTTP, TCP veya UDP gibi uygulama katmanı protokolleri aracılığıyla akıllı cihaza kontrol komutları göndererek Cloud-to-cloud entegrasyon isteklerini karşılar. Yerel karşılama yolu başarısız olursa yedek yürütme yolu olarak bulut karşılama kullanılır.

Yerel Ev SDK'sı, uygulamanın oluşturulmasını desteklemek için şu iki ana sınıfı sağlar:

  • DeviceManager: TCP, UDP yuvaları veya HTTP isteklerini kullanarak akıllı cihazlarla iletişim kurma yöntemleri sağlar.
  • App: Google'ın yerel olarak kontrol edilebilir cihazları (IDENTIFY, REACHABLE_DEVICES) keşfettikten sonra gönderdiği amaçlar için işleyiciler ekleme yöntemleri sağlar. Bu sınıf, kullanıcı komutlarını (EXECUTE) da yerine getirir ve kullanıcının mevcut cihaz durumuyla ilgili sorgularını (QUERY) yanıtlar.

Geliştirme sırasında, uygulamayı kendi barındırma sunucunuza veya yerel geliştirme makinenize yükleyerek oluşturup test edebilirsiniz. Google, üretimde uygulamanızı kullanıcının Google Home veya Google Nest cihazında güvenli bir JavaScript sanal 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 üzerinden sipariş karşılama hizmetinize güvenir.

Uygulama yaşam döngüsü

Yerel karşılama uygulamanız, 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 teslim edilecek bekleyen amaçlar olduğunda isteğe bağlı olarak yüklenir.

Google Home veya Google Nest cihazlarında bellek sınırlaması vardır ve sistemdeki bellek baskısı nedeniyle yerel karşılama uygulamanız herhangi bir zamanda sonlandırılabilir. Bu durum, uygulamanız çok fazla bellek tüketmeye başladığında veya sistemin başka bir uygulama için yer açması gerektiğinde ortaya çıkabilir. Yerel Ev platformu, uygulamanızı yalnızca iletilecek yeni amaçlar olduğunda ve uygulamanın çalışması için yeterli bellek kaynağı bulunduğunda yeniden başlatır.

Yerel Ev platformu, 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 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 cihazlarda ç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 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, window Chrome M80 veya sonraki sürümlerin çalıştığı bir Chrome tarayıcının bağlamında yürütülür. Bu sürümlerde ECMAScript sürümü ES2018 desteklenir.
  • Node.js: Yerel istek karşılama uygulamanız, Node v10.x LTS veya sonraki sürümlerin çalıştığı bir Node.js sürecinde ECMAScript sürümü ES2018 desteğiyle birlikte komut dosyası olarak yürütülür.

Kaynak kodu yapısı

Bağımlılıklarınızı Local Home SDK'nın sağladığı paketleyici yapılandırmalarını kullanarak tek bir JavaScript dosyasında paketlemenizi 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 istiyorsanız aşağıdaki görevleri yerine getirmeniz gerekir:

1 Tarama yapılandırmasını ayarlama Asistan'ın yerel olarak kontrol edilebilen cihazları bulabilmesi için Google Home Developer Console öğesini gerekli parametrelerle yapılandırın.
2 Bulut karşılamanızdaki SYNC yanıtını güncelleme Bulut üzerinden karşılamanızda, platformun yerel karşılama yolu oluşturmak için kullandığı otherDeviceIds alanını destekleyecek şekilde SYNC istek işleyicisini değiştirin. Bu alanda, yerel olarak kontrol edilebilen cihazların kimliklerini belirtin.
3 Yerel karşılama uygulamasını uygulama IDENTIFY, EXECUTE ve QUERY amaçlarını işlemek için JavaScript uygulaması oluşturmak üzere Local Home SDK'yı kullanın. Merkez 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 Paketi'ni kullanarak entegrasyonunuzu test edin (veya kendi kendinize sertifika verin).

Başlamadan önce