Preguntas frecuentes sobre la casa inteligente

General

P.: ¿Dónde y en qué idioma debemos implementar nuestra infraestructura de Cloud-to-cloud fulfillment?

R.: Siempre y cuando admita SSL (TLS) y OAuth 2.0 modernos, puedes implementar tu infraestructura en cualquier plataforma y en cualquier idioma que elijas. Te recomendamos que realices la implementación lo más cerca posible del resto de tu infraestructura para mejorar la confiabilidad y reducir la latencia de la ejecución en los dispositivos de los usuarios reales.


P.: ¿Los IDs de dispositivo deben ser únicos?

R.: Los IDs deben ser únicos. Si no tienes IDs únicos en todo tu servicio, deben ser únicos al menos a nivel de cada usuario. Imagina un usuario con varias casas, en las que ambas tienen integraciones con el mismo usuario. Pedir que se encienda una luz en una casa no debería encender una luz con el mismo ID en otra casa.


P.: ¿Los nombres de los dispositivos deben ser únicos?

R.: Los nombres no tienen que ser únicos, aunque, con el tiempo, es posible que les pidamos a las personas que mejoren los nombres inadecuados después de la configuración para brindar una mejor experiencia del usuario.

Aquí tienes una guía rápida para elegir nombres:

  • Los nombres deben ser algo que las personas puedan decir.
  • Reconocemos subconjuntos de cadenas, por lo que, si tienes "luz de color Acme", también responderemos a "luz Acme".
  • Te recomendamos que uses un nombre descriptivo para el producto y uno o más nombres definidos por el usuario.
  • Los usuarios no necesitan asignar nombres de habitación a las luces, ya que tenemos habitaciones para eso. Deben tener nombres únicos por habitación, pero siempre pueden usar plurales para controlar todo (por ejemplo, las dos bombillas de los apliques de la oficina son "luz norte" y "luz este", pero se pueden controlar como "luces").

P.: ¿Con qué frecuencia se actualiza el estado del dispositivo?

R.: El estado efímero se recupera con QUERY o EXECUTE, que son acciones iniciadas por el usuario. Si el usuario pregunta "¿La luz está encendida?" o quiere iluminar una luz, tendremos que hacer una consulta para determinar el estado actual.


P.: ¿Es posible actualizar Home Graph directamente con el estado actual de un dispositivo?

R.: Sí, usa la llamada a la API de Report State.


Vinculación de cuentas y OAuth

R.: Sí, se requiere la vinculación de cuentas para conectar los dispositivos de un usuario a los servicios en la nube del proveedor.


P.: En el caso de OAuth, hacemos que los tokens de acceso venzan cada 15.213 horas. ¿Está bien?

R.: Sí, pero te recomendamos que pruebes con un tiempo de vencimiento bastante corto, por ejemplo, de 10 a 20 minutos. Nuestro cliente de OAuth debería actualizar los tokens según sea necesario, y las pruebas con un tiempo de vencimiento corto demostrarán que funciona.


Intents

P.: ¿Cuándo se produce la SINCRONIZACIÓN?

R.: La SYNC se produce inmediatamente después de que se completa la autorización de OAuth y después de que se realiza una llamada a Request Sync.


P.: ¿Por qué no funciona SYNC?

R.: Hay varios motivos comunes por los que esto podría fallar.

  • Estás enviando los tipos de dispositivos incorrectos.

    • Por ejemplo, esperamos action.devices.types.LIGHT, pero envías action.devices.types.Light.
  • Estás enviando tipos de dispositivos no admitidos.

    • Por ejemplo, si envías action.devices.types.FLASHLIGHT, no es algo que admitamos.
  • Estás enviando campos no válidos o no admitidos.

    • Por ejemplo, tienes un campo que no está en nuestra especificación.
  • Hay algún otro problema de formato con tu respuesta de SYNC.

    • Revisa tus cuadros
  • Tienes un problema de vinculación de cuentas.

    • Verifica que recibas un token de acceso válido en el encabezado de autorización de la solicitud de SYNC.
  • Estás tardando demasiado en responder a la solicitud de SYNC.

    • Verifica que respondas a la solicitud de SYNC en un plazo de 5 segundos.

P.: ¿Está bien que la respuesta esté “pendiente”?

R.: Preferimos una respuesta de éxito o error, en lugar de pendiente, si tus dispositivos están disponibles en tiempo real. Comunícate con nosotros si crees que necesitas una respuesta "pendiente". Reconocemos que algunos dispositivos de baja potencia y no en tiempo real pueden requerir una respuesta pendiente y un modelo de ejecución asíncrono.


