Tester et déboguer votre application

Nous vous recommandons de créer votre application de traitement en local en suivant les étapes décrites précédemment, puis de tester votre intégration de maison connectée dans votre propre environnement d'hébergement en procédant comme suit:

  1. Dans votre propre environnement d'hébergement, diffusez la page HTML qui exécute votre application de traitement local. L'extrait de code suivant montre un exemple de fichier HTML statique qui exécute votre application de traitement local.

    <html>
      <head>
        <!-- Local Home SDK -->
        <script src="//www.gstatic.com/eureka/smarthome/smarthome_sdk.js"></script>
        <!-- Local app under development -->
        <script src="local_execution.js"></script>
      </head>
    
    </html>
  2. Testez le contrôle des appareils.

  3. Déboguer depuis Chrome Utilisez des points d'arrêt et des journaux pour résoudre les problèmes d'intégration.

  4. Modifiez et compilez votre code TypeScript, puis répétez ces étapes.

En répétant ce processus de compilation et de test, vous pouvez rapidement voir vos modifications en action pour vous aider à déboguer les problèmes de votre code.

Tester le contrôle de l'appareil

Dans Google Home Developer Console, vous devez spécifier l'URL de votre application Web, qui sert le code HTML chargé sur l'appareil Google Home ou Google Nest lors de l'exécution locale.

Pour tester le contrôle des appareils avec le traitement en local:

Chrome

  1. Sur la page Configuration et configuration de votre intégration cloud à cloud dans Google Home Developer Console, faites défiler la page jusqu'à Traitement local et activez le paramètre.
  2. Sous URL de test > URL de test pour Chrome, spécifiez l'URL du serveur de développement qui diffuse le code HTML qui exécute votre application de traitement local.
  3. Cliquez sur Enregistrer. La propagation des modifications apportées dans la console peut prendre jusqu'à 30 minutes.
  4. Redémarrez votre appareil Google Home ou Google Nest de test.
  5. Émettez une commande à votre appareil connecté. Par exemple, si votre appareil implémente la caractéristique OnOff, vous pouvez dire "Hey Google, allume la lumière".

Node.js

  1. Sur la page Configuration et configuration de Google Home Developer Console, faites défiler la page jusqu'à Traitement local, puis activez le paramètre.
  2. Sous URL de test > URL de test pour Node, spécifiez l'URL du serveur de développement qui diffuse le code JavaScript qui exécute votre application de traitement local.
  3. Cliquez sur Enregistrer. La propagation des modifications apportées dans la console peut prendre jusqu'à 30 minutes.
  4. Redémarrez votre appareil Google Home ou Google Nest de test.
  5. Émettez une commande à votre appareil connecté. Par exemple, si votre appareil implémente la caractéristique OnOff, vous pouvez dire "Hey Google, allume la lumière".

Pour en savoir plus sur l'environnement d'exécution utilisé par votre appareil, consultez la section Appareils compatibles.

.

Déboguer depuis Chrome

Vous pouvez déboguer votre application de traitement en local à l'aide des outils pour les développeurs Chrome. Avant de pouvoir déboguer, assurez-vous que votre environnement est correctement configuré:

Pour connecter votre application de traitement en local au débogueur Chrome DevTools, procédez comme suit:

Chrome

  1. Sur votre ordinateur de développement local, installez et lancez le navigateur Google Chrome.
  2. Dans le champ d'adresse de votre navigateur Chrome, lancez l'outil d'inspection Chrome en saisissant: chrome://inspect#devices. Une liste d'appareils devrait s'afficher sur la page, et votre fichier HTML devrait figurer sous le nom de votre appareil Google Home ou Google Nest de test.
  3. Cliquez sur le lien d'inspection bleu sous votre code HTML pour lancer les outils pour les développeurs Chrome. Accédez à l'onglet Console. La plate-forme Local Home affiche la version de votre application et la version du SDK Local Home dans le journal de la console. Si le journal s'affiche, cela signifie que Google a correctement chargé votre application et qu'il peut s'y connecter. Si ce n'est pas le cas, redémarrez votre appareil Google Home ou Google Nest.
  4. Figure 1: Application de traitement local dans chrome://inspect.

