Added HTTP-API support, Standalone AP Support and Built-in Melodies

This commit is contained in:
2025-12-28 21:49:49 +02:00
parent 0f0b67cab9
commit db57b355b9
14 changed files with 1313 additions and 26 deletions

View File

@@ -24,8 +24,9 @@
* 🎯 KEY FEATURES:
* ✅ Microsecond-precision bell timing (BellEngine)
* ✅ Multi-hardware support (PCF8574, GPIO, Mock)
* ✅ Dual network connectivity (Ethernet + WiFi)
* ✅ Dual Communication Support (MQTT + WebSocket)
* ✅ Dual network connectivity (Ethernet + WiFi + Permanent AP Mode)
* ✅ Multi-protocol communication (MQTT + WebSocket + HTTP REST API)
* ✅ Web settings interface for network mode switching
* ✅ Real-time telemetry and load monitoring
* ✅ Over-the-air firmware updates
* ✅ SD card configuration and file management
@@ -33,8 +34,9 @@
* ✅ Comprehensive logging system
*
* 📡 COMMUNICATION PROTOCOLS:
* • MQTT (SSL/TLS via PubSubClient on Core 0)
* • MQTT (SSL/TLS via AsyncMqttClient on Core 0)
* • WebSocket (Real-time web interface)
* • HTTP REST API (Command execution via HTTP)
* • UDP Discovery (Auto-discovery service)
* • HTTP/HTTPS (OTA updates)
*
@@ -351,7 +353,10 @@ void setup()
communication.onNetworkConnected();
// Non-blocking NTP sync (graceful without internet)
timekeeper.syncTimeWithNTP();
// Skip NTP sync in AP mode (no internet connection)
if (!networking.isInAPMode()) {
timekeeper.syncTimeWithNTP();
}
// Start AsyncWebServer when network becomes available (only once!)
if (!webServerStarted && networking.getState() != NetworkState::WIFI_PORTAL_MODE) {
@@ -370,7 +375,10 @@ void setup()
communication.onNetworkConnected();
// Non-blocking NTP sync (graceful without internet)
timekeeper.syncTimeWithNTP();
// Skip NTP sync in AP mode (no internet connection)
if (!networking.isInAPMode()) {
timekeeper.syncTimeWithNTP();
}
// 🔥 CRITICAL: Start AsyncWebServer ONLY when network is ready
// Do NOT start if WiFiManager portal is active (port 80 conflict!)