ESPHome Yaml is:
substitutions:
name: atom-echos3r
friendly_name: Atom Echo S3R
esphome:
name: ${name}
friendly_name: ${friendly_name}
min_version: 2024.6.0
esp32:
board: esp32-s3-devkitc-1
variant: esp32s3
framework:
type: esp-idf
logger:
api:
encryption:
key: !secret api_key
ota:
- platform: esphome
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.0.113
gateway: 192.168.0.1
subnet: 255.255.255.0
ap:
ssid: "${friendly_name} Fallback"
password: !secret ap_password
captive_portal:
# -----------------------------
# AUDIO HARDWARE (I2S)
# -----------------------------
i2s_audio:
id: audio_bus
i2s_lrclk_pin: GPIO17
i2s_bclk_pin: GPIO16
microphone:
- platform: i2s_audio
id: mic_in
adc_type: external
i2s_din_pin: GPIO15
channel: left
speaker:
- platform: i2s_audio
id: spk_out
dac_type: external
i2s_dout_pin: GPIO14
# -----------------------------
# SPEAKER AMPLIFIER ENABLE
# -----------------------------
switch:
- platform: gpio
id: speaker_amp
name: "Speaker Amplifier"
pin: GPIO18
restore_mode: ALWAYS_ON
# -----------------------------
# WAKE WORD DETECTION
# -----------------------------
micro_wake_word:
id: wake_word
microphone: mic_in
models:
- model: hey_jarvis
# -----------------------------
# VOICE ASSISTANT
# -----------------------------
voice_assistant:
microphone: mic_in
speaker: spk_out
use_wake_word: true
noise_suppression_level: 2
micro_wake_word: wake_word
on_listening:
- switch.turn_on: speaker_amp
on_end:
- switch.turn_off: speaker_amp
Wakewords are defined in Voice Assistant, but are always greyed out in the Atom integration entry.