75 lines
3.0 KiB
Markdown
75 lines
3.0 KiB
Markdown
# ADR 0002: Verbraucher 1-Stufig arbeitet ereignisbasiert
|
|
|
|
## Status
|
|
|
|
Akzeptiert, am 17. September 2026 um getrennte Mindestzeiten erweitert.
|
|
|
|
## Kontext
|
|
|
|
Das Enelix-1-Modul berechnete seinen Zustand in einem festen Intervall und
|
|
bildete Lastwechselsperren ueber `Interval`, `IdleCounterMax` und weitere
|
|
zyklusabhaengige Zaehler ab. Ein erster Enelix-2-Stand ersetzte dies durch
|
|
einen allgemeinen `Umschaltabstand`. Dieser konnte unterschiedliche
|
|
Geraeteanforderungen fuer Ein- und Aus-Zustand nicht ausdruecken.
|
|
|
|
Bei einem asynchron schaltenden Geraet kann ausserdem der Aktorbefehl nicht als
|
|
physische Zustandsbestaetigung gelten.
|
|
|
|
## Entscheidung
|
|
|
|
Der `VerbraucherEinStufig` verwendet keine zyklische Regelberechnung.
|
|
Schaltkontakt, Rueckmeldung, Manager-Vorgabe, Freigabe, Vorgabeablauf und
|
|
Tagesplanung loesen die Regelung direkt aus.
|
|
|
|
Der allgemeine `Umschaltabstand` entfaellt. An seine Stelle treten:
|
|
|
|
- `Mindesteinschaltdauer` in Sekunden, Standard 5,
|
|
- `Mindestausschaltdauer` in Sekunden, Standard 5.
|
|
|
|
Die passende Mindestzeit beginnt mit dem bestaetigten Zustandswechsel. Ohne
|
|
separate Rueckmeldung bestaetigt die Aktorvariable den Wechsel unmittelbar.
|
|
Mit separater Rueckmeldung beginnt die Mindestzeit erst, wenn deren Wert den
|
|
Zielzustand erreicht.
|
|
|
|
Bis dahin bleiben Istleistung und Leistungsangebot beim rueckgemeldeten
|
|
Zustand. `SchaltbefehlAusstehend=true`,
|
|
`AenderungMoeglich=false` und `Schaltbereit=false` machen die laufende
|
|
Umschaltung fuer den Manager sichtbar.
|
|
|
|
Das gemeinsame `Meldeintervall` bleibt erhalten, weil Vertrag `3.0`
|
|
zusaetzlich zu Ereignismeldungen eine periodische Vollmeldung fordert. Dieser
|
|
Timer ist kein Regelzyklus.
|
|
|
|
Die Tagesmindestlaufzeit wird in realen Sekunden und lokaler Symcon-Zeitzone
|
|
gezaehlt. Bei separater Rueckmeldung zaehlt ausschliesslich der bestaetigte
|
|
Ein-Zustand.
|
|
|
|
## Alternativen
|
|
|
|
- Ein fester Regelzyklus wurde verworfen, weil Reaktionszeit und Zeitregeln
|
|
wieder voneinander abhaengen wuerden.
|
|
- Ein allgemeiner Umschaltabstand wurde verworfen, weil Ein- und Aus-Zustand
|
|
unterschiedliche Mindestzeiten benoetigen koennen.
|
|
- Der Aktorbefehl als sofortige physische Bestaetigung wurde bei vorhandener
|
|
Rueckmeldung verworfen.
|
|
- Ein zusaetzlicher Rueckmelde-Timeout wurde nicht eingefuehrt. Ein
|
|
ausstehender Befehl bleibt transparent sichtbar, bis ein neues Ereignis den
|
|
Zustand klaert.
|
|
|
|
## Folgen
|
|
|
|
- Lastwechsel reagieren ohne Polling auf relevante Ereignisse.
|
|
- `Interval`, `IdleCounterMax` und `Umschaltabstand` entfallen.
|
|
- Waerend Mindestzeiten und ausstehenden Rueckmeldungen wird nur die
|
|
bestaetigte Istleistung angeboten.
|
|
- Der Manager erhaelt Status und Restmindestzeit als Zustandseintraege.
|
|
- Eine unerwartete Abweichung zwischen Aktor und Rueckmeldung ausserhalb eines
|
|
laufenden Schaltvorgangs wird als Stoerung gemeldet.
|
|
- Tageslaufzeit und Mindestzeiten sind unabhaengig von einer Zyklusdauer.
|
|
- Das Modul bleibt vollstaendig im Repository Enelix EMS.
|
|
|
|
## Offene Punkte
|
|
|
|
- Eine spaetere sperrbare Variante wird separat spezifiziert.
|
|
- Ein konfigurierbarer Rueckmelde-Timeout benoetigt eine eigene Entscheidung.
|