Changelog
All notable changes are documented here, grouped by release version.
2.4.0 (Build 208) — 2026-06-03
Zigbee-Gateway & Stationssteuerung
- Zigbee Stationssteuerung & Status-Routing: Fehler beim physischen Schließen von Ventilen und falsche Statusanzeigen (rot/graue Fehler-Badge-Sequenz) beim Tuya GX02 Smart Water Valve und anderen benutzerdefinierten DP-Geräten behoben. Stationssteuerungs-Konfigurationen priorisieren nun die vollständige logische Gerätedefinition. Übergangsweise greift eine Fallback-Logik auf den primären Steuerungs-DP (
tuya_dp_value) zurück, falls die Status-DP-ID fehlt oder negativ ist. - Globales Zigbee Batterie-Routing: Fehlende Batterieprozentanzeigen bei Multi-Sensor-Zigbee- und Tuya-Systemen (wie dem GX02 Ventil, wenn nur der Temperatursensor registriert ist) wiederhergestellt. Akku-Berichte über DP 108 oder ZCL Power Configuration werden nun sofort auf alle aktiven virtuellen und logischen Sensoren übertragen, die dieselbe IEEE-Adresse teilen.
2.4.0 (Build 207) — 2026-06-02
Sensoren & UI-Funktionen
- Präzisions-Durchflussmesser: Unterstützung von bis zu 5 Nachkommastellen für die genaue Erfassung von Mikrotropfsystemen in Verläufen, Übersichten und Raten hinzugefügt. (Ticket #205)
- Zimmerman Boot-Sicherung: Bei Timeout oder Fehler der Wetterdaten beim Booten wird nun auf das monatliche Budget-Baseline-Modell ausgewichen, statt standardmäßig auf 100% zu setzen. (Ticket #207)
- Problem "NICHT" Speichern im Logik-Monitor: Überlappende jQuery-Mobile-Modalen im Safari- und Firefox-Browser behoben, sodass der Zustand "NOT" (NICHT) korrekt gespeichert wird. (Ticket #215)
- Zimmerman Anpassungs-Grenzen: Erhöhung der Eingabegrenzen für benutzerdefinierte Terrassen auf bis zu 250% (vorher 100%). (Ticket #207)
- Virtuelle Sensor-Offsets: Verfälschungen bei Zeitzonen mit Minutenversatz in
getTimezoneOffsetOS()behoben, was verschobene Messpunkte verhinderte und Logs vor ungültigen Zeiten vor der NTP-Synchronisierung schützt. (Tickets #212, #214)
2.4.0 (Build 204) — 2026-06-01
Zigbee logische Geräte
- Logische Zigbee-Geräte: Entkopplung der Zigbee-Sensorkonfiguration von rohen Clustern/Attribute/DP-Parametern durch eine übergeordnete logische Geräte-Abstraktion (Logical Devices). Sensoren verweisen nun per IEEE-Adresse + logischem Namen auf Geräte, was Multi-Auslass-Geräte (z.B. Ventile wie das Tuya GX03 mit mehreren Ausgängen) als unabhängige Sensoren ermöglicht.
- Sensor-Migration: Automatisches Boot-Upgrade alter Sensoren mit alten Direktparametern in das neue Logical-Devices-Format für reibungslose Upgrades.
2.4.0 (Build 202) — 2026-05-25
Gardena API & Zonen-Steuerung
- Gardena Cloud API Integration (nur ESP32): Unterstützung für das Gardena Smart Gateway zur Remote-Ventilkoordination über die offizielle Gardena Cloud-API. Gardena Bodenfeuchte- und Temperatursensoren sind nun vollständig in der UI integriert.
- Direkte Zigbee & Tuya Zonen-Steuerung: Native Steuerung von drahtlosen Ventilen, Schaltern und Relais über Zigbee- und Matter-Netzwerke direkt in der Firmware.
- Spezielle Stationssymbole: Vektorgrafik-Badges im Dashboard für Modbus/RS485, Zigbee und Gardena Zonen bleiben persistent sichtbar.
- Gardena OAuth-Assistent: Ein vollständig lokalisierter Assistent in den Analogsensor-Optionen hilft bei der Einrichtung der API-Credentials über einen OAuth 2.0 Login.
2.4.0 (Build 200) — 2026-05-19
Optimierungen und Diagnostics
- Live-Monitor über MCP: Neuer API-Befehl
get_monitor_logintegriert, über den die Live-Konsolen-Logs des Zigbee/Matter-Subsystems direkt im MCP-Server für KI-Assistenten abgefragt werden können. - Veraltete Sensoren: Implementierung von Fallback-Richtlinien für abgelaufene Sensorwerte (Stale Sensors), damit diese die automatische Programmanpassung nicht dauerhaft blockieren oder verfälschen.
- Impuls-Durchflussmesser: Pulse-basierte Wassermengenprotokollierung und -einheiten hinzugefügt.
2.4.0 (Build 196) — 2026-04-17
Ventilstrommessung (ESP32-C5)
- Dynamische Strommessung: Laufende Messung des Ruhestroms des Systems und automatische Subtraktion, um im Betrieb exakt den reinen Ventilstrom in mA anzuzeigen.
- API Felder
vcurrundblcurr: Bereitstellung von Ventilstrom und Ruhestrom über/jcfür detailgenaue Diagnosen. - Effektive Signalglättung: Abtastung von 20 ADC-Messungen über eine volle 50Hz-Wechselstromwelle (20 ms) zur Beseitigung von Phasenrauschen. Zwei-Stufen-EMA-Dämpfung sorgt für stabilisierte Anzeigen.
2.4.0 (Build 194) — 2026-04-06
Programmier- & Speicher-Tuning
- Inverses Gruppen-Scheduling: Neuer logischer Gruppenmodus: Stationen derselben Gruppe können parallel laufen, während verschiedene Gruppen nacheinander schalten (Gruppe P bleibt sequentiell).
- Steuerung über MCP per Name: Direkter Start von Programmen und Zonen per Klartextname via MCP/Sprachassistenten.
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.