Directive 3: ESP32 MQTT auto-reconnect, heartbeat, MQTT-state LED, drop logging
- Reconnect and re-subscribe on every (re)connect; log the subscribe result. - Heartbeat every 5 min on voice/audio_stream (valid silent PCM frame) so the Directive-1 watchdog can tell "device dead" from "nobody spoke". voice_bridge treats it as silence and ignores it. - Retained LWT "offline" / "online" presence on voice/status for layer attribution in the watchdog. - LED: green now means MQTT connected AND publishing. Wi-Fi down = red blink, Wi-Fi up but MQTT down = amber blink. Never green without MQTT. - Log the reason on every drop: PubSubClient state code, or the Wi-Fi disconnect reason from the Wi-Fi event. - Bound the I2S read (50 ms) so Wi-Fi/MQTT housekeeping cannot stall; reset a stale streaming state on disconnect (the stuck-green bug). - Document the MQTT/LED contract in README; flag config.h and led_control.h as stale drafts so they cannot creep back as a second config. - Credentials stay placeholders; nothing secret is committed. Not flashed/tested: no ESP32 and no arduino-cli is reachable from the build environment. Hardware-in-the-loop verification needs a human at the device. Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
#pragma once
|
||||
// STALE / UNUSED. This header is an early LED draft and is NOT compiled:
|
||||
// voice_assistant.ino does not include it. It also defines a conflicting
|
||||
// `strip` / `DeviceState` / `currentState`, so including it would break the
|
||||
// sketch. LED behaviour now lives in voice_assistant.ino (see renderLed()).
|
||||
#include <Freenove_WS2812_Lib_for_ESP32.h>
|
||||
#include "config.h"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user