Supporto del rilevamento dei dispositivi

Un percorso di evasione locale viene stabilito quando Google associa un dispositivo controllabile localmente a un dispositivo restituito nella risposta SYNC dell'evasione cloud.

Per consentire a Google di rilevare il tuo dispositivo sulla rete locale e stabilire il percorso di evasione locale, devi aggiungere le informazioni di rilevamento nella console Actions. Devi anche aggiornare la risposta SYNC del tuo fulfillment cloud per comunicare a Google il dispositivo controllabile localmente.

Configurare le informazioni sulla configurazione di scansione

Per specificare le informazioni di rilevamento:

  1. Vai all'integrazione di Cloud-to-cloud in Google Home Developer Console:

    Vai a Google Play Console.

  2. Vai a Progetto > Cloud-to-cloud sul lato sinistro dello schermo, quindi seleziona Modifica per l'integrazione. Nella pagina Configurazione, scorri fino a Evasione locale e attiva l'impostazione. Inserisci il seguente URL in ogni campo dell'URL di test, inserisci l'ID progetto e fai clic su Salva:

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

  3. Fai clic su + Aggiungi configurazione scansione in Rilevamento dispositivi per aggiungere una nuova configurazione di scansione.

  4. Seleziona un tipo di protocollo di corrispondenza della scansione dal menu a discesa e inserisci i valori da scansionare da Google.

Le tabelle seguenti mostrano gli attributi che puoi aggiungere in base ai protocolli che vuoi che Google utilizzi per cercare il tuo dispositivo:

mDNS
Attributo Descrizione Valore di esempio
Nome servizio Obbligatorio. Nome del servizio pubblicato dal dispositivo nel formato service.domain. _http._tcp.local
Nome

Obbligatorio. Filtra un'istanza di servizio univoca nel formato instance.service.domain.

La piattaforma considera questo valore come un'espressione regolare e restituisce tutti i dispositivi corrispondenti.
my-device-[0-9]{4}\._http\._tcp\.local
UPnP
Attributo Descrizione Valore di esempio
Tipo di servizio Obbligatorio. Identificatore completo del servizio UPnP nel formato domain:service:type:version. schemas-upnp-org:service:SwitchPower:1
OUI

(Facoltativo) Organizationally Unique Identifier.

Valore a 24 bit che identifica il produttore del dispositivo. In genere, i primi tre ottetti dell'indirizzo MAC del dispositivo.
1A:2B:3C
UDP
Attributo Descrizione Valore di esempio
Indirizzo di rilevamento Obbligatorio. Indirizzo IP di destinazione per la trasmissione UDP. 255.255.255.255
Porta di trasmissione Obbligatorio. Porta di destinazione per la trasmissione UDP. 5555
Porta di ascolto Obbligatorio. Porta di ascolto per la risposta di rilevamento UDP. 5556
Pacchetto di scoperta

Obbligatorio. Payload da inviare nella trasmissione UDP.

Formattato come stringa di byte con codifica esadecimale.
48454C4C4F

Aggiorna la risposta SYNC nel fulfillment cloud

I report sull'intent SYNC comunicano all'assistente quali dispositivi controlla l'utente e le relative funzionalità.

Per supportare l'evasione locale, la piattaforma Local Home controlla la risposta SYNC dell'evasione cloud dell'azione per la smart home e tenta di abbinare gli ID dispositivo nel campo otherDeviceIds all'ID di verifica restituito dal gestore IDENTIFY. Le voci dei dispositivi senza un campo otherDeviceIds sono escluse dall'evasione locale.

Nel campo otherDeviceIds della risposta SYNC, devi impostare gli ID dispositivo degli smart home device che possono essere controllati localmente. Il campo viene visualizzato a livello device nella risposta. Google può stabilire un percorso di evasione locale su qualsiasi dispositivo con l'ID specificato.

Utilizza il campo customData per specificare eventuali dati aggiuntivi necessari a Google per connettersi a un dispositivo autonomo o per scegliere come target i dispositivi finali utilizzando un hub (ad esempio il numero di porta e altre informazioni specifiche del protocollo).

Esempio

Il seguente snippet mostra come creare il gestore SYNC.

Standalone/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": "..."
      }
    }]
  }
}