Please add new configuration option (same as “Assist pipeline”, “Use Listen Light”…) which would be called “External speaker” and would allow to select any media player entity. Then, if this settings is empty, everything would behave as now. But if you add any speaker here and you give voice commands to M5, you’d get replies spoken back from the selected speaker instead of the teeny-tiny integrated one.
this would be ideal
Here is my approach to link atom echo to external speaker. V1 is older approach, v2 is new one…
It looks like my issue is for amazon echo speakers not working. I have seen a video of these devices actually using an external speaker for TTS, but this does not work at all for the amazon echo speakers. Very very frustrating
I connected one of these to the M5 and then connected an external amplifier.
Thats a good idea, but I don’t want to run even more wiring around the house. I think the services are a tad premature for me to go into any further at this point as I am not going to buy and replace all of these echo dots… and after hours of looking, noone else has them working either. Its just a matter of time that they will work as easily as google speakers do. …i hope…
I have 8 total that run really well. 4 esp32 based, and 4 Wyoming satellites.
I have retired the 4 ESP 32 devices for the Wyoming satellites.
The Wyoming satellites are doing their job very well.
I tinkered with the M5, but its not a good candidate for a voice assistant. The one I use with the amp I posted is just a media player now. It performs better than the Chromecast I had in its place.
hah! thats funny! I have 4 of each as well. I like the little atoms better with the obvious exception that I cant hear anything and it wont connect to alexa dots.
The Wyoming satellite constantly blinked the lights and it weirds out the wife. Honestly I dont know what it blinks at all as it shouldnt unless it is being woken with its wake word.
I am kinda stuck with alexa’s until I can get either of these to play through the alexa dots. A real bummer and a ton of wasted time on it.
None of the led’s activate on any of my Wyoming Satellites unless the wake word is spoken. Maybe you have something configured wrong?
very possible, they are all in the closet currently…
I have no need to bother with these again until they can talk to echo speakers.
Newbie here just starting my HA journey 2 days ago. My solution for linking the Atom Echo to an external speaker was to drill a 2mm hole in the side, pass a thin cable inside and solder it to the speaker wires. The other end plugs into the 3.5mm socket on a Bluetooth speaker I had lying around. The internal Atom mic continues to provide input and sits on top of the speaker. Works great!
how did you hook this up?
i used https://www.amazon.com/dp/B09C5QX228?psc=1&ref=ppx_yo2ov_dt_b_product_details
the pins you’ll need on the board are vin, gnd, lrck, din, bck. Its 5 of the 6 pins on the same side of the board.
vin = 5+
gnd = ground
lrck = left/right clock
din = data in
bck = bit clock
you’ll connect these pins to the ones below on the atom echo.
vin → 5v
gnd → G
lrck → G33 lrck
din → g22 data out
bck → g19 bclk
you should be able to connect some headphones to it and hear it. its meant to be audio out so if you connect it to an external speaker, it should sound perfect.
sigh… why cant this just bluetooth to echo’s. not sure why that doesnt work. Ive tried a few trimes
Awesome thank you!
This works perfectly! Thank you so much for sharing!
This is my approach I did a lot off tests, even using mqtt to offload the on machine timers to home assistant and let the LLM figure it out. I landed on a different approach, you can check my conf here: wake-word-voice-assistants/m5stack-atom-echo.yaml at a8b543aecabab6bd573e30d020999e9c0545b0ee · hend0012/wake-word-voice-assistants · GitHub. Major changes to the original conf are :
-
I removed the functionality that would turn off the wake word detection during timer ring.
on_tts_start:
- light.turn_on:
id: led
blue: 100%
red: 0%
green: 0%
brightness: 100%
effect: none
- homeassistant.service:
service: tts.cloud_say
data:
entity_id: ${target_media_player}
data_template:
message: "{{ my_stt }}"
variables:
my_stt: return x;
on_timer_finished:
- switch.turn_on: timer_ringing
- light.turn_on:
id: led
red: 0%
green: 100%
blue: 0%
brightness: 100%
effect: "Fast Pulse"
- while:
condition:
switch.is_on: timer_ringing
then:
- homeassistant.service:
service: media_player.play_media
data:
entity_id: ${target_media_player}
media_content_id: "https://github.com/esphome/wake-word-voice-assistants/raw/main/sounds/timer_finished.wav"
media_content_type: "music"
and I made the timer ringing swith configurable in HA. This creates an entity and now you can tell your LLM to look at Esphome devices with that switch to turn off the onboard timer:
switch:
- platform: template
name: Use listen light
id: use_listen_light
optimistic: true
restore_mode: RESTORE_DEFAULT_ON
entity_category: config
on_turn_on:
- script.execute: reset_led
on_turn_off:
- script.execute: reset_led
- platform: template
name: timer_ringing
id: timer_ringing
optimistic: true
restore_mode: RESTORE_DEFAULT_ON
entity_category: config
on_turn_on:
- switch.turn_on: timer_ringing
on_turn_off:
- switch.turn_off: timer_ringing
This was a perfect solution for me, though I might try to put it all in a small project box for my next one. Note: all three of my DAC boards had the pins extended into the headphone jack far enough to block insertion of the headphone cable. I took a small flat screwdriver and bent them back towards the casing and it worked fine.
Thanks for this. Now I have a new project. PCBs are en route from jlpcb already.