Preguntas frecuentes sobre la casa inteligente

General

P: ¿Dónde y en qué lenguaje debemos implementar nuestra infraestructura de entrega de Actions on Google?

R.: Siempre y cuando admita SSL (TLS) y OAuth 2.0 modernos, puedes implementar tu infraestructura en cualquier plataforma y en cualquier lenguaje 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 ejecución en los dispositivos de usuario reales.


P: ¿Los ID de los dispositivos tienen que ser únicos?

R: Los ID deben ser únicos. Si no tienes ID únicos en todo tu servicio, estos deben ser únicos, al menos, a nivel de cada usuario. Imagina un usuario con varias casas, en la 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.


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

R.: No es necesario que los nombres sean únicos, pero, con el tiempo, podemos alentar a las personas a mejorar la asignación de nombres incorrecta después de la configuración para lograr una mejor experiencia del usuario.

A continuación, se incluye una guía rápida para la asignación de nombres:

  • Los nombres deben ser cosas que las personas realmente puedan decir.
  • Reconocemos subconjuntos de strings, por lo que si tienes “luz de color acme”, también responderemos a “luz acme”.
  • Te recomendamos usar un nombre descriptivo para el producto y uno o más nombres definidos por el usuario.
  • Los usuarios no necesitan indicar el nombre de la habitación de las luces porque tenemos habitaciones para eso. Deberían tener nombres únicos por habitación, pero siempre pueden usar plurales para controlar todo (por ejemplo, las dos bombillas de los faros de la oficina son "luz norte" y "luz del este", pero se pueden usar solo como "luces").

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

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


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

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


Vinculación de cuentas y OAuth

R.: Sí, es necesario vincular las cuentas para conectar los dispositivos de un usuario a los servicios en la nube del proveedor.


P: En el caso de OAuth, vencemos los tokens de acceso cada 15.213 horas. ¿Te parece bien?

R.: Sí, pero la prueba debe tener un tiempo de vencimiento relativamente corto (por ejemplo, entre 10 y 20 minutos). Nuestro cliente de OAuth debería actualizar los tokens según sea necesario, y realizar pruebas con un tiempo de vencimiento corto demostrará que eso funciona.


Intents

P: ¿Cuándo ocurre la SYNC?

R.: La sincronización ocurre inmediatamente después de que se completa OAuth y después de que se realiza una llamada a la solicitud de sincronización.


P: ¿Por qué no funciona SYNC?

R.: Existen varias razones comunes por las que esto podría fallar.

  • Estás enviando los tipos de dispositivo incorrectos.

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

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

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

    • Revisa los corchetes.
  • Tienes un problema de vinculación de cuentas.

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

    • Verifica que estás respondiendo a la solicitud de SYNC dentro de los 5 segundos.

P.: ¿Es aceptable una respuesta "pendiente"?

R.: Preferimos que la respuesta sea correcta o reprobada, en lugar de pendiente, si los dispositivos están disponibles en tiempo real. Comunícate con nosotros si crees que necesitas una respuesta "pendiente". Sabemos que algunos dispositivos de baja potencia que no son en tiempo real pueden requerir una respuesta pendiente y un modelo de ejecución asíncrono.


Pruebas y presentación

P: ¿Podemos configurar un entorno de etapa de pruebas?

R: Sí, crea un proyecto separado y ejecuta la configuración para ese proyecto. Puedes crear tantos proyectos como necesites para asignar a tus procesos de desarrollo y a tu infraestructura.


P: ¿Con qué frecuencia debo actualizar mi borrador del proyecto?

R.: El borrador de un proyecto se debe actualizar cada 3 días. Después de 3 días, el agente de prueba desaparecerá de la configuración de mobile-HomeControl. Si te encuentras con esto, haz clic en el botón BORRADOR DE PRUEBA de tu proyecto en el Actions on Google Console.


P: ¿Puedo realizar pruebas en más de un dispositivo a la vez?

R.: Actions on Google solo admite un PA de "prueba en el dispositivo" a la vez. Si primero usas BORRADOR DE PRUEBA en "ap1" y sincronizas dispositivos, luego (sin desvincular ap1) ejecuta directamente el BORRADOR DE PRUEBA "ap2", "ap1" desaparecerá de la configuración de mobile-HomeControl-settings. Para corregir esto, vuelve a ejecutar BORRADOR DE PRUEBA en "ap1" y podrás desvincular "ap1" en la configuración.

Ten en cuenta que este único paquete de acciones estará disponible para todos tus dispositivos Google Assistant para el usuario. Por ejemplo, puedes probar tu nueva integración de hardware en bocinas activadas por voz y Android.


