Voici une petite procédure pour envoyer du texte sur des enceintes Alexa Echo.
J’ai des enceintes type Sonos (play one et une Ikea), cela fonctionne de base via l’intégration de « media-control », mais pas avec Alexa Echo …
Ayant quelques Alexa Echo je souhaitais pouvoir aussi leur envoyer un texte.
Pré-requis :
- HA (la base)
- Node-Red
- Des Alexa Echo
- Un compte Amazon qui est associé aux Echos
HA :
Création des « Entrées » necessaires pour la partie « lovelace ».
Aller dans le menu « Configuration », « Entrées », « Ajouter une entrée » :
Curseur de son :
Liste des Alexa Echo :
La zone de texte à envoyer :
Le bouton pour envoyer :
Dans un dashboard lovelace :
Voici le code :
type: entities
title: Envoie msg à un Alexa Echo via NodeRed
entities:
- entity: input_text.mon_texte_pour_alexa_echo
name: Texte à envoyer
- entity: input_number.curseur_son_alexa_echo
name: Volume
- entity: input_select.ma_liste_alexa_echo
name: Alexa Echo cible
- entity: input_boolean.mon_inter
name: Envoyer
Node Red :
Installer une nouvelle palette, aller dans le « menu », « settings », « palette » :
Cliquer sur « Palette », « Install », rechercher « alexa remote » puis cliquer sur « install » du module « node-red-contrib-alexa-remote2-v2 » :
Avant de voir la configuration de chaque composants, voici à quoi ressemble le flow :
Un composant « Trigger state » (le bouton d’envoi) :
Spécifique : on ne veut que le passage à « on » de l’interrupteur, on verra par la suite pourquoi.
Un composant « Current State » (le texte à envoyer) :
Un composant « Current state » (le choix de l’Echo) :
Un composant « Current state » (le niveau de son) :
Un composant « Alexa routine » (l’intelligence du module Node-Red) :
Ce qui est fait ici, c’est que le HA/Node-Red va proxifier la connexion pour récupérer le cookie de connexion pour le rejouer à chaque envoie de message.
Au premier déploiement, sous le composant « Alexa routine » il affichera de se connecter sur l’IP du HA fourni et le port dans une page Web, il faudra alors se connecter avec le compte Amazon en lien avec les Alexa Echo.
Un composant « Call service » :
Ce dernier composant sert à repasser le bouton d’envoi (input_boolean.mon_inter) en position « 0 », c’est de la cosmétique en attendant que je trouve mieux ;).
Mettre les liens entre les différents composants et faire le « Deploy » (à la première connexion, il faut ouvrir une page web avec l’IP du HA et port fourni dans la « Alexa routine »).
Retourner sur la carte « lovelace » précédemment créée et tester !
Note :
Je pense que cela à un impact sur la langue, je l’avais fait pour les voix FR avec Sonos.
Dans le « Configuraiton.yaml » :
# Text to speech
tts:
- platform: google_translate
language: "fr"