Questions fréquentes sur la maison connectée

Questions d'ordre général

Q:Où et dans quelle langue devons-nous implémenter notre infrastructure de traitement des commandes Actions on Google ?

R:Tant qu'il est compatible avec les protocoles SSL (TLS) et OAuth 2.0 modernes, vous pouvez implémenter votre infrastructure sur n'importe quelle plate-forme et dans le langage de votre choix. Nous vous recommandons de procéder au déploiement aussi près que possible du reste de votre infrastructure, afin d'améliorer la fiabilité et de réduire la latence d'exécution sur les appareils des utilisateurs réels.


Q:Les identifiants d'appareil doivent-ils être uniques ?

R:Les identifiants doivent être uniques. Si votre service ne comporte pas d'identifiants uniques, ceux-ci doivent être uniques, au moins au niveau de chaque utilisateur. Imaginez qu'un utilisateur possède plusieurs maisons, et que les deux maisons disposent d'une intégration pour le même utilisateur. Le fait de demander d'allumer une lumière dans une maison ne doit pas allumer une lumière ayant le même identifiant dans une autre maison.


Q:Les noms d'appareil doivent-ils être uniques ?

R:Les noms ne doivent pas nécessairement être uniques. Toutefois, au fil du temps, nous pouvons encourager les utilisateurs à améliorer les noms incorrects après la configuration afin d'améliorer l'expérience utilisateur.

Voici un guide rapide sur l'attribution de noms:

  • Les noms doivent être des choses que les gens peuvent vraiment dire.
  • Nous reconnaissons des sous-ensembles de chaînes. Par conséquent, si vous utilisez une lumière "acme color light", nous répondons également à "acme light".
  • Nous vous recommandons d'utiliser à la fois un nom descriptif pour le produit et un ou plusieurs noms définis par l'utilisateur.
  • Les utilisateurs n'ont pas besoin d'indiquer le nom des pièces d'éclairage, car nous disposons de pièces correspondantes. Ces noms doivent être uniques, mais ils peuvent toujours utiliser des pluriels pour tout contrôler (par exemple, les deux ampoules des appliques du bureau sont "lumière nord" et "lumière est", mais peuvent être commandées uniquement comme "lumières").

Q:À quelle fréquence l'état de l'appareil est-il mis à jour ?

R:L'état éphémère est récupéré lors de la commande QUERY ou EXECUTE, qui est une action lancée par l'utilisateur. Si l'utilisateur demande « Est-ce que la lumière est allumée ? » ou s'il veut allumer une lumière, nous devrons effectuer une requête pour déterminer l'état actuel.


Q:Est-il possible de mettre à jour le Home Graph directement avec l'état actuel d'un appareil ?

R:Oui, utilisez l'appel d'API Report State.


Association de comptes et OAuth

R:Oui, l'association de comptes est nécessaire pour connecter les appareils d'un utilisateur aux services cloud du fournisseur.


Q:Avec OAuth, les jetons d'accès expirent toutes les 15 213 heures.Est-ce que cela vous convient ?

R:Oui, mais veuillez suivre un délai d'expiration assez court, de 10 à 20 minutes par exemple. Notre client OAuth doit actualiser les jetons si nécessaire. Les tests avec un court délai d'expiration prouveront que cela fonctionne.


Intents

Q:À quel moment le SYNC a-t-il lieu ?

R:Le processus SYNC a lieu immédiatement après l'achèvement de l'authentification OAuth et après un appel Request Sync.


Q:Pourquoi SYNC ne fonctionne-t-il pas ?

R:Plusieurs raisons courantes peuvent expliquer l'échec.

  • Vous envoyez les mauvais types d'appareils.

    • Par exemple, nous nous attendons à action.devices.types.LIGHT, mais vous envoyez action.devices.types.Light.
  • Vous envoyez des types d'appareils non compatibles.

    • Par exemple, vous envoyez action.devices.types.FLASHLIGHT, qui n'est pas compatible.
  • Vous envoyez des champs non valides/non compatibles.

    • Par exemple, vous avez un champ de version ou un autre champ qui ne figure pas dans notre spécification.
  • Votre réponse SYNC présente un autre problème de format.

    • Vérifiez vos crochets !
  • Vous rencontrez un problème d'association de compte.

    • Veuillez vérifier que vous recevez un jeton d'accès valide dans l'en-tête Auth de la requête SYNC.
  • Vous mettez trop de temps à répondre à la requête SYNC.

    • Veuillez vérifier que vous répondez à la requête SYNC dans un délai de cinq secondes.