P: Se rechazó el envío de mi proyecto de Acciones debido al nombre o la pronunciación. ¿Qué debo cambiar?

R.: Verificamos la pronunciación del nombre para garantizar que otra Acción no tome este nombre en el futuro y que coincida con el nombre visible (para evitar discrepancias que afecten registros futuros de nombres).

Si quieres seguir usando el mismo nombre, comunícate con el equipo de asistencia para que el equipo de voz agregue el nombre visible a Assistant.


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

R: El problema podría ser uno de los siguientes:

  • No hiciste clic en el botón BORRADOR DE PRUEBA de tu proyecto en el Actions Console.
  • Solo puedes tener una única Acción a la vez en la Prueba en el dispositivo.
  • En Actions Console, visita la pestaña Simulador de tu proyecto de Acciones y cambia el botón de activación Activo/Inactivo a Inactivo y, luego, a Activo de nuevo.
  • Si se trata de una Acción que se compartió contigo, asegúrate de haber seguido todas las instrucciones de uso compartido.
  • La prueba en el dispositivo vence después de tres días. Haz clic en el botón BORRADOR DE PRUEBA de tu proyecto en Actions Console.

P: ¿Por qué aparece un error cuando escribo "hablar con <my agent name>" en el simulador?

R.: Las Acciones de casa inteligente no usan nombres de invocación. Para realizar pruebas en el simulador, debes ejecutar la vinculación de cuentas en un teléfono Android o iOS con el Google Home app (GHA) instalado. También debes tener dispositivos asociados a tu cuenta antes de ejecutar la vinculación de cuentas.


P: ¿Por qué obtengo errores cuando intento usar el simulador?

R.: No puedes usar el simulador para probar acciones de smart home implementadas. Si quieres usar el simulador para un proyecto de automatización del hogar que está en producción, debes crear un proyecto nuevo con fines de prueba.


Estado del informe

P: ¿Existen requisitos previos para implementar el estado del informe?

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


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

R.: A Google le interesan la transición y el estado de la terminal, sin embargo, si hay muchos cambios de estado en poco tiempo (por ejemplo, un usuario abre y cierra el refrigerador tres veces en un minuto o desliza un atenuador), solo necesitamos que se informe el estado final.


P.: ¿Se debe enviar el estado completo del dispositivo cuando se realizan llamadas de informe de estado?

R.: Las actualizaciones de estado parciales no son compatibles, por lo que las llamadas a Report State siempre deben incluir todos los datos de una característica particular que se actualizó. Si dos características crearían una incoherencia, se deben informar nuevamente juntas.


P: ¿Puede Google 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 consultar un dispositivo con frecuencia para esos usuarios, no podemos garantizar la carga adicional. La necesidad proviene de las nuevas superficies visuales. Además del problema de carga desconocido, la experiencia del usuario se verá afectada. Creemos que Report State es fundamental para la plataforma.


P: ¿Qué características admiten el estado del informe en este momento?

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 escenas no tienen estados. Sin embargo, pueden provocar un cambio de estado de los dispositivos. Si algún dispositivo en Google Home Graph tiene un estado de cambio, esto se debe informar.


P: ¿El estado del informe requiere el envío de una marca de tiempo?

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


P: ¿Necesito informar el estado por separado si ya envío el estado en las consultas o en ejecución?

R.: Home Graph solo almacena el estado que se envía a través de Report State. El estado que se muestra como respuesta a los intents EXECUTE y QUERY se usa solo para respuestas de voz al usuario y no se almacena. Como resultado, se debe llamar a Report State incluso si el estado nuevo del dispositivo ya se mostró como respuesta a un intent EXECUTE o QUERY.


P: ¿Cuáles son las consecuencias de no implementar completamente el estado del informe dentro del plazo determinado?

R.: Esto dará como resultado una experiencia del usuario degradada, por ejemplo, en GHA y las superficies visuales. Eso significa que se enviarán muchos intents de QUERY para sondear el estado y no podemos garantizar lo que esto corresponderá a la carga adicional en la nube del socio.


P: ¿Cómo puedo probar nuestra implementación del estado de los informes?

R.: Usa el visualizador de Home Graph, una herramienta de prueba de autoservicio que muestra los estados actuales de tu dispositivo almacenados en el Home Graph.


P: ¿Podemos usar un requestId aleatorio para el estado del informe?

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


P: Si un usuario tiene varios dispositivos y cambia el estado de uno de ellos, ¿tenemos que 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.: Menos de 200 ms es lo ideal, entre 2 y 5 s está bien. Si la latencia se acerca 5 segundos, comunícate con nosotros.


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

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