Routine Alexa via HA

Bonjour,

J’ai un Echo dot 5 avec lequel j’ai réussi à récupérer mes capteurs via HA en appliquant ce tuto;

Alexa avec Home Assistant GRATUITEMENT sans Nabu Casa !

J’ai un capteurs d’ouverture SNZB04P que j’ai remontés pour tester une routine sur l’application android Alexa.
Ce capteur réagit bien sur l’application android Alexa et HA lorsque j’ouvre et je le ferme, c’est synchro.
Ma routine consiste, lorsque le capteur s’ouvre à jouer un son sur l’Echo dot 5, la routine est active ainsi que le capteur.
La fonction test sur l’application fonctionne, mais rien ne se passe si j’ouvre le capteur.

Quelqu’un aurait une idée? ou une autre façon de faire?


[center]## System Information

version core-2025.2.3
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.13.1
os_name Linux
os_version 6.6.73-haos
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 5000
Installed Version 2.0.5
Stage running
Available Repositories 1597
Downloaded Repositories 7
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 14.2
update_channel stable
supervisor_version supervisor-2025.02.0
agent_version 1.6.0
docker_version 27.2.0
disk_total 468.7 GB
disk_used 109.8 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board generic-x86-64
supervisor_api ok
version_api ok
installed_addons Studio Code Server (5.18.1), File editor (5.8.0), Get HACS (1.3.1), Samba share (12.4.0), Mosquitto broker (6.5.0), tydom2mqtt (3.5.3), Frigate (0.15.0), ZeroTier One (0.19.0), Plex Media Server (3.6.2), Tailscale (0.24.0), Zigbee2MQTT (2.1.1-1), MyElectricalData (0.13.2), Teamspeak server (3.13.6-8), VLC (0.3.0), Cloudflared (5.2.9), Advanced SSH & Web Terminal (20.0.0)
Dashboards
dashboards 3
resources 2
views 1
mode storage
Network Configuration
adapters lo (disabled), enp1s0 (enabled, default, auto), docker0 (disabled), hassio (disabled), zt3jn7flxm (disabled), vethf2eee35 (disabled), vethd783b29 (disabled), veth1c80d9d (disabled), veth09e8f70 (disabled), veth5b40f9c (disabled), veth6adab98 (disabled), vethbe4bb07 (disabled), veth05e199f (disabled), vethe603a33 (disabled), veth92ccdc0 (disabled), veth6d29cb9 (disabled), vethcd91c91 (disabled), veth887d5a7 (disabled), veth111dc43 (disabled), vethff8d24e (disabled), veth74148bb (disabled)
ipv4_addresses lo (127.0.0.1/8), enp1s0 (192.168.1.98/24), docker0 (172.30.232.1/23), hassio (172.30.32.1/23), zt3jn7flxm (192.168.192.86/24), vethf2eee35 (), vethd783b29 (), veth1c80d9d (), veth09e8f70 (), veth5b40f9c (), veth6adab98 (), vethbe4bb07 (), veth05e199f (), vethe603a33 (), veth92ccdc0 (), veth6d29cb9 (), vethcd91c91 (), veth887d5a7 (), veth111dc43 (), vethff8d24e (), veth74148bb ()
ipv6_addresses lo (::1/128), enp1s0 (2001:861:5b83:ae0:dfae:c48b:eb18:626c/128, 2001:861:5b83:ae0:938f:e422:a1f7:9734/64, fe80::a5ce:218f:60d:63c8/64), docker0 (fe80::42:79ff:fed0:588f/64), hassio (fe80::42:a3ff:febb:a213/64), zt3jn7flxm (fe80::58fc:2eff:fed7:414c/64), vethf2eee35 (fe80::30cd:5bff:fe37:daa7/64), vethd783b29 (fe80::f839:40ff:fede:2994/64), veth1c80d9d (fe80::e83b:c2ff:fe05:d13f/64), veth09e8f70 (fe80::e406:36ff:fe1a:1dfc/64), veth5b40f9c (fe80::3c49:53ff:fe97:edce/64), veth6adab98 (fe80::60a6:dfff:fe86:54ad/64), vethbe4bb07 (fe80::cc90:22ff:fe75:dedf/64), veth05e199f (fe80::7454:4aff:fece:67cb/64), vethe603a33 (fe80::7c21:fcff:fe03:f093/64), veth92ccdc0 (fe80::c827:16ff:fe0f:ef8a/64), veth6d29cb9 (fe80::341e:6cff:feed:bb96/64), vethcd91c91 (fe80::2071:6cff:feef:963e/64), veth887d5a7 (fe80::24de:4cff:feb4:be47/64), veth111dc43 (fe80::78da:6aff:fefa:4a53/64), vethff8d24e (fe80::1846:5bff:fe4c:af9a/64), veth74148bb (fe80::b8fb:6dff:fe8b:7cba/64)
announce_addresses 192.168.1.98, 2001:861:5b83:ae0:dfae:c48b:eb18:626c, 2001:861:5b83:ae0:938f:e422:a1f7:9734, fe80::a5ce:218f:60d:63c8
Recorder
oldest_recorder_run 2 février 2025 à 06:00
current_recorder_run 13 février 2025 à 15:41
estimated_db_size 46.86 MiB
database_engine sqlite
database_version 3.47.1
[/center]

