Hi everyone !
Finally have my project in a phase where I can at least present it.
Since I had a big mirror in my living room I decided to give it a bit more life !
Yes , my assist satellite is a mirror
Setting up my play time with this PS4 automation so I donât have to turn everything on.
- Turns on TV
- Turns on PS4
- All other lights are based on a different TV Automation which turn on close to sunset.
( I am basically saying Turn on Playstation in Portuguese ) :
Watch here: https://www.youtube.com/watch?v=UgGb9ESEt60
It starts with a blue(ish) light surrounding the mirror when Wake Word is detected and when it starts processing it starts to go faster as you can see in the video above.
In case of success it simply shows a green light.
You can check just some basic commands here:
Of course this will be done (not for now)
https://www.youtube.com/watch?v=sFh36gvV6LQ
How was this done ?
Mirror
An LED strip with a ESP chip and WLED installed.
Great documentation here :
https://kno.wled.ge/
Mic
ATOM Echo behind the back of the mirror
Link: $13 voice assistant for Home Assistant - Home Assistant
The fun part
The light animations are simple scripts located in Home assistant to send WLED light stripe the desired state. Just like this : WLED - Home Assistant
After setting the desired states for when the Assist is âListeningâ | âThinkingâ | âSuccefully done the automationâ then itâs a matter of going to ESPHOME custom integration and override the commads like this .
Note: On the script you can look for script.on_mic_listen | script.1709405312973 | script.on_mic_success which are the scripts created to run in each state.
voice_assistant:
id: va
microphone: echo_microphone
speaker: echo_speaker
noise_suppression_level: 2
auto_gain: 31dBFS
volume_multiplier: 2.0
vad_threshold: 3
on_listening:
- homeassistant.service:
service: script.on_mic_listen
on_stt_vad_end:
- homeassistant.service:
service: script.1709405312973
on_tts_start:
- homeassistant.service:
service: script.on_mic_success
- light.turn_on:
id: led
blue: 100%
red: 0%
green: 0%
effect: "Slow Pulse"
on_end:
- delay: 100ms
- wait_until:
not:
speaker.is_playing:
- script.execute: reset_led
on_error:
- light.turn_on:
id: led
red: 100%
green: 0%
blue: 0%
brightness: 100%
effect: none
- delay: 1s
- script.execute: reset_led
on_client_connected:
- if:
condition:
switch.is_on: use_wake_word
then:
- voice_assistant.start_continuous:
- script.execute: reset_led
on_client_disconnected:
- if:
condition:
switch.is_on: use_wake_word
then:
- voice_assistant.stop:
- light.turn_off: led
Let me know what you think!
See you!