Se establece una ruta de entrega local cuando Google hace coincidir un dispositivo controlable de forma local con un dispositivo que se muestra en la respuesta SYNC de tu entrega en la nube.
Para permitir que Google descubra tu dispositivo en la red local y establezca la ruta de entrega local, debes agregar información de descubrimiento en la consola de Actions.
También debes actualizar la respuesta SYNC de tu entrega en la nube para que
Google conozca el dispositivo que se puede controlar de forma local.
Establece la información de configuración del análisis
Para especificar la información de descubrimiento, sigue estos pasos:
Ve a tu integración de Cloud-to-cloud en Google Home Developer Console:
Ve a Project > Cloud-to-cloud en el lado izquierdo de la pantalla y, luego, selecciona Edit para la integración. En la página Configuración, desplázate hasta Cumplimiento local y activa el parámetro de configuración. Ingresa la siguiente URL en cada campo de URL de prueba, inserta el ID de tu proyecto y haz clic en Guardar:
https://<project-id>.web.app/local-home/index.htmlHaz clic en + Agregar configuración de análisis en Detección de dispositivos para agregar una nueva configuración de análisis.
Selecciona un tipo de protocolo de coincidencia de análisis en el menú desplegable y, luego, ingresa los valores para que Google los analice.
En las siguientes tablas, se muestran los atributos que puedes agregar, según los protocolos que quieras que Google use para buscar tu dispositivo:
| Atributo | Descripción | Valor de ejemplo |
|---|---|---|
| Nombre del servicio |
Obligatorio. Es el nombre del servicio que publica el dispositivo en el formato
service.domain.
|
_http._tcp.local |
| Nombre |
Obligatorio. Filtra una instancia de servicio única en el
formato |
my-device-[0-9]{4}\._http\._tcp\.local |
| Atributo | Descripción | Valor de ejemplo |
|---|---|---|
| Tipo de servicio |
Obligatorio. Es el identificador completamente calificado del servicio de UPnP en el formato
domain:service:type:version.
|
schemas-upnp-org:service:SwitchPower:1 |
| OUI |
Opcional. Identificador único de organización. Es un valor de 24 bits que identifica al fabricante del dispositivo. Por lo general, son los primeros tres octetos de la dirección MAC del dispositivo. |
1A:2B:3C |
| Atributo | Descripción | Valor de ejemplo |
|---|---|---|
| Dirección de detección | Obligatorio. Es la dirección IP de destino para la transmisión de UDP. | 255.255.255.255 |
| Puerto de transmisión | Obligatorio. Es el puerto de destino para la transmisión de UDP. | 5555 |
| Puerto de escucha | Obligatorio. Es el puerto de escucha para la respuesta de descubrimiento de UDP. | 5556 |
| Paquete de descubrimiento | Obligatorio. Es la carga útil que se enviará en la transmisión UDP. Tiene el formato de una cadena de bytes codificada en formato hexadecimal. |
48454C4C4F |
Actualiza la respuesta SYNC en la entrega en la nube
El intent SYNC informa a Asistente qué dispositivos controla el usuario y sus capacidades.
Para admitir la entrega local, la plataforma de Local Home verifica la respuesta SYNC
de la entrega en la nube de tu Acción de casa inteligente y trata de hacer coincidir los IDs de dispositivo
en el campo otherDeviceIds con el ID de verificación que muestra el
controlador IDENTIFY. Las entradas de dispositivos sin un campo otherDeviceIds se excluyen del cumplimiento local.
En el campo otherDeviceIds de la respuesta SYNC, debes establecer los ID de dispositivo de los dispositivos inteligentes para la casa que se pueden controlar de forma local. El campo aparece en el nivel device
en la respuesta. Google puede establecer una ruta de entrega local en cualquier dispositivo con el ID proporcionado.
Usa el campo customData para especificar cualquier dato adicional que Google necesite para conectarse a un dispositivo independiente o para orientar dispositivos finales con un concentrador (por ejemplo, el número de puerto y otra información específica del protocolo).
Ejemplo
En el siguiente fragmento, se muestra cómo puedes crear tu controlador de 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": "..." } }] } }