Pruebas y envío

P.: ¿Podemos configurar un entorno de desarrollo en la nube?

R.: Sí, puedes probar un entorno y una configuración de nube sin lanzar.


P.: Mi acción no se ve en la sección Control de la casa de la app de Google Home. ¿Qué sucede?

R.: Confirma que eres desarrollador de este proyecto.


Estado del informe

P.: ¿Existen requisitos previos para implementar Report State?

R.: El proyecto debe usar la API de Smart Home, admitir OAuth2 y tener rasgos que tengan estados para informar.


P.: ¿Con qué frecuencia debemos informar el estado de un dispositivo?

R.: A Google le interesa la transición y el estado terminal. Sin embargo, si hay muchos cambios de estado en un corto período (por ejemplo, un usuario abre y cierra la heladera tres veces en un minuto o desliza un regulador), solo necesitamos que se informe el estado final.


P.: ¿Es necesario enviar el estado completo del dispositivo cuando se realizan llamadas a Report State?

R.: No se admiten las actualizaciones parciales del estado, por lo que las llamadas Report State siempre deben incluir todos los datos de un rasgo en particular que se haya actualizado. Si dos rasgos crearían una incoherencia, se deben informar juntos.


P.: ¿Google puede consultar mi dispositivo para obtener el estado (es decir, sondear el dispositivo)?

R.: Este es un mecanismo de resguardo que no recomendamos. Si necesitamos recurrir a sondear un dispositivo con frecuencia para esos usuarios, no podemos garantizar cuál será la carga adicional. La necesidad surge de las nuevas superficies visuales. Además del problema de carga desconocido, se producirá una degradación de la experiencia del usuario. Creemos que Report State es fundamental para la plataforma.


P.: ¿Qué rasgos admiten el estado de denuncia actualmente?

R.: Se admiten todos los rasgos públicos que tienen estados asociados. También se debe informar cualquier cambio en el estado en línea del dispositivo.

Ten en cuenta que las rutinas no tienen estados. Sin embargo, pueden provocar un cambio en el estado de los dispositivos. Si algún dispositivo en Google Home Graph tiene un estado de cambio, se debe informar.


P.: ¿El estado del informe requiere que se envíe una marca de tiempo?

R.: No requerimos una marca de tiempo. El último estado enviado anulará las llamadas anteriores.


P.: ¿Debo informar el estado por separado si ya lo envío en Query o Execute?

R.: Home Graph solo almacena el estado que se envía a través de Report State. El estado que se devuelve como respuesta a las acciones de EXECUTE y QUERY solo se usa para las respuestas de voz al usuario y no se almacena. Como resultado, se debe llamar a Report State incluso si el nuevo estado del dispositivo ya se devolvió como respuesta a una intención de EXECUTE o QUERY.


P.: ¿Cuáles son las consecuencias de no implementar por completo Report State dentro de la fecha límite establecida?

R.: Esto generará una experiencia del usuario degradada, por ejemplo, en las plataformas visuales y de Google Home app (GHA). Esto significa que se enviarán muchas intents de QUERY para sondear el estado, y no podemos garantizar que esto no corresponda a una carga adicional en la nube del socio.


P.: ¿Cómo puedo probar nuestra implementación del estado del informe?

R.: Usa el Visualizador de Home Graph, una herramienta de prueba de autoservicio que te muestra los estados actuales de los dispositivos almacenados en Home Graph.


P.: ¿Podemos usar un requestId aleatorio para Report State?

R.: Recomendamos que los socios usen el mismo requestId que recibieron de la solicitud EXECUTE si el Report State se activa con la solicitud EXECUTE. De lo contrario, pueden usar un requestId aleatorio.


P.: Si un usuario tiene varios dispositivos y uno de ellos cambia de estado, ¿debemos informar el estado más reciente de todos los dispositivos?

R.: No. Solo debes informar el estado de ese dispositivo específico.


Prácticas recomendadas

P.: ¿Qué tipo de latencia es aceptable?

R.: Lo ideal es menos de 200 ms, y entre 2 y 5 s está bien. Si la latencia ronda los 5 segundos, comunícate con nosotros.


P.: ¿Cómo hago para que mi bocina activada por voz responda correctamente cuando no tiene conexión?

R.: Devuelve el estado sin conexión para los dispositivos sin conexión. Devolvemos "no disponible en este momento" como TTS para este error. Para obtener más información, consulta Errores y excepciones.