Ti diamo il benvenuto nel Centro sviluppatori Google Home, la nuova destinazione per imparare a sviluppare azioni per la smart home. Nota:continuerai a creare azioni nella Console Actions.

Supporto del rilevamento dei dispositivi

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

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

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

Imposta le informazioni di configurazione della scansione

Per specificare le informazioni di rilevamento, procedi nel seguente modo:

  1. Apri il progetto della smart home nella console di Actions.
  2. Nel menu di navigazione a sinistra, fai clic su Azioni.
  3. (Facoltativo) In Configura l'SDK della home page locale > Aggiungi configurazione della scansione del dispositivo, fai clic su Nuova configurazione della scansione.
  4. Seleziona un tipo di protocollo di scansione corrispondente dal menu a discesa e inserisci i valori che Google deve analizzare.

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 in base a 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
UO

Campo facoltativo. Identificatore univoco dell'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
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 della risposta di rilevamento UDP. 5556
Pacchetto discovery

Obbligatorio. Payload per l'invio nella trasmissione UDP.

Formattata come stringa di codici esadecimale esadecimale.
48454C4C4F

Aggiorna la risposta SYNC in Cloud fulfillment

L'intent SYNC segnala all'assistente i dispositivi controllati dall'utente e le sue funzionalità.

Per supportare il fulfillment locale, la piattaforma Home Home controlla la risposta SYNC dall'evasione degli ordini cloud dell'azione nella smart home e tenta di abbinare gli ID dei dispositivi nel campo otherDeviceIds all'ID di verifica restituito dal gestore IDENTIFY. Le voci del dispositivo senza un campo otherDeviceIds sono escluse dalla distribuzione locale.

Nel campo otherDeviceIds della risposta SYNC devi impostare gli ID dei dispositivi per la smart home che possono essere controllati localmente. Il campo viene visualizzato a livello di 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 che Google deve collegare a un dispositivo autonomo oppure per scegliere come target i dispositivi finali tramite un hub (ad esempio, il numero di porta e altre informazioni specifiche del protocollo).

Esempio

Il seguente snippet mostra come potresti creare il tuo gestore SYNC.

In modalità autonoma/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": "..."
      }
    }]
  }
}