Cihaz keşfini destekleme

Google, yerel olarak kontrol edilebilir bir cihazı bulut sipariş tamamlamanızdan gelen SYNC yanıtında döndürülen bir cihazla eşleştirdiğinde yerel sipariş tamamlama yolu oluşturulur.

Google'ın cihazınızı yerel ağda keşfetmesini ve yerel yerine getirme yolunu oluşturmasını sağlamak için Actions konsoluna keşif bilgileri eklemeniz gerekir. Ayrıca, Google'a yerel olarak kontrol edilebilir cihaz hakkında bilgi vermek için bulut karşılama işleminizden gelen SYNC yanıtını da güncellemeniz gerekir.

Tarama yapılandırması bilgilerini ayarlama

Keşif bilgilerini belirtmek için aşağıdaki adımları uygulayın:

  1. Google Home Developer Console'da Cloud-to-cloud entegrasyonunuza gidin:

    Developer Console'a gidin.

  2. Ekranın sol tarafında Proje > Buluttan buluta'ya gidin, ardından entegrasyon için Düzenle'yi seçin. Kurulum ve yapılandırma sayfasında Yerel sipariş tamamlama'ya gidin ve ayarı etkinleştirin. Her test URL alanına aşağıdaki URL'yi girin, proje kimliğinizi ekleyin ve Kaydet'i tıklayın:

    https://<project-id>.web.app/local-home/index.html

  3. Yeni bir tarama yapılandırması eklemek için Cihaz bulma bölümünde + Tarama yapılandırması ekle'yi tıklayın.

  4. Açılır menüden bir tarama eşleştirme protokolü türü seçin ve Google'ın taraması için değerleri girin.

Aşağıdaki tablolarda, Google'ın cihazınızı taramak için kullanmasını istediğiniz protokollere göre ekleyebileceğiniz özellikler gösterilmektedir:

mDNS
Özellik Açıklama Örnek Değer
Hizmet Adı Zorunlu. Cihaz tarafından service.domain biçiminde yayınlanan hizmet adı. _http._tcp.local
Ad

Zorunlu. instance.service.domain biçiminde benzersiz bir hizmet örneği için filtreleme

Platform bu değeri normal ifade olarak değerlendirir ve eşleşen tüm cihazları döndürür.
my-device-[0-9]{4}\._http\._tcp\.local
UPnP
Özellik Açıklama Örnek Değer
Hizmet Türü Zorunlu. UPnP hizmetinin tam nitelikli tanımlayıcısı (domain:service:type:version biçiminde). schemas-upnp-org:service:SwitchPower:1
OUI

İsteğe bağlı. Kuruluş Benzersiz Tanımlayıcısı.

Cihaz üreticisini tanımlayan 24 bitlik değer. Genellikle cihaz MAC adresinin ilk üç okteti.
1A:2B:3C
UDP
Özellik Açıklama Örnek Değer
Discovery Adresi Zorunlu. UDP yayınının hedef IP adresi. 255.255.255.255
Yayın Bağlantı Noktası Zorunlu. UDP yayınının hedef bağlantı noktası. 5555
Dinleme Bağlantı Noktası Zorunlu. UDP keşif yanıtı için dinleme bağlantı noktası. 5556
Keşif Paketi

Zorunlu. UDP yayınında gönderilecek yük.

Onaltılık kodlanmış bir bayt dizesi olarak biçimlendirilir.
48454C4C4F

Cloud fulfillment'da SYNC yanıtını güncelleme

SYNC intent'i, kullanıcının hangi cihazları kontrol ettiğini ve bu cihazların özelliklerini Asistan'a bildirir.

Yerel yerine getirmeyi desteklemek için yerel Home platformu, akıllı ev işleminizin bulut yerine getirme özelliğinden gelen SYNC yanıtını kontrol eder ve otherDeviceIds alanındaki cihaz kimliklerini IDENTIFY işleyicisi tarafından döndürülen doğrulama kimliğiyle eşleştirmeye çalışır. otherDeviceIds alanı olmayan cihaz girişleri yerel sipariş karşılama işlemine dahil edilmez.

SYNC yanıtının otherDeviceIds alanında, yerel olarak kontrol edilebilen akıllı ev cihazlarının cihaz kimliklerini ayarlamanız gerekir. Alan, yanıtta device seviyesinde görünür. Google, belirtilen kimliğe sahip herhangi bir cihazda yerel bir sipariş tamamlama yolu oluşturabilir.

Google'ın bağımsız bir cihaza bağlanmak veya bir hub kullanarak son cihazları hedeflemek için ihtiyaç duyduğu ek verileri (ör. bağlantı noktası numarası ve protokole özgü diğer bilgiler) belirtmek üzere customData alanını kullanın.

Örnek

Aşağıdaki snippet'te, SYNC işleyicinizi nasıl oluşturabileceğiniz gösterilmektedir.

Bağımsız/Hub
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "agentUserId": "1836.15267389",
    "devices": [{
      "id": "123",
      "type": "action.devices.types.OUTLET",
      "traits": [
        "action.devices.traits.OnOff"
      ],
      "name": {
        "name": "Night light"
      },
      "willReportState": false,
      "otherDeviceIds": [{
        "deviceId": "local-device-id"
      }],
      "customData": {
        "port": 5555,
        "authToken": "..."
      }
    }]
  }
}