X
    Catégories : Tutos

Intégrez Home Assistant à Google Home

Vous ne le savez peut-être pas, depuis la version 0.56 d’Home Assistant, il est possible de contrôler votre installation grâce à Google Assistant et donc, à Google Home! Vous me direz que c’est déjà possible grâce à IFTTT. En effet, nous l’avions vu dans cet article mais cette fois, l’intégration se fait sans service tiers. De plus, elle est beaucoup moins longue à mettre en place, puisqu’il n’est pas nécessaire de paramétrer chaque action! Comme vous vous en doutez je n’ai pas attendu longtemps avant de mettre en place cette fonctionnalité. Aujourd’hui, je vous propose donc de partager avec vous les étapes de mise en place ainsi que les possibilités offertes par cette intégration.

 

Prés requis

Pour ce tuto, vous aurez besoin des éléments ci-dessous:

De plus, il est nécessaire d’avoir une installation Home Assistant en version 0.56.x (ou Hass.io) accessible de l’extérieur et disposant d’un certificat SSL. Si vous n’avez pas encore d’installation valide, vous pouvez consulter les articles de ce dossier.

 

Actions on Google

Avant de démarrer, je vous présente actions on google.

Actions on Google

Tout ce tuto va tourner autour de cette plate-forme mise en place par Google. En effet, cette dernière permet à n’importe quel développeur de construire sa propre application compatible Google Assistant. C’est donc grâce à ce système, qu’il est possible de rendre compatible un grand nombre de solutions telles qu’Home Assistant.

Cette plate-forme fournit tout ce qui est nécessaire afin de tester et de déployer votre application. Dans le cadre de ce tuto, nous n’irons pas plus loin que la phase de test. En effet, cette dernière permet d’utiliser votre création sur tous les appareils connectés via votre compte Google.

 

Création du projet

Dans un premier temps, il est nécessaire de créer un nouveau projet. Pour ce faire, rendez-vous à l’adresse https://console.actions.google.com et connectez-vous avec un compte Google.

Sur l’écran principal, vous devriez avoir un bouton Add/import project

Création du projet

Saisissez ensuite un nom de projet et sélectionnez votre pays.

 

Création des actions

Il est temps maintenant de lier ce projet et votre installation Home Assistant. Tout d’abord,  téléchargez gactions que vous trouverez à l’adresse suivante https://developers.google.com/actions/tools/gactions-cli . Sur votre pc, créez un dossier et placez-y ce fichier.

Si vous êtes sous mac ou linux, pensez à changer ses droits en lançant la commande chmod +x gactions

Dans ce même dossier, créez un fichier project.json et copiez/collez l’exemple ci-dessous en l’adaptant :

[js]
{
"actions": [{
"name": "actions.devices",
"deviceControl": {
},
"fulfillment": {
"conversationName": "automation"
}
}],
"conversations": {
"automation" :
{
"name": "automation",
"url": "https://[votre_adresse_home_assistant]/api/google_assistant"
}
},
"locale":"fr"
}
[/js]

Retournez sur https://console.actions.google.com, dans votre projet, cliquez sur Add Actions

Ajouter une action

Sélectionnez Actions SDK

Actions SDK

Vous devriez voir l’écran suivant apparaître.

 

Mise à jour de l’application

Maintenant nous allons mettre à jour l’application.

  • Copiez la ligne ressemblant à gactions update –action_package PACKAGE_NAME –project…
  • Remplacez PACKAGE_NAME par project.json
  • Ouvrez un terminal et exécutez la commande dans le dossier de votre projet.

Vous devrez ensuite renseigner un code de sécurité. Pour l’obtenir:

  • Entrez dans votre navigateur l’adresse affichée dans votre terminal après l’exécution de la commande précédente.
  • Validez votre identité
  • Entrez le code affiché après l’identification dans le terminal.

Si tout s’est bien passé, vous devriez avoir quelque chose de ce genre.

Sous l’étape nommée Action, vous verrez plusieurs autres intitulés. Je vous laisse libre de les remplir afin que votre projet soit valide. Il n’y a rien de compliqué, c’est uniquement des informations du type nom de l’application, langue, etc.

Prenez seulement garde à la langue que vous sélectionnez et choisissez bien comme catégorie Home Control. Arrêtez vous au point Account linking que nous verrons à la fin de cet article.

 

Configuration de Home Assistant

Passons maintenant au réglage côté Home Assistant. Dans un premier temps, nous allons générer deux clés de sécurité qui vous seront demandées par le composant. Il s’agit en réalité de deux chaînes de caractères qui doivent être complexes et longues.

Pour ce faire, j’ai utilisé https://www.random.org/strings/ et je me suis arrangé pour avoir 120 caractères par chaîne.

