chore: initial baseline before refactoring
Initial snapshot of Home Assistant config (HAOS 2026.4.4)
prior to dashboard restructuring and helper YAML migration.
Pre-commit cleanup applied:
- Removed blueprints/switch_manager/ (9.4 MB stale, component already gone)
- Removed .storage/switch_manager
- Removed home-assistant.log.{1,old,fault}
- Removed zigbee2mqtt/configuration_backup_v{1..4}.yaml
- Removed zigbee2mqtt/database.db.tmp.2024-09-27 (1.5y old)
- Created empty themes/ to satisfy configuration.yaml include
.gitignore uses allowlist strategy for .storage/ to keep
all tokens, keys, and PINs out of version control.
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
substitutions:
|
||||
name: esp32-bluetooth-proxy-0951c0
|
||||
friendly_name: Bluetooth Proxy Küche
|
||||
packages:
|
||||
esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/esp32-generic/esp32-generic.yaml@main
|
||||
esphome:
|
||||
name: ${name}
|
||||
name_add_mac_suffix: false
|
||||
friendly_name: ${friendly_name}
|
||||
api:
|
||||
encryption:
|
||||
key: tCgIpe235uTVcMc/je7gVaUud7xStoBXLfr28XPCR7U=
|
||||
|
||||
|
||||
wifi:
|
||||
ssid: !secret wifi_ssid
|
||||
password: !secret wifi_password
|
||||
@@ -0,0 +1,42 @@
|
||||
substitutions:
|
||||
name: home-assistant-voice-0911a0
|
||||
friendly_name: Home Assistant Voice
|
||||
packages:
|
||||
Nabu Casa.Home Assistant Voice PE: github://esphome/home-assistant-voice-pe/home-assistant-voice.yaml
|
||||
esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/esp32-generic/esp32-generic.yaml@main
|
||||
esphome:
|
||||
name: ${name}
|
||||
name_add_mac_suffix: false
|
||||
friendly_name: ${friendly_name}
|
||||
|
||||
esp32:
|
||||
board: esp32-s3-devkitc-1
|
||||
cpu_frequency: 240MHz
|
||||
variant: esp32s3
|
||||
flash_size: 16MB
|
||||
framework:
|
||||
type: esp-idf
|
||||
version: recommended
|
||||
sdkconfig_options:
|
||||
CONFIG_ESP32S3_DATA_CACHE_64KB: "y"
|
||||
CONFIG_ESP32S3_DATA_CACHE_LINE_64B: "y"
|
||||
CONFIG_ESP32S3_INSTRUCTION_CACHE_32KB: "y"
|
||||
|
||||
# Moves instructions and read only data from flash into PSRAM on boot.
|
||||
# Both enabled allows instructions to execute while a flash operation is in progress without needing to be placed in IRAM.
|
||||
# Considerably speeds up mWW at the cost of using more PSRAM.
|
||||
CONFIG_SPIRAM_RODATA: "y"
|
||||
CONFIG_SPIRAM_FETCH_INSTRUCTIONS: "y"
|
||||
|
||||
CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST: "y"
|
||||
CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY: "y"
|
||||
|
||||
CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC: "y"
|
||||
CONFIG_MBEDTLS_SSL_PROTO_TLS1_3: "y" # TLS1.3 support isn't enabled by default in IDF 5.1.5
|
||||
|
||||
api:
|
||||
encryption:
|
||||
key: Aq3VMHZJ7q0FpT3pvWAW/DjbYERV4ABDio3oke3McHE=
|
||||
wifi:
|
||||
ssid: !secret wifi_ssid
|
||||
password: !secret wifi_password
|
||||
@@ -0,0 +1,77 @@
|
||||
packages:
|
||||
# This is an inline package to prefix the on_client_connected with the wait_until action
|
||||
# It must appear before the actual package so it becomes the orignal config and the
|
||||
# on_client_connected list from the package config is appended onto this one.
|
||||
va_connected_wait_for_ble:
|
||||
voice_assistant:
|
||||
on_client_connected:
|
||||
- wait_until:
|
||||
not: ble.enabled
|
||||
- delay: 2s
|
||||
wifi:
|
||||
on_disconnect:
|
||||
- ble.enable:
|
||||
home-assistant-voice: !include home-assistant-voice.yaml
|
||||
esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/esp32-generic/esp32-generic.yaml@main
|
||||
|
||||
esphome:
|
||||
project:
|
||||
name: Nabu Casa.Home Assistant Voice PE
|
||||
version: dev
|
||||
|
||||
ota:
|
||||
- platform: http_request
|
||||
id: ota_http_request
|
||||
|
||||
http_request:
|
||||
|
||||
update:
|
||||
- platform: http_request
|
||||
name: None
|
||||
id: update_http_request
|
||||
source: https://firmware.esphome.io/home-assistant-voice-pe/home-assistant-voice/manifest.json
|
||||
|
||||
dashboard_import:
|
||||
package_import_url: github://esphome/home-assistant-voice-pe/home-assistant-voice.yaml
|
||||
|
||||
wifi:
|
||||
on_connect:
|
||||
- delay: 5s # Gives time for improv results to be transmitted
|
||||
- ble.disable:
|
||||
- script.execute: control_leds
|
||||
|
||||
improv_serial:
|
||||
|
||||
esp32_ble:
|
||||
name: ha-voice-pe
|
||||
|
||||
esp32_improv:
|
||||
authorizer: center_button
|
||||
on_start:
|
||||
- lambda: id(improv_ble_in_progress) = true;
|
||||
- script.execute: control_leds
|
||||
on_provisioned:
|
||||
- lambda: id(improv_ble_in_progress) = false;
|
||||
- script.execute: control_leds
|
||||
on_stop:
|
||||
- lambda: id(improv_ble_in_progress) = false;
|
||||
- script.execute: control_leds
|
||||
|
||||
switch:
|
||||
- platform: template
|
||||
id: beta_firmware
|
||||
name: Beta firmware
|
||||
icon: "mdi:test-tube"
|
||||
disabled_by_default: true
|
||||
entity_category: config
|
||||
optimistic: true
|
||||
restore_mode: RESTORE_DEFAULT_OFF
|
||||
on_turn_on:
|
||||
- logger.log: "OTA updates set to use Beta firmware"
|
||||
- lambda: id(update_http_request).set_source_url("https://firmware.esphome.io/home-assistant-voice-pe/home-assistant-voice/manifest-beta.json");
|
||||
- component.update: update_http_request
|
||||
on_turn_off:
|
||||
- logger.log: "OTA updates set to use Production firmware"
|
||||
- lambda: id(update_http_request).set_source_url("https://firmware.esphome.io/home-assistant-voice-pe/home-assistant-voice/manifest.json");
|
||||
- component.update: update_http_request
|
||||
|
||||
@@ -0,0 +1,199 @@
|
||||
esphome:
|
||||
name: esp32s3
|
||||
friendly_name: ReSpeakerv3
|
||||
platformio_options:
|
||||
board_build.flash_mode: dio
|
||||
board_build.mcu: esp32s3
|
||||
# on_boot:
|
||||
# then:
|
||||
# - if:
|
||||
# condition:
|
||||
# switch.is_on:
|
||||
# then:
|
||||
# - voice_assistant.start_continuous:
|
||||
|
||||
|
||||
esp32:
|
||||
board: esp32-s3-devkitc-1
|
||||
variant: esp32s3
|
||||
framework:
|
||||
type: esp-idf
|
||||
version: recommended
|
||||
|
||||
logger:
|
||||
level: VERY_VERBOSE
|
||||
|
||||
api:
|
||||
|
||||
|
||||
wifi:
|
||||
ssid: "nuclide"
|
||||
password: "tapirnase"
|
||||
|
||||
captive_portal:
|
||||
|
||||
external_components:
|
||||
- source: github://QingWind6/ESPHome_XIAO-ESP32S3
|
||||
|
||||
i2s_audio_xiao:
|
||||
i2s_lrclk_pin: GPIO7
|
||||
i2s_bclk_pin: GPIO8
|
||||
i2s_mclk_pin: GPIO9
|
||||
|
||||
|
||||
microphone:
|
||||
- platform: i2s_audio_xiao
|
||||
id: xiao_mic
|
||||
adc_type: external
|
||||
i2s_din_pin: GPIO44
|
||||
pdm: false
|
||||
bits_per_sample: 32bit
|
||||
channel: left
|
||||
|
||||
speaker:
|
||||
- platform: i2s_audio_xiao
|
||||
id: xiao_speaker
|
||||
dac_type: external
|
||||
i2s_dout_pin: GPIO43
|
||||
mode: stereo
|
||||
|
||||
voice_assistant:
|
||||
microphone: xiao_mic
|
||||
use_wake_word: true
|
||||
noise_suppression_level: 0
|
||||
auto_gain: 0dBFS
|
||||
volume_multiplier: 1
|
||||
speaker: xiao_speaker
|
||||
id: assist
|
||||
on_listening:
|
||||
- light.turn_on:
|
||||
id: led
|
||||
blue: 100%
|
||||
red: 0%
|
||||
green: 0%
|
||||
effect: "Slow Pulse"
|
||||
on_stt_vad_end:
|
||||
- light.turn_on:
|
||||
id: led
|
||||
blue: 100%
|
||||
red: 0%
|
||||
green: 0%
|
||||
effect: "Fast Pulse"
|
||||
on_tts_start:
|
||||
- light.turn_on:
|
||||
id: led
|
||||
blue: 100%
|
||||
red: 0%
|
||||
green: 0%
|
||||
brightness: 100%
|
||||
effect: none
|
||||
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
|
||||
|
||||
light:
|
||||
- platform: esp32_rmt_led_strip
|
||||
id: led
|
||||
name: None
|
||||
disabled_by_default: true
|
||||
entity_category: config
|
||||
pin: GPIO1
|
||||
default_transition_length: 0s
|
||||
chipset: ws2812
|
||||
num_leds: 1
|
||||
rgb_order: grb
|
||||
rmt_channel: 0
|
||||
effects:
|
||||
- pulse:
|
||||
name: "Slow Pulse"
|
||||
transition_length: 250ms
|
||||
update_interval: 250ms
|
||||
min_brightness: 50%
|
||||
max_brightness: 100%
|
||||
- pulse:
|
||||
name: "Fast Pulse"
|
||||
transition_length: 100ms
|
||||
update_interval: 100ms
|
||||
min_brightness: 50%
|
||||
max_brightness: 100%
|
||||
|
||||
output:
|
||||
- platform: ledc
|
||||
id: light_output
|
||||
pin: GPIO21
|
||||
inverted: true
|
||||
|
||||
|
||||
script:
|
||||
- id: reset_led
|
||||
then:
|
||||
- if:
|
||||
condition:
|
||||
- switch.is_on: use_wake_word
|
||||
- switch.is_on: use_listen_light
|
||||
then:
|
||||
- light.turn_on:
|
||||
id: led
|
||||
effect: none
|
||||
|
||||
else:
|
||||
- light.turn_off:
|
||||
id: led
|
||||
|
||||
|
||||
switch:
|
||||
- platform: template
|
||||
name: Use wake word
|
||||
id: use_wake_word
|
||||
optimistic: true
|
||||
restore_mode: RESTORE_DEFAULT_ON
|
||||
entity_category: config
|
||||
on_turn_on:
|
||||
- lambda: id(assist).set_use_wake_word(true);
|
||||
- if:
|
||||
condition:
|
||||
not:
|
||||
- voice_assistant.is_running
|
||||
then:
|
||||
- voice_assistant.start_continuous
|
||||
on_turn_off:
|
||||
- voice_assistant.stop
|
||||
- lambda: id(assist).set_use_wake_word(false);
|
||||
|
||||
- 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
|
||||
@@ -0,0 +1,201 @@
|
||||
esphome:
|
||||
name: esp32s3
|
||||
friendly_name: ReSpeakerv3
|
||||
platformio_options:
|
||||
board_build.flash_mode: dio
|
||||
board_build.mcu: esp32s3
|
||||
# on_boot:
|
||||
# then:
|
||||
# - if:
|
||||
# condition:
|
||||
# switch.is_on:
|
||||
# then:
|
||||
# - voice_assistant.start_continuous:
|
||||
|
||||
|
||||
esp32:
|
||||
board: esp32-s3-devkitc-1
|
||||
variant: esp32s3
|
||||
framework:
|
||||
type: esp-idf
|
||||
version: recommended
|
||||
|
||||
logger:
|
||||
# level: VERY_VERBOSE
|
||||
|
||||
api:
|
||||
|
||||
ota:
|
||||
- platform: esphome
|
||||
|
||||
wifi:
|
||||
ssid: "nuclide"
|
||||
password: "tapirnase"
|
||||
|
||||
captive_portal:
|
||||
|
||||
external_components:
|
||||
- source: github://QingWind6/ESPHome_XIAO-ESP32S3
|
||||
|
||||
i2s_audio_xiao:
|
||||
i2s_lrclk_pin: GPIO7
|
||||
i2s_bclk_pin: GPIO8
|
||||
i2s_mclk_pin: GPIO9
|
||||
|
||||
|
||||
microphone:
|
||||
- platform: i2s_audio_xiao
|
||||
id: xiao_mic
|
||||
adc_type: external
|
||||
i2s_din_pin: GPIO44
|
||||
pdm: false
|
||||
bits_per_sample: 32bit
|
||||
channel: left
|
||||
|
||||
speaker:
|
||||
- platform: i2s_audio_xiao
|
||||
id: xiao_speaker
|
||||
dac_type: external
|
||||
i2s_dout_pin: GPIO43
|
||||
mode: stereo
|
||||
|
||||
voice_assistant:
|
||||
microphone: xiao_mic
|
||||
use_wake_word: true
|
||||
noise_suppression_level: 0
|
||||
auto_gain: 0dBFS
|
||||
volume_multiplier: 1
|
||||
speaker: xiao_speaker
|
||||
id: assist
|
||||
on_listening:
|
||||
- light.turn_on:
|
||||
id: led
|
||||
blue: 100%
|
||||
red: 0%
|
||||
green: 0%
|
||||
effect: "Slow Pulse"
|
||||
on_stt_vad_end:
|
||||
- light.turn_on:
|
||||
id: led
|
||||
blue: 100%
|
||||
red: 0%
|
||||
green: 0%
|
||||
effect: "Fast Pulse"
|
||||
on_tts_start:
|
||||
- light.turn_on:
|
||||
id: led
|
||||
blue: 100%
|
||||
red: 0%
|
||||
green: 0%
|
||||
brightness: 100%
|
||||
effect: none
|
||||
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
|
||||
|
||||
light:
|
||||
- platform: esp32_rmt_led_strip
|
||||
id: led
|
||||
name: None
|
||||
disabled_by_default: true
|
||||
entity_category: config
|
||||
pin: GPIO1
|
||||
default_transition_length: 0s
|
||||
chipset: ws2812
|
||||
num_leds: 1
|
||||
rgb_order: grb
|
||||
rmt_channel: 0
|
||||
effects:
|
||||
- pulse:
|
||||
name: "Slow Pulse"
|
||||
transition_length: 250ms
|
||||
update_interval: 250ms
|
||||
min_brightness: 50%
|
||||
max_brightness: 100%
|
||||
- pulse:
|
||||
name: "Fast Pulse"
|
||||
transition_length: 100ms
|
||||
update_interval: 100ms
|
||||
min_brightness: 50%
|
||||
max_brightness: 100%
|
||||
|
||||
output:
|
||||
- platform: ledc
|
||||
id: light_output
|
||||
pin: GPIO21
|
||||
inverted: true
|
||||
|
||||
|
||||
script:
|
||||
- id: reset_led
|
||||
then:
|
||||
- if:
|
||||
condition:
|
||||
- switch.is_on: use_wake_word
|
||||
- switch.is_on: use_listen_light
|
||||
then:
|
||||
- light.turn_on:
|
||||
id: led
|
||||
effect: none
|
||||
|
||||
else:
|
||||
- light.turn_off:
|
||||
id: led
|
||||
|
||||
|
||||
switch:
|
||||
- platform: template
|
||||
name: Use wake word
|
||||
id: use_wake_word
|
||||
optimistic: true
|
||||
restore_mode: RESTORE_DEFAULT_ON
|
||||
entity_category: config
|
||||
on_turn_on:
|
||||
- lambda: id(assist).set_use_wake_word(true);
|
||||
- if:
|
||||
condition:
|
||||
not:
|
||||
- voice_assistant.is_running
|
||||
then:
|
||||
- voice_assistant.start_continuous
|
||||
on_turn_off:
|
||||
- voice_assistant.stop
|
||||
- lambda: id(assist).set_use_wake_word(false);
|
||||
|
||||
- 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
|
||||
Reference in New Issue
Block a user