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:
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 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
Fai clic su + Aggiungi configurazione 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 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:
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 |
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 a 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 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
.
{ "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": "..." } }] } }