Questions fréquentes sur la maison connectée

Général

Q:Où et dans quelle langue devons-nous implémenter notre infrastructure de traitement 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 le plus près 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 ID d'appareil doivent-ils être uniques ?

R:Les ID doivent être uniques. Si vous ne disposez pas d'identifiants uniques au sein de votre service, ils doivent être uniques au moins au niveau de chaque utilisateur. Imaginez un utilisateur possédant plusieurs maisons, les deux étant intégrées au même utilisateur. Demander à allumer une lumière dans une maison ne doit pas l'allumer avec le même identifiant dans une autre maison.


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

R:Les noms n'ont pas besoin d'être uniques. Toutefois, au fil du temps, nous pouvons encourager les utilisateurs à corriger les problèmes de dénomination après la configuration afin d'améliorer l'expérience utilisateur.

Voici un bref guide d'attribution de noms:

  • Les noms doivent être des choses que les gens peuvent réellement dire.
  • Nous reconnaissons des sous-ensembles de chaînes. Par conséquent, si vous utilisez "acme color light", nous répondons également à "acme light".
  • Nous vous conseillons 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'attribuer des noms aux pièces d'éclairage, car nous disposons de pièces pour cela. Ils doivent avoir des noms uniques par pièce, mais ils peuvent toujours utiliser des pluriels pour tout commander (par exemple, les deux ampoules des appliques du bureau sont "lumière nord" et "lumière est", mais vous pouvez les commander simplement avec "lumières").

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

A:L'état éphémère est récupéré au moment des actions QUERY (QUERY) ou "EXECUTE" (Exécuter), qui sont des actions déclenchées par l'utilisateur. Si l'utilisateur demande "La lumière est-elle allumée ?" ou souhaite l'augmenter, nous devons exécuter une requête pour déterminer l'état actuel.


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

R:Oui, utiliser 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:Pour OAuth, les jetons d'accès expirent toutes les 15, 213 heures.Est-ce normal ?

R:Oui, mais veuillez effectuer le test avec un délai d'expiration assez court, disons 10 à 20 minutes. Notre client OAuth doit actualiser les jetons si nécessaire. Un test avec un délai d'expiration court devrait prouver que cela fonctionne.


Intents

Q:Quand la SYNCHRONISATION a-t-elle lieu ?

R:La synchronisation se produit immédiatement après la finalisation d'OAuth et après un appel de synchronisation des requêtes.


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

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

  • Vous envoyez des types d'appareils incorrects.

    • Par exemple, 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 : nous n'acceptons pas ce service.
  • Vous envoyez des champs non valides/non pris en charge.

    • Par exemple, vous avez un champ de version ou un autre champ qui ne figure pas dans notre spécification.
  • Un autre problème de formatage est survenu avec votre réponse SYNC.

    • Vérifiez les 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 demande SYNC.

    • Veuillez vérifier que vous répondez à la requête SYNC dans les cinq secondes.

Q:Une réponse "en attente" est-elle acceptée ?

R:Si vos appareils sont disponibles en temps réel, nous préférons une réponse de réussite ou d'échec plutôt qu'une réponse en attente. Veuillez nous contacter si vous avez besoin d'une réponse "en attente". Nous savons que certains appareils à faible consommation énergétique peuvent nécessiter une réponse en attente et un modèle d'exécution asynchrone.


Test et envoi

Q:Peut-on configurer un environnement de préproduction ?

R:Oui. Veuillez créer un projet distinct et procéder à sa configuration. Vous pouvez créer autant de projets que nécessaire en fonction de votre infrastructure et de vos processus de développement.


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

R:Les brouillons de projet doivent être actualisés tous les trois jours. Au bout de trois jours, l'agent de test disparaît des paramètres de mobile-HomeControl. Si vous rencontrez ce problème, cliquez sur le bouton TEST DRAFT (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 DRAFT sur "ap1" et que vous synchronisez des appareils, puis (sans dissocier ap1) que vous exécutez directement TEST DRAFT "ap2", "ap1" disparaîtra des paramètres de mobile-HomeControl. Pour corriger ce problème, exécutez à nouveau TEST DRAFT sur "ap1" et vous pouvez dissocier "ap1" dans les paramètres.

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


Q:L'envoi de mon projet Actions a été refusé en raison de son nom ou de sa prononciation. Que dois-je modifier ?

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

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


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

R : Voici les différents problèmes possibles.

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

Q:Pourquoi une erreur s'affiche-t-elle lorsque je saisis "parler à <my agent name>" dans le simulateur ?

R:Les actions de maison connectée n'utilisent pas de noms d'appel. Pour effectuer un test dans le simulateur, vous devez associer un 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 d'effectuer l'association de compte.


Q:Pourquoi des erreurs se produisent-elles lorsque j'essaie d'utiliser le simulateur ?

R:Vous ne pouvez pas utiliser le simulateur pour tester les 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 à l'implémentation de l'état du rapport ?

R:Le projet doit utiliser l'API Smart Home, être compatible avec OAuth2 et présenter des caractéristiques avec 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, si de nombreux changements d'état se produisent en peu de temps (par exemple, un utilisateur ouvre et ferme le réfrigérateur trois fois en une minute ou diminue sa luminosité), nous n'avons besoin que de signaler l'état final.


Q:Est-il nécessaire d'envoyer l'état complet de l'appareil lorsque je passe des appels d'état ?

R:Les mises à jour partielles de l'état ne sont pas acceptées. 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 rapportées ensemble.


Q:Est-ce que Google peut interroger mon appareil pour obtenir son état (c'est-à-dire interroger l'appareil) ?

R:Ce mécanisme de remplacement est déconseillé. Si nous devons interroger fréquemment un appareil pour 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 sera dégradée. Nous estimons que Report State est essentiel à la plate-forme.


Q:Quelles caractéristiques sont actuellement compatibles avec l'état dans les rapports ?

R:Toutes les caractéristiques publiques auxquelles un état est associé sont acceptées. Toute modification de l'état de connexion de l'appareil doit également être signalée.

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


Q:L'état du rapport nécessite-t-il l'envoi d'un code temporel ?

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


Q:Dois-je indiquer 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 l'état du rapport n'est pas complètement implémenté dans les délais impartis ?

R:Cela entraînera une dégradation de l'expérience utilisateur, par exemple dans GHA et sur les surfaces visuelles. Cela signifie que de nombreux intents QUERY seront envoyés pour interroger l'état. Nous ne pouvons pas garantir 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 Home Graph Viewer, un outil de test en libre-service qui affiche les états actuels de vos appareils stockés dans Home Graph.


Q:Est-il possible d'utiliser un requestId aléatoire pour l'état du rapport ?

R:Nous recommandons aux partenaires d'utiliser le même requestId que celui reçu de la requête EXECUTE si Report State est déclenché 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'eux change, devons-nous signaler le dernier état de tous les appareils ?

R:Non. Il vous suffit de signaler l'état de cet appareil spécifique.


Bonnes pratiques

Q:Quel type de latence est acceptable ?

R:Idéalement, moins de 200 ms est recommandé, mais entre deux et cinq secondes. Si votre latence est supérieure à cinq secondes, contactez-nous.


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

R:Rétablir l'état hors connexion des appareils hors connexion. Pour cette erreur, nous renvoyons "non disponible pour le moment". Pour en savoir plus, consultez la section Erreurs et exceptions.