Node.js

  1. Sur votre ordinateur de développement local, installez et lancez le navigateur Google Chrome.
  2. Déterminez l'adresse IP locale de votre appareil de test.
  3. Dans le champ d'adresse de votre navigateur Chrome, lancez l'outil d'inspection Chrome en saisissant: chrome://inspect#devices.
  4. Sélectionnez Configurer pour ouvrir les paramètres de découverte des cibles.
  5. Figure 2: Paramètres de découverte des cibles dans chrome://inspect
  6. Saisissez DEVICE_IP_ADDRESS:9222 dans la liste, puis cliquez sur OK.
  7. Cliquez sur le lien d'inspection bleu sous votre script pour lancer Chrome DevTools. Accédez à l'onglet Console. La plate-forme Local Home affiche la version de votre application et la version du SDK Local Home dans le journal de la console. Si le journal s'affiche, cela signifie que Google a correctement chargé votre application et qu'il peut s'y connecter. Si ce n'est pas le cas, redémarrez votre appareil Google Home ou Google Nest.

Pour en savoir plus sur l'environnement d'exécution utilisé par votre appareil, consultez la section Appareils compatibles.

Conseils de débogage

Voici quelques points supplémentaires à prendre en compte lors du débogage:

  • N'associez pas plusieurs appareils Google Home ou Google Nest à votre compte de test sur le même réseau local. Vous ne pourrez pas contrôler l'appareil Google Home ou Google Nest ciblé par les commandes de traitement local.
  • Actualisez la page dans les outils de développement Chrome pour recharger le conteneur de votre application de traitement local avec le dernier code de votre URL de développement. Cette opération ne réinitialise pas la plate-forme Local Home, ce qui peut être nécessaire pour relancer les intents de plate-forme (comme IDENTIFY) dans votre application de traitement local. Pour réinitialiser la plate-forme Local Home, redémarrez votre appareil Google Home ou Google Nest.
  • Vérifiez que votre application JavaScript se charge sans erreur. Pour ce faire, consultez la section de la console de la page DevTools. En cas de problème, un message semblable à "Uncaught TypeError: Cannot read property 'open' of null." s'affiche.
  • L'verificationId de la réponse IDENTIFY doit correspondre à l'un des otherDeviceIds de la réponse SYNC.
  • Pour le gestionnaire EXECUTE, assurez-vous que vos commandes HTTP, TCP ou UDP peuvent être reçues par votre appareil et fonctionnent comme prévu.
  • Veillez à renvoyer un Promise à partir des gestionnaires.
  • Évitez de conserver l'état global en mémoire. Consultez la section Cycle de vie de l'application.
  • Les erreurs générées par votre application de traitement local s'affichent dans les journaux d'erreur de votre projet.

Préparer et lancer en production

Lorsque vous êtes prêt à lancer votre action pour la maison connectée, procédez comme suit:

  1. Ouvrez un terminal. Dans le répertoire de votre projet, exécutez la commande npm run build. Cette commande génère les bundles JavaScript suivants pour votre application dans le répertoire dist:
    project-directory/
    └── dist
     ├── web
     │    └── bundle.js
     └── node
          └── bundle.js
    
  2. Sur la page Configuration et configuration de Google Home Developer Console, faites défiler la page jusqu'à Traitement en local, puis activez le paramètre.
  3. À l'aide des boutons Importer JavaScript, importez les fichiers de bundle que vous avez générés précédemment.
    Figure 3: Importer votre application JavaScript
    Assurez-vous d'importer les deux versions des fichiers de bundle (Node, Web) afin que votre action soit configurée pour fonctionner correctement dans tous les environnements d'exécution compatibles avec le traitement local.
    1. Importez votre code JavaScript ciblant Node.js: importez le fichier bundle.js à partir du répertoire dist/node.
    2. Importez votre ciblage JavaScript dans Chrome (navigateur): importez le fichier bundle.js à partir du répertoire dist/web.
  4. Testez votre action sur un appareil avec Assistant Google intégré pour vérifier qu'elle se comporte comme prévu dans un environnement de production. Pour en savoir plus, consultez Tester et partager votre action pour la maison connectée.
  5. Lorsque vous êtes satisfait du fonctionnement de votre action, envoyez-la à Google pour la déployer en production en suivant les instructions de la section Lancer votre action pour la maison connectée. Cela inclut les étapes d'autotest et de demande de certification.