Hello, voici une petite procedure de comment je fais :
Information importante avant de commencer :
Il faut absolument créer un mot de passe d’application pour que cela fonctionne.
Pour créer ce mot de passe, suivi ce tutoriel : Se connecter avec des mots de passe d'application - Aide Compte Google
Installation des dépendances :
- Créer un repertoire dans votre serveur Jeedom (pour ma part j’ai créer le repertoire /var/www/Gcast)
- Installer les dépendances
# pip3 install gpsoauth
# apt install jq
Installation des fichiers et attributions des droits :
-
Télécharger les fichiers préparés (retirer l’extension .txt pour garder uniquement le .tgz) : GHToken.tgz.txt (5,2 Mo)
-
Mettre le contenu dans le repertoire que vous voulez (l’archive inclus deja le dossier parent Gcast)
-
Attribuer les droits a l’utilisateur apache sur le dossier complet
Le grpcurl inclus dans le package est un grpcurl pour Linux x64. Si vous êtes en 32 bits, il vous faut remplacer le grpcurl par celui inclus dans cette archive : https://github.com/fullstorydev/grpcurl/releases/download/v1.7.0/grpcurl_1.7.0_linux_x86_32.tar.gz
A l’heure actuelle aucune version ARM compilé n’existe (et donc ne fonctionne pas sous RPI) mais vous pouvez une compiler une vous même en suivant l’installation par source expliqué ici : grpcurl/README.md at master · fullstorydev/grpcurl · GitHub
Si vous le compilez, partagez le moi que je puisse l’ajouter dans l’archive, il devrait pouvoir servir directement aux autres
# chown -R www-data: /var/www/Gcast
-
Modifier le fichier get_tokens.py pour y saisir votre email Google (USERNAME) et votre mot de passe (PASSWORD)
-
Verifiez que get_token.py et grpcurl sont executable, dans le cas contraire ou en cas de doute, lancer la commande :
# chmod +x /var/www/Gcast/get_tokens.py /var/www/Gcast/grpcurl
Tests manuels TOKEN de compte:
- Lancer un test manuel de recuperation de token
# /var/www/Gcast/get_tokens.py
Astuce :
A partir de ce moment là vous devez avoir un MasterToken et un AccessToken qui vont sous fournit. Si vous ne souhaitez pas garder votre mot de passe dans le code, vous pouvez aussi retirer votre mot de passe (laisser PASSWORD = ‹ ›) et mettre le MasterTolen que vous avez reçu dans la variable master_token)
Voici le type de résultat que vous devez avoir :
- Garder l’access_token que vous avez car on va l’utiliser dans la commande suivante (a la place du INSERTHEREYOURACCESSTOKEN)
Tests manuels TOKEN de Google Home:
- Lancer la commande suivante :
# /var/www/Gcast/grpcurl -H 'authorization: Bearer INSERTHEREYOURACCESSTOKEN' -import-path /var/www/Gcast -proto /var/www/Gcast/google/internal/home/foyer/v1.proto googlehomefoyer-pa.googleapis.com:443 google.internal.home.foyer.v1.StructuresService/GetHomeGraph | jq '[.home.devices[] | {deviceName, localAuthToken}]'
Attention a bien adapter les chemins dans la commande (pour rappel moi j’utilise /var/www/Gcast mais si ce n’est pas le cas pour vous, adaptez le).
Il faut donc saisir après le mot Bearer votre accesstoken récupéré précédemment et au besoin changer le chemin si vous n’utilisez pas le même que moi
Import du scénario :
Ensuite pour automatiser cela dans le plugin GoogleCast (en attendant que le développeur fasse la modification comme je lui ai demandé dans l’Issue Integration automatique des Jeton Google Assistant/Home · Issue #73 · guirem/plugin-googlecast · GitHub), j’ai fait un scenario qui s’execute toutes les heures (comme on sait pas vraiment comme le token expire), qui lance un bloc code pour mettre a jour les token dans les équipements.
Ca marche bien chez moi mais jamais testé ailleurs donc je vous conseil de maitriser un peu le sujet avant de vous lancer ou bien d’attendre que d’autres testent et confirme.
Je vous joint le template du scénario (renommer l’extension en .json au lieu de .txt)
GH_token.txt (4,5 Ko)
Pour importer le scénario, aller dans les scénario et en créer un nouveau. Puis cliquer sur le logo Template en haut de votre scénario
Puis importer et appliquez votre scénario
Edition du scénario :
Maintenant éditer votre scénario pour changer le $PATH pour mettre le repertoire que vous utilisez.
Il suffit de changer le $PATH pour mettre le repertoire que vous utilisez.
J’espère que cela vous aide