Mettez les de côté et ouvrez votre fichier de configuration (configuration.yaml pour rappel). Ajoutez-y les lignes suivantes, en indiquant:

  • le nom de votre projet
  • les deux chaînes de caractères que vous venez de générer.

[js]
google_assistant:
project_id: [Votre nom de projet]
client_id: [Première chaîne de caractères générée]
access_token: [Deuxième chaîne de caractères générée]
exposed_domains:
– switch
– light
– group
[/js]

Si vous ne savez pas le nom exact de votre projet, vous pouvez le retrouver facilement

Project settings

 

Project name

 

Enfin, redémarrez Home Assistant pour que votre configuration soit prise en compte.

 

 

Account linking

Maintenant, nous allons mettre en place l’authentification entre Actions on Google et Home Assistant. Pour ce faire, retour sur https://console.actions.google.com/, ouvrez votre projet et rendez-vous directement à la dernière étape Account linking.

  • Cliquez sur ADD

 

  • Choisissez un grant type implicit

Grant type

  • Ensuite il vous sera demandé de remplir le client ID et une Authorization URL. Pour le premier paramètre, il s’agit de la première chaîne de caractères que vous avez généré tout à l’heure. Quand à l’URL, elle est de la forme https://[votre_adresse_home_assistant]/api/google_assistant/auth.

Information du client

  • Remplissez l’écran suivant comme sur l’exemple

Configurez votre client

  • Enfin, la dernière étape consiste à indiquer la procédure de test. Cette étape est nécessaire uniquement si vous souhaitez déployer publiquement l’application ce qui n’est pas notre cas. Vous pouvez donc y mettre n’importe quoi.

Configuration de Google Assistant

Voilà, notre application Actions on Google est terminée. Nous arrivons bientôt au bout de nos efforts ! La dernière étape est très simple, elle consiste à ajouter votre nouveau composant à votre Google Assistant.

Pour ce faire c’est très simple:

  • Sur votre smartphone, ouvrez l’application home.
  • Allez dans le menu et cliquez sur plus de paramètres.
  • Plus bas sur cet écran, vous devriez avoir un bouton Commandes relatives à la maison, cliquez dessus.
  • Ici, vous devriez normalement  avoir une liste répertoriant tous les appareils que vous avez déjà configurés.
  • Cliquez sur + en bas à droite de l’écran pour en ajouter un nouveau.
  • Vous devriez normalement y voir votre projet Actions on Google fraîchement créé! ([test] home up dans mon cas)

Ajoutez votre application à Google Assistant

Cliquez sur celui-ci afin de l’ajouter. Vous pourrez ensuite modifier les noms/alias et assigner des pièces à tous les éléments remontés par votre installation Home Assistant !

 

Conclusion

C’est fini pour aujourd’hui. Vous pouvez dès à présent contrôler des appareils jusque là incompatibles. Par exemple, à la fin de la vidéo d’introduction, vous verrez qu’il est possible de contrôler des périphériques connectés en 433 Mhz via votre Google Home (à condition qu’il soit disponible dans Home Assistant, pour en savoir plus allez voir cet article).

Bien qu’il y ait beaucoup d’étapes, cette intégration reste assez simple. De plus, le composant semble assez puissant et très paramétrable. Nous verrons probablement plus en détail ce dernier dans de prochains articles surtout qu’Home Assistant nous promet des améliorations pour la version 0.57.

En attendant, si vous souhaitez en savoir plus, la documentation officielle est assez bien fournie (Pour la release c’est ici et pour le composant c’est ). J’espère que cet article vous a plu, n’hésitez pas à réagir en commentaire ! A bientôt.

 

 

 

