Yerel sipariş karşılama

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 EXEC intent'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 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, 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.

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

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ı window bağ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