Cihaz keşfini destekleme

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

Google'ın cihazınızı yerel ağda keşfedebilmesi ve yerel karşılama yolunu oluşturabilmesi için Actions Console'a keşif bilgileri eklemeniz gerekir. Ayrıca, Google'a yerel olarak kontrol edilebilen cihaz hakkında bilgi vermek için bulut karşılama hizmetinizden gelen SYNC yanıtını da güncellemeniz gerekir.

Tarama yapılandırma bilgilerini ayarlama

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

  1. Cloud-to-cloud bölümünde Google Home Developer Console 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 karşılama'ya gidin ve ayarı etkinleştirin. Her test URL'si 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 keşfi bölümünde + Tarama yapılandırması ekle'yi tıklayın.

  4. Açılır listeden bir tarama eşleme protokolü türü seçin ve Google'ın taraması için değerler 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çimindeki benzersiz bir hizmet örneği için filtre.

Platform, bu değeri normal ifade olarak değerlendirir ve eşleşen 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 tanımlayıcısı domain:service:type:version biçimindedir. 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ın MAC adresinin ilk üç sekizlisi.
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ı için 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ıyla gönderilecek yük.

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

Bulut üzerinden karşılama işleminde SYNC yanıtını güncelleme

SYNC amaçlı görev raporları, kullanıcının kontrol ettiği cihazları ve bu cihazların özelliklerini Asistan'a bildirir.

Yerel karşılama özelliğini desteklemek için Yerel Ev platformu, akıllı ev işleminizin bulut karşılama ö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 karşılama kapsamı dışında tutulur.

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ıttaki device düzeyinde görünür. Google, belirtilen kimliğe sahip herhangi bir cihazda yerel karşılama 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 için 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": "..."
      }
    }]
  }
}