Voir les commentaires (50)

  • bonjour
    que voulez-vous dire par:
    Vous devrez ensuite renseigner un code de sécurité. Pour l’obtenir:
    merci

    • Bonjour,
      Les trois points après cette phrase décrivent les étapes à suivre.
      En fait, il est nécessaire que gactions vérifie votre identité. Pour ce faire il utilise un système qui ressemble à de la double authentification.
      En effet, gactions va vous donner un URL et vous demander un code. Entrez cet url dans votre navigateur, identifiez vous avec votre compte Google et il apparaîtra.
      Normalement cette manipulation n'est à faire que la première fois.

    • Bonjour,
      Merci pour votre retour :)
      Concernant Domoticz je ne suis pas un expert mais en parcourant rapidement le net il ne semble pas compatible pour le moment.
      En attendant vous pouvez utiliser IFTTT en adaptant les instructions cet article: Google Home et IFTTT aux API de Domoticz (C'est ici pour la documentation d'API)

  • Bonjour
    lorsque j'essaye de tester, le simulateur me renvoi l'erreur "Your app must have at least one action for locale fr"
    j'ai raté une étape quelque part ??

    Merci

    • Bonjour,
      Il est difficile de répondre sans plus de détails. Cependant, il y a quelques vérifications que vous pouvez faire.

      • Êtes vous certain que votre certificat est valide? vous pouvez le vérifier via https://www.sslshopper.com/ssl-checker.html
      • Êtes vous certain que votre installation est accessible de l'extérieur et que les redirections de ports sur votre box sont bien faites ? Le plus simple est de tester que vous pouvez accéder à votre installation via votre téléphone en 4G.
      • Êtes vous certain qu'il n'y a pas d'erreur dans votre configuration home assistant et que vous l'avez bien redémarré pour que vos modifications soient prises en compte

      Pouvez-vous faire ces vérifications avant d'aller plus loin ?

  • Bonjour
    L'accès depuis l'extérieur est OK; il n'y a pas de certificat ssl.
    J'utilise hassio ou on voit un ssl server! OUI mais comment s'en servir ?
    les fournisseurs de certificat ne sont pas très explicites.Un petit tuto serait le bienvenu ;)
    Merci.

    • Bonjour,
      ce tuto existe déjà ;) En effet, vous trouverez comment installer un certificat let's encrypt sur home assistant ici et comment configurer l'add-on sur hass.io ici

  • dur dur Let’s encrypt

    Je lance Let’s encrypt ca mouline ,puis le bouton start revient et aucun fichier n'est créé.

    Voilà la configuration:
    {
    "challenge": "https",
    "email": "claude61490@gmail.com",
    "domains": [
    "lejardinet.ddns.net"
    ],
    "certfile": "fullchain.pem",
    "keyfile": "privkey.pem"
    }
    Cherchez l'erreur!!

  • Bonjour

    je rame toujours:

    - Le State de Let’s encrypt est toujours a stopped ; est-ce normal ? (ou pourquoi)
    - Duck DNS est-il nécessaire ?
    - Quand cela fonctionnera :) ; de l'extérieur faudra-t-il utiliser le port 443 ou toujours 8123 .

    • Bonjour,

      * l'add-on let's encrypt stoppé, ce n'est pas normal. Avez-vous regardez dans les logs hass.io ? Sans plus d'information il est difficile de vous apporter de l'aide :(

      * Duck dns n'est pas l'unique solution qui existe mais il est nécessaire d'avoir un nom de domaine. En effet le certificat se basera sur ce dernier pour valider ou non la connexion.

      * Le port sera en 443 après la mise en place du certificats.

      En espérant que ces quelques éléments vous aide

  • Bonjour
    J'ai enfin mon home assistant en HTTPS accessible de l'extérieur ..Mais l'ajout un service: [test]xxx de home de google , après l'affichage rapide de plusieurs adresses me dit "impossible de mettre a jour le paramètre. vérifiez votre connexion" ?

    Dans configuration.yaml j'ai mis

    google_assistant:
    project_id: telecommandes-2c6aa
    client_id: nmjvvouuxk
    access_token: guptzjcdss
    exposed_domains:
    - switch
    - light

    Dans Action on google -> App information->Privacy and consent
    https://xxxxx.duckdns.org:8123 j'ai essayé sans 8123
    Dans Action on google ->Account linking->Client information
    client ID : nmjvvouuxk
    Authorization URL : https://xxxx.duckdns.org:8123/api/google_assistant/auth

    -Si j’appelle cette adresse dans firefox j'obtiens {"message": "missing redirect_uri field"}
    -L'access_token est-il nécessaire ?

    • Bonjour

      C'est peut-être le port qui induit en erreur votre action Google Assistant. De mon côté j'ai redirigé le port 443 de ma box vers le port 8123 de mon Raspberry Pi du coup j'ai une adresse du type: https://xxxx/api/google_assistant/auth. Concernant le message lorsqu'on entre l'URL directement dans un navigateur c'est normal. En effet, les requêtes sur cette adresse sont faites avec des paramètres.

      En entrant directement l'adresse dans Firefox vous n'avez pas ces paramètres et donc une erreur.

      Concernant l'access token il est obligatoire. Il est utilisé de manière transparente par le composant HA et google Assistant.

      Avez vous tenté de tester votre application via le simulateur de https://console.actions.google.com ? Si cela ne marche pas avez-vous un message d'erreur plus précis?

  • Ouii en moins de xxxxxx heures cela fonctionne !
    J'ai recréé un projet le projet google en entier ; l'adresse du gactions update n'était plus bonne.

    Merci de votre aide

Articles similaires