Salut
j’aurais fait ça dans HA avec une automatisation
en trigger le détecteur d’ouverture
en action lire un message sur ton echo dot (je ne connais pas le faisabilité sur Alexa, mais je le fait sur GoogleHome)

Merci de ta réponse,

j’ai essayé mais je n’ai en retour qu’un pauvre bip que je ne peux pas configurer.
Ci-joint le script et la scène utilisé:

Je ne vois pas comment faire autrement.

je passe par une action TTS

data:
  cache: true
  language: fr
  message: Les volets vont se fermer
  media_player_entity_id: media_player.nestaudio6062
target:
  entity_id: tts.google_en_com
action: tts.speak

Bonsoir,

Un exemple qui fait dire à une de mes enceintes Alexa que la porte du garage est ouverte en fonction de l’état d’un capteur d’ouverture/fermeture :

alias: Garage - Notification d'ouverture de la porte du garage
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.garage_detecteur_d_ouverture_porte_du_garage_contact
    from: "on"
    to: "off"
conditions: []
actions:
  - action: notify.alexa_media_echo_salon
    metadata: {}
    data:
      message: Porte du garage ouverte
mode: single

C’est très basique mais ça fonctionne bien

1 « J'aime »

Super, vos réponses sont très instructives, cependant je voudrais juste jouer un son un peu plus évolué qu’un simple bip…
Là je crains que ce soit plus compliqué et bien prendre en compte que c’est un Echo dot 5 (sans hub zigbee).

Peu importe que tu sois sur une Echo Ddot ou une Echo avec hub.
La procédure est un peu différente pour faire jouer un son :

alias: Notification sur Echo
trigger:
  - platform: state
    entity_id: binary_sensor.porte_entree
    to: "on"
action:
  - service: media_player.play_media
    data:
      entity_id: media_player.ton_echo
      media_content_id: "https://www.example.com/son.mp3"
      media_content_type: "music"
mode: single

J’ai pas tout lu, mais tu trouveras une piste ici :

Merci!, je vais explorer tout ça. :+1:

J’ai regroupé tout un tas de conseils sur Alexa là:

il y a des bouts de codes et ça pourra surement t’aider…

Merci BBE, j’avais déjà parcouru tes infos et encore merci pour ce que tu partages pour la communauté.
Cela fait plusieurs jours que je travaille sur mon projet; configurer Alexa pour l’intégrer dans HA et vice et versa. J’ai passé des heures pour résoudre les problèmes de configuration que j’ai rencontré; Et maintenant que je veux juste que mon Echo dot 5 me fasse un son lorsqu’un capteur d’ouverture s’ouvre, c’est encore compliqué. Mème en passant par le logiciel Alexa sur android, une simple routine sur mon capteur ne se déclenche pas. Je lis des tonnes de page, j’en deviens chèvre pour comprendre toutes ces fonctions, cela devient une usine à gaz ce truc…

Pour DDfdom et Cleya, merci, j’ai testé en tts c’est ok mais avec un lien hhtps vers un son j’ai un message d’Alexa qui me dis que la fonction direct music streaming n’est pas supporté, que c’est une limitation Amazon etc…
J’ai lu la doc pour convertir les mp3 pour les rendre compatible Amazon, là non j’abandonne.

MP3 vers Alexa j’ai abandonné aussi …

Ce que je ferai c’est une automatisation coté HA qui lance un TTS sur Echo plutôt que chercher à le faire dans Alexa.

Autre possibilité fournie par Alexa media Player: jouer des sons: Home · alandtse/alexa_media_player Wiki · GitHub

A priori il y en a plein: Alexa Skills Kit Sound Library | Alexa Skills Kit y compris des bruits de porte qui s’ouvre et de porte qui se ferme…

Mais là encore je mettrai l’automatisation coté HA, sans faire une routine Alexa.

De mon point de vue les routines Alexa sont utiles uniquement pour lancer des scripts HA.

Alors pourquoi tu ne l’utilises pas ?

1 « J'aime »

On ne fait pas uniquement de la voix avec TTS?

Si je peux faire du son, alors comment faire, car si je prends cet exemple, je ne sais pas quoi faire de ces commandes.
Comment les formater, dans quoi etc…

Je me suis beaucoup investi en temps et argent pour en arriver là, je suis toujours motivé pour apprendre mais il y a des bases que j’ai du rater en essayant juste de régler des problèmes.
La méthode découverte à ses limites.

Encore merci à vous de me guider.

c’est pas ton besoin à la base ?

1 « J'aime »