Q:Est-il possible d'obtenir une réponse "en attente" ?

R:Nous préférerions fortement une réponse indiquant une réussite ou un échec, plutôt qu'une réponse en attente, si vos appareils sont disponibles en temps réel. N'hésitez pas à nous contacter si vous avez besoin d'une réponse "en attente". Nous sommes conscients que certains appareils qui ne fonctionnent pas en temps réel à faible consommation d'énergie peuvent nécessiter une réponse en attente et un modèle d'exécution asynchrone.


Test et envoi

Q:Est-il possible de configurer un environnement de préproduction ?

R:Oui. Veuillez créer un projet distinct et le configurer. Vous pouvez créer autant de projets que nécessaire pour les mettre en correspondance avec vos processus de développement et votre infrastructure.


Q:À quelle fréquence dois-je mettre à jour mon projet brouillon ?

R:Un brouillon de projet doit être actualisé tous les trois jours. Au bout de trois jours, l'agent de test disparaîtra des paramètres mobile-HomeControl. Si vous rencontrez ce problème, cliquez sur le bouton TESTER LE BROUILLON de votre projet dans Actions on Google Console.


Q:Puis-je effectuer un test sur plusieurs appareils à la fois ?

R:Actions on Google n'est compatible qu'avec un seul point d'accès "try-on-device" à la fois. Si vous utilisez d'abord TEST BROUILLON sur "ap1" et synchronisez des appareils, puis exécutez directement TEST BROUILLON "ap2" (sans dissocier ap1), "ap1" disparaîtra de mobile-HomeControl-settings. Pour résoudre ce problème, exécutez à nouveau TEST BROUILLON sur "ap1". Vous pouvez dissocier "ap1" dans les paramètres.

Notez que ce package d'action unique sera disponible pour l'utilisateur sur tous vos appareils Google Assistant. Par exemple, vous pouvez tester votre nouvelle intégration matérielle sur des enceintes à commande vocale et sur Android.


Q:Mon projet Actions a été refusé en raison du nom ou de la prononciation. Que dois-je modifier ?

R:Nous vérifions la prononciation du nom pour nous assurer que le nom prononcé ne sera pas utilisé par une autre action à l'avenir et qu'il correspond au nom à afficher (pour éviter les incohérences qui affecteront les futurs enregistrements de noms).

Pour continuer à utiliser le même nom, veuillez contacter l'assistance afin que l'équipe chargée de la reconnaissance vocale ajoute le nom à afficher à Assistant.


Q:Mon action n'est pas visible dans la section "Contrôle de la maison" de l'application Google Home. Pourquoi ?

R:Le problème peut être dû à l'une des raisons suivantes:

  • Vous n'avez pas cliqué sur le bouton TESTER BROUILLON pour votre projet dans Actions Console.
  • Vous ne pouvez effectuer qu'une seule action à la fois dans Test sur l'appareil.
  • Dans Actions Console, accédez à l'onglet "Simulateur" de votre projet Actions et définissez le bouton "Actif/Inactif" sur "Inactif", puis à nouveau sur "Actif".
  • S'il s'agit d'une action qui a été partagée avec vous, assurez-vous que toutes les instructions de partage ont été suivies.
  • Le test sur l'appareil expire au bout de trois jours. Cliquez sur le bouton TESTER LA BROUILLON de votre projet dans Actions Console.

Q:Pourquoi le système affiche-t-il une erreur lorsque je saisis "parler à <my agent name>" dans le simulateur ?

R:Les actions pour la maison connectée n'utilisent pas de noms d'appel. Pour effectuer des tests dans le simulateur, vous devez exécuter l'association de compte sur un téléphone Android ou iOS sur lequel Google Home app (GHA) est installé. Vous devez également associer des appareils à votre compte avant de procéder à l'association de comptes.


Q:Pourquoi des messages d'erreur s'affichent-ils lorsque j'essaie d'utiliser le simulateur ?

R:Vous ne pouvez pas utiliser le simulateur pour tester des actions smart home déployées. Si vous souhaitez utiliser le simulateur pour un projet de domotique en production, vous devez créer un projet à des fins de test.


État du rapport

Q:Y a-t-il des conditions préalables pour implémenter l'état du rapport ?

