Supporto del rilevamento dei dispositivi

Un percorso di completamento locale viene stabilito quando Google associa un dispositivo controllabile localmente a un dispositivo restituito in SYNC dalla tua distribuzione Cloud.

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

Configura le informazioni di configurazione della scansione

Per specificare le informazioni di rilevamento, segui questi passaggi:

  1. Apri il progetto per la smart home nella console Actions.
  2. Nel menu di navigazione a sinistra, fai clic su Azioni.
  3. In Configura l'SDK della casa locale (facoltativo) > Aggiungi la configurazione della scansione dei dispositivi e fai clic su Nuova configurazione della scansione.
  4. Seleziona un tipo di protocollo di corrispondenza della scansione dal menu a discesa e inserisci i valori per Google per eseguire la scansione.

Le seguenti tabelle 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 per un'istanza di servizio univoca nella formato instance.service.domain.

La piattaforma tratta questo valore come un'espressione regolare e restituisce qualsiasi dispositivi corrispondenti.
my-device-[0-9]{4}\._http\._tcp\.local
di Gemini Advanced.
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) Codice identificativo a livello di organizzazione.

Valore a 24 bit che identifica il produttore del dispositivo. In genere, i primi tre ottetti dell'indirizzo MAC del dispositivo.
1A:2B:3C
di Gemini Advanced.
UDP
Attributo Descrizione Valore di esempio
Indirizzo di trasmissione 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 Discovery

Obbligatorio. Payload da inviare nella trasmissione UDP.

Formattata come stringa di byte con codifica esadecimale.
48454C4C4F

Aggiornamento della risposta SYNC nel fulfillment cloud

L'intent SYNC segnala l'intenzione Assistente per quali dispositivi vengono controllati dall'utente e quali sono le relative funzionalità.

Per supportare l'evasione degli ordini locale, la piattaforma Home locale controlla la risposta SYNC dalla distribuzione cloud dell'azione per la smart home e prova ad abbinare ID nel campo otherDeviceIds all'ID verifica restituito dalla Gestore IDENTIFY. Le voci relative ai dispositivi senza un campo otherDeviceIds sono escluso dall'evasione degli ordini locale.

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

Utilizza il campo customData per specificare eventuali dati aggiuntivi di cui Google ha bisogno connettersi a un dispositivo autonomo o scegliere come target dispositivi finali tramite un hub (ad esempio, il numero di porta e altre informazioni specifiche di protocollo).

Esempio

Il seguente snippet mostra come creare il gestore SYNC.

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