Etant amené comme certains d’entre vous à trouver d’autres alternatives à IFTTT, j’ai décidé de basculer à des commandes vocales de GA vers HA.
Pour ce tutoriel, j’ai déroulé la procédure officielle : Google Assistant - Home Assistant
Niveau requis
- Débutant / Intermédiaire / Avancé
Matériels nécessaires / Matériels utilisés / Prérequis
- L’intégration manuelle de Google Assistant nécessite plus de configurations que la version cloud en raison de la façon dont Google exige que les apps Assistant soient configurées. Donc prenez du temps devant vous, car il faut un peu s’accrocher
- Posséder un compte Google
- Votre configuration HA doit être accessible à l’extérieur avec un nom d’hôte et un certificat SSL.
Créer un compte de service
Vous devrez créer un compte de service Create Service account key qui vous permettra de mettre à jour vos devices sans avoir à reconnecter votre compte (voir ci-dessous).
Si vous ne fournissez pas le compte de service, le service « google_assistant.request_sync » ne sera pas exposé sous HA.
Il est recommandé de configurer cette clé car elle permet également l’utilisation de la commande suivante, « Ok Google, synchronise mes appareils ».
Une fois que vous aurez configuré ce composant, vous devrez appeler ce service (ou commande) chaque fois que vous ajoutez un nouvel appareil dans Home Assistant que vous souhaitez contrôler via l’intégration de l’Assistant Google.
- Dans la console Google Cloud Platform, accédez à la page Create Service account key.
- En haut à gauche de la page à côté du logo « Google Cloud Platform », sélectionnez votre projet créé dans les actions de la console Google. Confirmez cela en examinant le project_id et assurez-vous qu’il correspond.
- Dans la liste de compte Service, sélectionnez « Nouveau compte de service ».
- Dans le champ Nom de compte Service, entrez un nom.
- Dans le champ ID de compte de service, entrez un ID.
- Dans la liste Rôle, sélectionnez Comptes de service > Créateur de jetons de compte de service.
- Pour le type de clé, sélectionnez l’option JSON.
- Cliquez sur Créer. Un fichier JSON qui contient vos clés sur votre ordinateur.
- Utilisez les informations de ce fichier ou directement le fichier pour ajouter les clés « service_account » dans configuration.yaml (cf. le code ci-dessous.
- Accédez à Google API Console.
- Sélectionnez votre projet et cliquez sur Activer « HomeGraph API ».
Créez un nouveau projet dans Actions on Google console
- Cliquez sur
New project
et donnez un nom à votre projet.
- Cliquez sur
Smart Home
, puis cliquez sur le boutonStart Building
. - Cliquez sur
Build your Action
, puis surAdd Action(s)
. - Ajoutez votre URL de votre HA :
https://xxxxx.duckdns.org:8123/api/google_assistant
dans la zoneFulfillment URL
- Cliquez sur
Save
. - Cliquez sur l’onglet
Overview
, ce qui vous ramène à l’écran des détails de l’application.
'Account linking` est nécessaire pour que votre application interagisse avec Home Assistant
- Configurez cette mise en place en cliquant sur
Setup account linking
sous la sectionQuick Setup
de la pageOverview
. - Si demandé, laisser les options comme ils sont par défaut
No, I only want to allow account creation on my website
et sélectionnezNext
. - Ensuite, si demandé, pour le
Linking type
sélectionnezOAuth
etAuthorization Code
. Cliquez surNext
- Entrez ce qui suit : 1. client ID:
https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID
. (Trouvez votre YOUR_PROJECT_ID en cliquant sur l’icône 3 petits points dans le coin supérieur droit de la console, en sélectionnantProject Settings
, votre ID de projet sera répertorié sous l’ongletGENERAL
de la pageSettings
.) 2. Client secret: Tout ce que vous voulez, Home Assistant n’a pas besoin de ce champ. 3. URL d’autorisation (remplacer par votre URL réelle) :https://[YOUR HOME ASSISTANT URL:PORT]/auth/authorize
. 4. URL de jeton (remplacer par votre URL actuelle) :https://[YOUR HOME ASSISTANT URL:PORT]/auth/token
. Cliquez surNext
, puisNext
à nouveau. - Dans
Configure your client
Scopes
, tapezmail
et cliquez surAdd scope
, puis tapezname
, puis cliquez à nouveau surAdd scope
. - Ne vérifiez PAS
Google to transmit clientID and secret via HTTP basic auth header
. - Cliquez sur
Next
, puis surSave
Générer l’application
-
Sélectionnez l’onglet
Develop
en haut de la page, puis, dans le coin supérieur droit, sélectionnez le boutonTest
pour générer l’application de test de version préliminaire. Si cette option ne s’affiche pas, accédez plutôt à l’ongletTest
, cliquez sur le boutonSettings
en haut à droite sous l’en-tête et assurez-vous queOn device testing
est activé (si ce n’est pas le cas, activez-le). -
Ajoutez la configuration d’intégration
google_assistant
à votre fichierconfiguration.yaml
de la manière ci-dessous et redémarrez HA.
google_assistant: project_id: home-assistant-votre_project_ID service_account: !include le_fichier_json_que_vous avez_genere_precedemment.json exposed_domains: - script
Se référer au tuto officiel pour affiner vos possibilités HA.
Synchroniser HA dans Google Home
- Sous l’app Home Cliquez sur
+
en haut à gauche de l’application, +Configurer un appareil
, puis cliquez surVous avez déjà configuré des services
. Vous devez avoir [test] + votre nom d’application répertorié sous ‹ Ajouter nouveau ›.
La sélection qui devrait vous conduire à un navigateur pour connecter votre instance Home Assistant, puis rediriger vers un écran où vous pouvez définir des chambres et des surnoms pour vos appareils si vous le souhaitez.
Routines
Enfin, je reprends intégralement le tuto de routines sous l’app Home de @Clemalex pour la dernière étape (merci à lui ):
Sur l’application Home :
Tu clique sur Routines
:
Puis, en bas sur Gérer les routines
:
Puis Ajouter une routine
:
Ensuite sur Ajouter des commandes (requis)
:
Il faut maintenant renseigner la commande vocale (ou manuscrite) puis cliquer sur OK
:
Il faut maintenant cliquer sur Ajouter une action
:
Il faut passer sur l’onglet Parcourir les actions populaires
, puis cliquer sur la roue dentée pour afficher la fenêtre de choix d’exécution de script :
Il faut cliquer sur le script qui est a lancer puis cliquer sur OK
(le script provient de HA) :
Dans la fenêtre de choix des actions, faire défiler tous en bas pour sélectionner Dire quelque chose
puis inscrire la réponse de l’Assistant Google :
Une fois la phrase de retour configurer, tu devrais avoir ça :
Il suffit maintenant de cliquer sur Enregistrer
tout en haut et ta routine est créé et disponible sur tous les appareils connectés à ce compte :
Autre source que je vous conseille de suivre en parallèle pour trouver des similitudes : le tutoriel de @fredarro et la video de Paradis Artificiels, commençant à dater un peu, on retrouve à peu près les mêmes instructions
Suivi des modifications
- 03/02/2021 : Mise en forme @Clemalex
- 10/09/2020 : création @Christianb233