Yerel sipariş karşılama

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.

Bu şekil, yerel sipariş karşılama için yürütme akışını gösterir. Yürütme yolu, Google Asistan'ın bulunduğu bir telefondan 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 merkezine veya doğrudan cihaza gönderilir. Geliştirici bulutu, bulut yedeği olarak kullanılabilir.
Şekil 1: Akıllı ev işleminiz için yerel bir intent karşılama yolu ekleme.

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