sam-4screen-desktop 2026-10-14:9:51:28

This commit is contained in:
2026-10-14 09:51:28 +11:00
parent b850734d8d
commit 505f433b01

View File

@@ -81,3 +81,42 @@ tags:
- Weekend - garden and gym. - Weekend - garden and gym.
- Finish logging trees with NFC. Use new WIKI ? Mulch front yard , move out trailers. - Finish logging trees with NFC. Use new WIKI ? Mulch front yard , move out trailers.
. .
---
## Voice / ESP32 — firmware fix (found 2026-10-14)
The house voice was **dead for two days** (Oct 13 → Oct 14) and nothing reported it.
Two independent faults, **the same class of bug**:
**1. `voice_bridge` was silently deaf — FIXED 2026-10-14.**
It subscribed to MQTT **once, at startup**, with no `on_connect` handler. When the
shared `.13` broker restarted (internet-use-control added the 8883 TLS listener on
Oct 13), the bridge reconnected but **never re-subscribed** — a live TCP socket with
no subscription, no error, no log. Added an `on_connect` handler that re-subscribes.
Verified: `[bridge] subscribed voice/audio_stream + voice/status`.
Source: `/home/sam/voice_bridge/mqtt_audio_bridge.py`
Note: the bridge's compose reads `MQTT_USER`/`MQTT_PASS` from the **shell**, so a
rebuild needs `set -a; . ~/.config/environment.d/10-secrets.conf; set +a` first or
the container starts with no credentials.
**2. ESP32 firmware — SAME BUG, still to do.**
The unit showed a **green LED** (Wi-Fi joined) but published nothing to
`voice/audio_stream`. A power-cycle fixed it. Green = Wi-Fi, not MQTT. Misleading.
### TO DO — ESP32 firmware (repo: `sam/voice_assistant`)
- [ ] **Auto-reconnect MQTT and re-subscribe on every (re)connect** (`on_connect`).
Same fix as the bridge. Without it, every broker restart kills it silently.
- [ ] **Publish a heartbeat** (e.g. every 5 min) so "silence" is a reliable signal.
- [ ] **Show MQTT state on the LED** — green currently means "Wi-Fi only", which
hides the failure.
- [ ] Consider **powering the ESP32 from a smart plug** so it can be power-cycled
remotely when the watchdog sees it go quiet.
### Related
- Watchdog: alert (and ideally auto-heal) if `voice/audio_stream` is quiet for N hours.
Needed because outages go unnoticed for days — and we are often away for over a week.