You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
NTP Time Synchronization (Ntp): Added the Ntp module to synchronize system time via SNTP after WiFi connection, providing isSynced(), configurable time servers, and timezone string options (og3/ntp.h).
Offline UDP Log Buffering: UdpLogger now uses a fixed-capacity ring queue to buffer log entries with timestamps while WiFi is offline, automatically flushing queued logs in batched datagrams upon reconnection.
Adafruit IO & SSL/TLS MQTT Support: Enhanced MqttManager with support for Adafruit IO (Mode::kAdafruitIO) alongside Home Assistant, configurable SSL/TLS options, and Adafruit root CA bundle verification on ESP32.
Pointer-Based Dependency Linking: Added Module::add_dependency(Module*) to declare dependencies directly on module pointers.
Changed
WifiManager State Machine & Exponential Backoff: Restructured WifiManager into a formal state machine (kIdle, kConnectingSta, kConnectedSta, kWaitingReconnectSta, kSoftAp) with exponential backoff retries, automatic Soft AP failover, and periodic reconnect attempts.
Module & Variable Identity: Updated Module constructors and VariableBase metadata to use std::string internally to ensure safe lifecycle and memory management.
Deleted Copy Constructors: Explicitly deleted copy constructors and assignment operators for Module, VariableBase, VariableGroup, App, and related classes to prevent accidental slicing or lifecycle duplication.
Sonar Pulse Timeout: Added a configurable pulse timeout to Sonar::ping() to prevent blocking if an echo pulse is missed.
Scoped MQTT Status Publishing: Restricted periodic AppStatus and WifiMonitor MQTT status reporting to Home Assistant mode, avoiding feed spamming in Adafruit IO mode.