Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b428898bf | ||
|
|
52d4a878b0 | ||
|
|
bef7bf5e59 | ||
|
|
4dd9a86c16 | ||
|
|
1d0db5df08 |
@@ -1,5 +1,24 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [1.0.1] - 2026-09-20
|
||||||
|
|
||||||
|
Patch release fixing the mic gain control. Tagged `v1.0.1`; the example config
|
||||||
|
now pins this tag.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **Mic gain slider snapped back to its old value in Home Assistant.** The
|
||||||
|
`Mic gain (ES7210)` number had a `set_action` but was not `optimistic`, so the
|
||||||
|
new value was never published back. The ES7210 was reprogrammed correctly (the
|
||||||
|
device log showed the new gain), but HA kept displaying the previous value and
|
||||||
|
reset the slider on the next visit. The number now publishes its state after
|
||||||
|
every change.
|
||||||
|
- **A saved mic gain was not applied to the ES7210 after a reboot.** A template
|
||||||
|
number restores its value from flash in `setup()` and publishes it, but does
|
||||||
|
not run `set_action`, so HA showed the saved gain while the codec started at
|
||||||
|
the default from `audio_adc`. `on_boot` (priority -100) now pushes the restored
|
||||||
|
value to the ES7210. `set_mic_gain()` is safe to call there because the driver
|
||||||
|
stores the value even before its own setup completes.
|
||||||
|
|
||||||
## [1.0.0] - 2026-07-18
|
## [1.0.0] - 2026-07-18
|
||||||
|
|
||||||
First stable release. The full voice assistant is confirmed on hardware, the
|
First stable release. The full voice assistant is confirmed on hardware, the
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ core you pull as a package, plus one thin config file you actually edit.
|
|||||||
<video src="https://github.com/user-attachments/assets/0eae0230-de47-4f20-a6ea-47f65af35f86" controls width="400"></video>
|
<video src="https://github.com/user-attachments/assets/0eae0230-de47-4f20-a6ea-47f65af35f86" controls width="400"></video>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
> **Status: stable (v1.0.0).** Wake word, STT/TTS, clean playback and the LED
|
> **Status: stable (v1.0.1).** Wake word, STT/TTS, clean playback and the LED
|
||||||
> ring are confirmed on-device. Full docs are in the
|
> ring are confirmed on-device. Full docs are in the
|
||||||
> [Wiki](https://github.com/MichalZaniewicz/esphome-waveshare-esp32-s3-audio-va/wiki);
|
> [Wiki](https://github.com/MichalZaniewicz/esphome-waveshare-esp32-s3-audio-va/wiki);
|
||||||
> the release history is in [CHANGELOG.md](CHANGELOG.md).
|
> the release history is in [CHANGELOG.md](CHANGELOG.md).
|
||||||
@@ -71,7 +71,7 @@ You ──▶ Waveshare ESP32-S3 ──▶ Home Assistant Assist
|
|||||||
assign an Assist pipeline.
|
assign an Assist pipeline.
|
||||||
5. Say "Alexa" (or "OK Nabu"). The ring should go violet.
|
5. Say "Alexa" (or "OK Nabu"). The ring should go violet.
|
||||||
|
|
||||||
The example config pins the `v1.0.0` release tag, so a build is reproducible. To
|
The example config pins the `v1.0.1` release tag, so a build is reproducible. To
|
||||||
move to a newer release, bump `ref:` in the `packages:` block to a later tag (or
|
move to a newer release, bump `ref:` in the `packages:` block to a later tag (or
|
||||||
`main` to track the latest), then `esphome clean waveshare-va.yaml` (clears the
|
`main` to track the latest), then `esphome clean waveshare-va.yaml` (clears the
|
||||||
package cache) and `esphome run waveshare-va.yaml`.
|
package cache) and `esphome run waveshare-va.yaml`.
|
||||||
|
|||||||
@@ -104,6 +104,11 @@ esphome:
|
|||||||
- lambda: |-
|
- lambda: |-
|
||||||
setenv("TZ", id(saved_time_zone).c_str(), 1);
|
setenv("TZ", id(saved_time_zone).c_str(), 1);
|
||||||
tzset();
|
tzset();
|
||||||
|
# Push the mic gain restored from flash into the ES7210. The codec boots
|
||||||
|
# with `mic_gain` from audio_adc, so without this a saved value would show
|
||||||
|
# in HA while the hardware sat at the default.
|
||||||
|
- lambda: |-
|
||||||
|
id(adc_mic).set_mic_gain(id(mic_gain_db).state);
|
||||||
# Diagnostics: an explicit OFF switch that silences the mic completely.
|
# Diagnostics: an explicit OFF switch that silences the mic completely.
|
||||||
# ON = microphone disabled. (This used to be inverted, so the mic was
|
# ON = microphone disabled. (This used to be inverted, so the mic was
|
||||||
# stopped on every boot with the switch in its default OFF position.)
|
# stopped on every boot with the switch in its default OFF position.)
|
||||||
@@ -1286,6 +1291,12 @@ number:
|
|||||||
restore_value: true
|
restore_value: true
|
||||||
initial_value: 24
|
initial_value: 24
|
||||||
mode: slider
|
mode: slider
|
||||||
|
# Without `optimistic`, a template number with only a set_action never
|
||||||
|
# publishes the new value back: the slider snapped back to 24 dB in HA even
|
||||||
|
# though the ES7210 had already been reprogrammed. The restored value is
|
||||||
|
# applied to the codec in on_boot (-100), since TemplateNumber::setup() only
|
||||||
|
# publishes it and does not run set_action.
|
||||||
|
optimistic: true
|
||||||
set_action:
|
set_action:
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
id(adc_mic).set_mic_gain(x);
|
id(adc_mic).set_mic_gain(x);
|
||||||
|
|||||||
@@ -170,6 +170,15 @@ word. The ESP-mastered two-bus layout needs no patched component.
|
|||||||
leaves `media_player.is_announcing` stuck true, and `on_wake_word_detected`
|
leaves `media_player.is_announcing` stuck true, and `on_wake_word_detected`
|
||||||
then only ever stops that phantom announcement instead of starting Assist
|
then only ever stops that phantom announcement instead of starting Assist
|
||||||
(wake word detected, nothing happens).
|
(wake word detected, nothing happens).
|
||||||
|
- **HTTPS-only Home Assistant stalls the pipeline.** If HA serves port 8123 over
|
||||||
|
HTTPS with a certificate that does not cover the LAN address the device reaches
|
||||||
|
it by, every announcement/TTS fetch fails certificate verification and the
|
||||||
|
device holds in `STREAMING_MICROPHONE` with no `Starting STT by VAD` line. In
|
||||||
|
the log this is **identical** to a too-tight `vad` threshold; the tell is
|
||||||
|
`esp-x509-crt-bundle: Failed to verify certificate` /
|
||||||
|
`mbedtls_ssl_handshake returned -0x3000` / `Connection failed, sock < 0`. The
|
||||||
|
fix is HA-side, not firmware: set the HA Internal URL to `http://<ip>:8123`, or
|
||||||
|
terminate TLS at a reverse proxy and keep HA's own `http:` server plain.
|
||||||
- **Battery monitoring is effectively unavailable**: the divider needs a 0 Ω
|
- **Battery monitoring is effectively unavailable**: the divider needs a 0 Ω
|
||||||
resistor soldered (depopulated by default) and **enabling it kills the camera**.
|
resistor soldered (depopulated by default) and **enabling it kills the camera**.
|
||||||
Ratio 3.0. Pin is GPIO1 per schematic, not GPIO8, which is stale demo code.
|
Ratio 3.0. Pin is GPIO1 per schematic, not GPIO8, which is stale demo code.
|
||||||
|
|||||||
+2
-2
@@ -43,8 +43,8 @@ substitutions:
|
|||||||
|
|
||||||
packages:
|
packages:
|
||||||
core:
|
core:
|
||||||
url: https://github.com/MichalZaniewicz/esphome-waveshare-esp32-s3-audio-va
|
url: https://git.i3omb.com/gronod/esphome-waveshare-esp32-s3-audio-va
|
||||||
ref: v1.0.0 # pinned release; bump to a newer tag, or use 'main' to track latest
|
ref: v1.0.1 # pinned release; bump to a newer tag, or use 'main' to track latest
|
||||||
files:
|
files:
|
||||||
- base/core.yaml
|
- base/core.yaml
|
||||||
refresh: 1d # re-check the ref daily (a pinned tag never moves anyway)
|
refresh: 1d # re-check the ref daily (a pinned tag never moves anyway)
|
||||||
|
|||||||
Reference in New Issue
Block a user