Changelog
All notable changes are documented here, grouped by release version.
2.4.0 (Build 186) — 2026-03-15
Firmware-Binaries
firmware_zigbee.bin— ESP32-C5 ZigBee + BLE Variantefirmware_matter.bin— ESP32-C5 Matter + BLE Variantefirmware_esp8266.bin— ESP8266 (OS 3.x)
Neue Features
Matter (CHIP) Protokoll
- Vollständige Matter-Protokoll-Unterstützung für ESP32-C5 hinzugefügt.
- Commissioning-Fenster-Steuerung und QR-Code-Ausgabe implementiert.
- Matter Pairing-Informationen werden per JSON-API bereitgestellt.
ZigBee Gateway-Modus
- Neue API für die Konfiguration des IEEE 802.15.4-Radios: Laufzeit-Umschaltung zwischen Matter- und ZigBee-Modus.
- ZigBee Gateway-Modus für ESP32-C5: Devices joinen, verwalten und abfragen.
- Konfigurationspersistenz im LittleFS im JSON-Format.
- Neue Endpoints: Radio-Modus lesen/setzen, ZigBee-Netzwerk joinen, Geräte im Gateway-Modus verwalten.
ZigBee Client-Modus — Lokale Datenpunkte
- OpenSprinkler meldet eigene Sensordaten, Zonen, Programme und Regensensorstatus an einen ZigBee-Coordinator.
- ZCL-Endpoints für Temperatur, Feuchte, Durchfluss, Analogsensoren, Zonen, Programme und Regensensoren.
- Periodische Synchronisierung der Sensorwerte und Zonenzustände mit dem ZigBee-Coordinator.
Online OTA Firmware-Updates
- Online-Update-Verwaltung in
online_update.cpp/online_update.h. - Manifest-Prüfung: automatische Erkennung verfügbarer Firmware-Versionen.
- Neue Endpoints zum Abfragen des Update-Status, Starten eines Updates und Abrufen von Backup-Daten.
MCP Server
- OpenSprinkler MCP-Server unter
tools/mcp-server/implementiert. - Stellt die gesamte OpenSprinkler REST-API als MCP-Tools für KI-Assistenten (z. B. GitHub Copilot) bereit.
- Unterstützte Tools:
get_all,get_debug,get_sensors,get_zigbee_devices,get_ble_devices,get_system_resources,get_station_status,get_optionsund weitere.
BLE & ZigBee Koexistenz
Radio Coexistence Manager
- Neues Modul
radio_coex.h/radio_arbiterfür WiFi/ZigBee/BLE-Koexistenz auf ESP32-C5. - Radio-Arbiter für priorisierte Steuerung: Web-Traffic hat Vorrang, periodische BLE-Scans werden parallel ermöglicht.
- ZigBee wird während BLE-Scans in niedrigerer Priorität betrieben (
sensor_zigbee_pause/sensor_zigbee_resume). - Frühzeitige Initialisierung von BLE und ZigBee in
sensors.cpp, um korrekte Ressourcen-Allokation sicherzustellen.
ZigBee Device Info Anreicherung
- Hersteller- und Modellinformationen werden aus gespeicherten Sensordaten in
ZigbeeDeviceInfoübernommen. - Basic Cluster (ZCL):
ManufacturerNameundModelIdentifierwerden für ZigBee-Geräte abgefragt und persistiert. - Vendor API-Lookups für bekannte ZigBee-Sensorhersteller implementiert.
- Profil-Hinting für Tuya-Geräte hinzugefügt.
BLE Verbesserungen
BLEDeviceInfoerweitert um Geräteinformations-Service (DIS)-Felder (Hersteller, Modell).adv_data_pending_push-Flag für Management von Advertisement-Data-Pushes.- Thread-sicherer Zugriff auf
discovered_ble_devicesmittels Mutex insensor_ble.cpp. - Batteriestatus-Initialisierung auf
UINT32_MAXfür noch nicht gemessene Werte.
Sensoren & Sensor-API
Verbesserungen
- Neue Scratch-Tests für ADS1115 und SC16IS752 zur zuverlässigeren Sensor-Erkennung.
detect_asb_board-Funktion auf neue Erkennungsmethoden für ADS1115 aktualisiert.- I2C-Erkennungslogik für ADS1115 angepasst, um falsche Negative auf ESP8266 zu vermeiden.
- Sensor-Unit-ID-Mapping überarbeitet; neue Einheit „Liter" hinzugefügt; maximale Anzahl der Sensor-Einheitsnamen erhöht.
- Internen Sensor-Daten-Handler verbessert:
data_ok-Flag wird auch gesetzt, wenn Daten unverändert bleiben.
Tuya Protokoll
- Tuya-spezifisches ZigBee-Protokoll implementiert: DP-Reports werden verarbeitet und auf Standardattribute gemappt.
- Verbesserte Gateway-Logik für Geräteanmeldungen und Basic-Cluster-Abfragen.
MQTT Deferred Push & Koordination
- MQTT-Nachrichten werden bei Netzwerkausfall in einer Warteschlange gepuffert und nach Verbindungswiederherstellung gesendet.
- MQTT-Start wird während ZigBee-Join-Mode oder ZigBee-Lock übersprungen, um Interferenzen zu vermeiden.
- Verbesserte ZigBee-Sensor-Reportlogik mit Boost-Management und Join-Mode-Berücksichtigung.
Web-API / HTTP-Server
Neuer Endpoint: Monatlicher Wasserverbrauch (/jw)
- Gibt monatliche Wasserverbrauchsdaten zurück, inkl. Pulzrate und aktuellen Durchfluss-Aufzeichnungen.
server_json_matterundserver_zigbee_statusenthalten nun Sensor-Status für SN1/SN2 und Wetterdaten.
Matter Pairing
- JSON-Ausgabe für Matter Pairing-Informationen (QR-Code und manueller Pairing-Code) über die API verfügbar.
ESP32-C5 Speicher-Optimierungen
PSRAM
- PSRAM-Analyse-Utilities eingeführt (
psram_debug.cpp,analyze_psram.py). - UI-Animationsarray und Reboot-Ticker nutzen
EXT_RAM_BSS_ATTRfür bessere Speicherverwaltung.
TLS 1.3
- TLS 1.3 aktiviert; ältere Protokolle (TLS 1.2, DTLS) deaktiviert.
- Hardware-Beschleunigung für AES, SHA, ECC und MPI konfiguriert.
- Nur notwendige ECC-Kurven und kryptographische Algorithmen für TLS 1.3 beibehalten.
AES Software-Fallback
aes_sw_fallback.cpp: AES-Software-Fallback-Wrapper für Situationen mit niedrigem internem RAM.- Eigene mbedTLS-Memory-Allocatoren nutzen SPIRAM, wenn interner RAM erschöpft ist.
- Pre-Build-Skript
pre_build_sdkconfig.pyzur automatischen sdkconfig-Optimierung.
Bugfixes
| Bereich | Beschreibung |
|---|---|
| Netzwerk | WiFi-State-Machine: Unmögliche STA-Bedingung im AP-Modus-Zweig entfernt; verhinderte korrekte Reconnect-Logik (IP 0.0.0.0 nach Verbindungsabbruch). |
| Sensoren | Legacy-Binär-Ladelogik für Sensoren entfernt; beschädigte Sensor-Dateien werden beim Laden umbenannt statt abgestürzt. |
| ESP8266 | Pin-Definitionen für ESP8266 in defines.cpp / defines.h ergänzt. |
| Zigbee | Nicht unterstützte Sensortypen werden beim Laden korrekt behandelt; Roh-JSON-Daten werden beibehalten. |
| Build | platformio.ini Upload-Befehle und Konfigurationen korrigiert. |
Bekannte Einschränkungen
- Die ZigBee- und Matter-Varianten können auf ESP32-C5 nicht gleichzeitig aktiv sein; der Radio-Modus muss per API umgeschaltet werden.
- Online-Updates erfordern eine aktive Internetverbindung und ein erreichbares Update-Manifest.
Ältere Versionen
Für Changelogs älterer Versionen (2.3.x und früher) siehe archive.md bzw. die GitHub Releases-Seite.