Un percorso di evasione locale viene stabilito quando Google associa un dispositivo controllabile localmente
a un dispositivo restituito nella risposta SYNC
del tuo cloud fulfillment.
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 Actions.
Devi anche aggiornare la risposta SYNC
del tuo cloud fulfillment per informare Google del dispositivo controllabile localmente.
Configura le informazioni sulla configurazione della scansione
Per specificare le informazioni sul rilevamento:
Vai all'integrazione di Cloud-to-cloud in Google Home Developer Console:
Vai a Progetto > Cloud-to-cloud sul lato sinistro dello schermo, quindi seleziona Modifica per l'integrazione. Nella pagina Impostazione e configurazione, scorri fino a Esecuzione locale e attiva l'impostazione. Inserisci il seguente URL in ogni campo URL di test, inserisci il tuo ID progetto e fai clic su Salva:
https://<project-id>.web.app/local-home/index.html
Fai clic su + Aggiungi configurazione di scansione in Rilevamento dispositivi per aggiungere una nuova configurazione di scansione.
Seleziona un tipo di protocollo di corrispondenza della scansione dal menu a discesa e inserisci i valori da eseguire la scansione da parte di Google.
Le tabelle seguenti mostrano gli attributi che puoi aggiungere in base ai protocolli che vuoi che Google utilizzi per cercare il tuo dispositivo:
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 nel
formato |
my-device-[0-9]{4}\._http\._tcp\.local |
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 di 24 bit che identifica il produttore del dispositivo. In genere, i primi tre ottetti dell'indirizzo MAC del dispositivo. |
1A:2B:3C |
Attributo | Descrizione | Valore di esempio |
---|---|---|
Indirizzo discovery | 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. Formattato come stringa di byte con codifica esadecimale. |
48454C4C4F |
Aggiorna la risposta SYNC nell'implementazione nel cloud
L'intent SYNC
comunica all'assistente i dispositivi controllati dall'utente e le relative funzionalità.
Per supportare il completamento locale, la piattaforma Local Home controlla la risposta SYNC
del completamento sul cloud dell'azione per la smart home e tenta di abbinare gli ID dispositivo nel campo otherDeviceIds
all'ID verifica restituito dall'IDENTIFY
gestore. Le voci dei dispositivi senza un campo otherDeviceIds
sono escluse dall'evasione degli ordini locali.
Nel
otherDeviceIds
campo 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 degli ordini locale su qualsiasi dispositivo con
l'ID specificato.
Utilizza il campo customData
per specificare eventuali dati aggiuntivi di cui Google ha bisogno per collegarsi a un dispositivo autonomo o per scegliere come target i dispositivi di destinazione utilizzando un hub (ad esempio il numero di porta e altre informazioni specifiche del protocollo).
Esempio
Lo snippet seguente mostra come creare l'handler SYNC
.
{ "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": "..." } }] } }