Release 2.4.0 (build 217)
Firmware binaries:
- firmware_zigbee.bin – ESP32-C5 ZigBee + BLE variant
- firmware_matter.bin – ESP32-C5 Matter + BLE variant
- firmware_esp8266.bin – ESP8266 (OS 3.x)
All releases: https://github.com/opensprinklershop/OpenSprinkler-Firmware/releases
Added
- Monitor-Ausgangsmodus „Nur abschalten" (
om): Ein Monitor kann jetzt so konfiguriert werden, dass er seine Zone bzw. sein Programm ausschließlich abschaltet und niemals startet (output_mode/om). Wird der Monitor aktiv, schaltet er die Zone ab und hält sie – auch gegen den normalen Zeitplan – ausgeschaltet; wird er inaktiv, übernimmt wieder der normale Scheduler. Damit lässt sich ein Kreis zuverlässig als reiner Sicherheits-/Abschalt-Watchdog überwachen, ohne dass der Monitor ihn selbst startet. - Monitor-Failsafe bei ungültigem Eingang (
stt/fsa): Neue Optionen „Failsafe nach (s)" (stale_timeout) und „Failsafe-Zustand" (failsafe_active). Liefert der zugehörige Sensor länger als die eingestellte Zeit keine gültigen Daten, wechselt der Monitor-Ausgang zwangsweise in den definierten Failsafe-Zustand, statt den letzten Wert unbegrenzt zu halten.stale_timeout = 0behält das bisherige Verhalten bei. - JSON-/MQTT-Sensor: Array-Index-Adressierung: JSON-Filter unterstützen jetzt eine abschließende
[N]-Angabe, um das N-te Element eines JSON-Arrays zu lesen (0-basiert), z. B.hourly|wind_gusts_10m[3]für{"hourly":{"wind_gusts_10m":[14.8,18.7,20.5,22.3,…]}}. Ohne[N]bleibt das Verhalten unverändert (erster Zahlenwert nach dem Schlüssel).
Fixed
- Verwaiste Sensor-Logs: Beim Löschen eines Sensors werden nun auch dessen Log-Einträge (Standard/Woche/Monat) entfernt. Ein neu angelegter Sensor, der dieselbe Nummer wiederverwendet, erbt so keine alten Logs des gelöschten Sensors mehr (wirkt sich auch positiv auf Backup/Restore aus).
- Monitor
stop_monitor_actionOut-of-Bounds: Behebt einen möglichen Schreibzugriff außerhalb der Queue, wenn eine Monitor-Zone abgeschaltet werden sollte, obwohl sie nicht in der Laufzeit-Queue steht (station_qid == 0xFF). - „Run-Once mit Wiederholung"-Leichen: Beim globalen Stopp aller Stationen (
/cv?rsn=1) werden temporäre „Run-Once with repeat"-Programme jetzt bedingungslos entfernt – auch solche, die gerade zwischen zwei Wiederholungsintervallen warten. Dadurch feuern sie nach dem Stoppen nicht mehr erneut.