R:Le projet doit utiliser l'API Smart Home, être compatible avec OAuth2 et présenter des caractéristiques associées à un ou plusieurs états à signaler.


Q:À quelle fréquence devons-nous signaler l'état sur un appareil ?

R:Google s'intéresse à la transition et à l'état final. Toutefois, s'il y a de nombreux changements d'état en peu de temps (par exemple, un utilisateur ouvre et ferme le réfrigérateur trois fois par minute ou fait glisser une diminution de la luminosité), seul l'état final est nécessaire.


Q:Faut-il envoyer l'état complet de l'appareil lors de ces appels ?

R:Les mises à jour partielles de l'état ne sont pas prises en charge. Par conséquent, les appels Report State doivent toujours inclure toutes les données d'une caractéristique particulière qui a été mise à jour. Si deux caractéristiques créent une incohérence, elles doivent être signalées ensemble.


Q:Est-ce que Google peut interroger mon appareil pour connaître son état (par exemple, interroger l'appareil) ?

R:Il s'agit d'un mécanisme de remplacement que nous ne recommandons pas. Si nous devons interroger fréquemment un appareil pour identifier ces utilisateurs, nous ne pouvons pas garantir la charge supplémentaire. Ce besoin vient des nouvelles surfaces visuelles. En plus du problème de chargement inconnu, l'expérience utilisateur se dégradera. Nous pensons que Report State est essentiel à la plate-forme.


Q:Quelles sont les caractéristiques actuellement compatibles avec Report State ?

R:Tous les traits publics auxquels un état est associé sont acceptés. Tout changement de l'état de connexion de l'appareil doit également être signalé.

Notez que les scènes n'ont pas d'état. Toutefois, elles peuvent entraîner un changement d'état du ou des appareils. Si un appareil dans Google Home Graph présente un état de modification, cela doit être signalé.


Q:Est-il nécessaire d'envoyer un horodatage à l'état "Report State" ?

R:Aucun horodatage n'est nécessaire. Le dernier état envoyé remplace les appels précédents.


Q:Dois-je signaler l'état séparément si j'envoie déjà l'état dans "Requête" et/ou "Exécuter" ?

R:Home Graph ne stocke que l'état envoyé via Report State. L'état renvoyé en tant que réponse aux intents EXECUTE et QUERY n'est utilisé que pour les réponses vocales à l'utilisateur et n'est pas stocké. Par conséquent, Report State doit être appelé même si le nouvel état de l'appareil a déjà été renvoyé en tant que réponse à un intent EXECUTE ou QUERY.


Q:Quelles sont les conséquences si vous n'implémentez pas complètement l'état du rapport dans le délai imparti ?

R:Cela nuit à l'expérience utilisateur, par exemple au niveau de GHA et des surfaces visuelles. Cela signifie que de nombreux intents QUERY seront envoyés pour interroger l'état. Nous ne pouvons pas garantir ce que cela correspondra à une charge supplémentaire sur le cloud partenaire.


Q:Comment puis-je tester l'implémentation de l'état du rapport ?

R:Utilisez la visionneuse Home Graph, un outil de test en libre-service qui affiche les états actuels de votre appareil stockés dans le Home Graph.


Q:Est-il possible d'utiliser un requestId aléatoire pour Report State ?

R:Nous recommandons aux partenaires d'utiliser le même requestId qu'à partir de la requête EXECUTE si la requête Report State est déclenchée par la requête EXECUTE. Sinon, vous pouvez simplement utiliser un requestId aléatoire.


Q:Si un utilisateur possède plusieurs appareils et que l'état de l'un d'entre eux change, doit-on indiquer le dernier état de tous les appareils ?

R:Non. Il vous suffit d'indiquer l'état de cet appareil.


Bonnes pratiques

Q:Quel type de latence est acceptable ?

R:Dans l'idéal, une durée inférieure à 200 ms est acceptable, mais entre deux et cinq secondes. Si votre latence passe pendant environ cinq secondes, contactez-nous.


Q:Comment faire en sorte que mon enceinte à commande vocale réponde correctement lorsqu'elle est hors connexion ?

R:Renvoyez l'état hors connexion des appareils hors connexion. Nous renvoyons « non disponible pour le moment » par la synthèse vocale pour cette erreur. Pour en savoir plus, consultez la section Erreurs et exceptions.