Mon besoin, comme je l’ai indiqué dans mon message, c’est de jouer un son, pas de faire lire une phrase à Alexa. J’ai compris qu’il ne fallait pas compter sur les routines Alexa mais plutôt de faire un script sur HA. Mais comme tu vois, je suis limité…
Désolé si je me fait mal comprendre.

Excuse nous, mais si tu sais faire du TTS depuis HA, tu maitrise une syntaxe qui te permet par definition de jouer un son (du texte lu) sur Alexa.
Rien ne t’oblige à faire une phrase longue, tu peux très bien faire dire à alexa: « porte ouverte », ou même « ding » « boum » ou « paf »…

Je te cite:

Donc on part du postulat que tu as su faire dire un truc à Alexa…

Concernant le wiki de Alexa media player, ça:

c’est un exemple de script.

Il y a toute la syntaxe pour faire un script qui joue un son…

tu peux aussi essayer d’inclure cette syntaxe:

service: media_player.play_media
target:
  entity_id: media_player.le_nom_de_ton_echo_dot_5
data:
  media_content_type: sound
  media_content_id: amzn_sfx_doorbell_chime_01

dans une automatisation.

Mais comme tous les services, tu peux aussi le tester directement dans l’outil de développement.

Tu as vraiment lu mes explication et testé les codes que j’ai donné pour faire du TTS??? C’est quasi la même syntaxe, juste le service qui change ! Les services ont été renommés actions, mais a priori les deux restent valides…

La syntaxe « officielle » est donc peut être devenue :

action: media_player.play_media
target:
  entity_id: media_player.le_nom_de_ton_echo_dot_5
data:
  media_content_type: sound
  media_content_id: amzn_sfx_doorbell_chime_01

Mais ça ne change pas grand chose…

Et je persiste, la différence avec la syntaxe TTS est faible et devrait te permettre de trouver où insérer ça si comme tu dis tu sais faire du TTS:

action: notify.alexa_media
data:
  message: La machine à laver est terminée
  target:
    - media_player.echo_1
    - media_player.echo_2
    - media_player.echo_dot_1
  data:
    type: tts
  title: Annonce lavage fini

Tiens c’est cadeau un exemple d’automatisation simple avec du TTS:

alias: TEMPO - notification demain jour rouge
description: Les Alexas (Salon SdB Cuisine) annoncent que demain sera rouge vers 20h
triggers:
  - trigger: state
    entity_id:
      - input_text.couleur_demain
    to: ROUGE
    for:
      hours: 0
      minutes: 0
      seconds: 5
conditions:
  - condition: time
    after: "19:30:00"
    before: "20:30:00"
actions:
  - action: notify.alexa_media
    data:
      message: Attention ! Demain sera un jour rouge.
      target:
        - media_player.echo_dot_jeanne
        - media_player.echo_jeanne
        - media_player.jeanne_echo_dot
      data:
        type: tts
      title: Annonce jour rouge
mode: single

La même chose pour le service son donnerait:

alias: TEMPO - chime01 si demain jour rouge
description: Alexa Salon fait un son chime01 si demain est rouge vers 20h
triggers:
  - trigger: state
    entity_id:
      - input_text.couleur_demain
    to: ROUGE
    for:
      hours: 0
      minutes: 0
      seconds: 5
conditions:
  - condition: time
    after: "19:30:00"
    before: "20:30:00"
actions:
  - action: media_player.play_media
    target:
      entity_id: media_player.echo_jeanne
    data:
      media_content_type: sound
      media_content_id: amzn_sfx_doorbell_chime_01
mode: single

Malentendu!
Je ne maitrise rien! c’est bien là le problème. Lorsque je fait un script, j’utilise l’éditeur classique.

Ensuite j’ouvre en yaml pour voir de quoi il s’agit et j’essaie de faire le job en utilisant vos exemples. Mais est ce dans un script, une scène, une automatisation qu’il faut faire ça?

Concernant le son, je ne veux pas de texte lu mais bien un bruit de sonnette par exemple.

Super! je vais étudier ça d’autant que je suis sur l’offre Tempo.

La capture que tu montres, c’est une automatisation qui contient

  • triggers : ce sont les déclencheurs. N’importe laquelle de ces condition va déclencher ton automatisation. C’est ça qui va « réveiller » ta machine…
  • Conditions: ce sont des filtres. Il faut que TOUTES les conditions soient vraies au moment du trigger pour que l’automatisation s’execute, si au moins une des condition n’est pas vraie l’automatisation s’arrête définitivement, (enfin jusqu’au prochain trigger…).
  • Actions: c’est la suite d’événement à réaliser.

Un script c’est seulement la suite d’actions. Tu peux le lancer depuis le dashboard, depuis une automatisation, ou depuis Alexa qui va interpreter les scripts comme des scènes (il faut faire une routine dans l’appli Alexa pour pouvoir lancer un script HA = une scène Alexa)