Patrick Schurig e6a5f50467
All checks were successful
Build & Deploy docs / build-deploy (push) Successful in 3m52s
docs(moteur): « Comment le moteur décide » aligné sur le code des règles
Relu contre le moteur (main 61db6cf) : en temps réel la protection ne bride que les bornes,
les autres charges sont délestées au cycle suivant ; cycle chaque minute ; repli à 90 s de
silence du compteur, états sûrs. Ordre réel : mesure et marge de soutirage, échéances VE,
réserve batterie, passe éco (demandes ponctuelles puis obligations étalées) avant la cascade
confort ; recrédit, plancher, verrous et indisponibilité appliqués charge par charge ; une
commande par charge. Retiré : « si l'installateur l'a autorisé » (aucune autorisation dédiée).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ry3vBrJT1tHdxAaXdCWi6L
2026-10-18 13:54:11 +02:00

113 lines
6.6 KiB
Markdown

# Wie die Engine entscheidet
<span class="badge community">COMMUNITY</span>
Die Energie-Engine der Box steuert Ihre Verbraucher selbstständig: Wallboxen,
Warmwasserbereiter, SG-Ready-Wärmepumpe, Relais. Sie ist frei (GPL-3.0) und entscheidet in
der **Community**-Version. Diese Seite beschreibt ihre Logik für Installateure und
Integratoren; die folgenden Seiten erläutern die einzelnen Funktionen.
## Zwei Schleifen, zwei Prioritäten
Die Engine trennt Sicherheit und Verteilung. Es sind zwei getrennte Schleifen, mit
unterschiedlichem Takt und unterschiedlicher Priorität.
- **Der Überlastschutz, bei jeder Messung.** Sobald sich die gemessene Bilanz ändert,
liest die Engine den Strom jeder Phase am Netzanschlusszähler. Überschreitet eine Phase
die eingestellte Grenze, senkt sie **sofort** den Ladestrom der Wallboxen und gibt ihn
wieder frei, sobald genug Reserve da ist. Die übrigen Verbraucher (Warmwasserbereiter,
Wärmepumpe, Relais) werden zu Beginn des nächsten Zyklus abgeworfen
([Lastabwurf](delestage.md)). Dieser Schutz hat Vorrang vor jeder
Verteilungsentscheidung.
- **Der Verteilungszyklus, jede Minute.** Er verteilt die verfügbare Leistung auf die
Verbraucher, auf Basis der Minutenmessung der elektrischen Bilanz, und läuft sofort
erneut, wenn Sie eine Einstellung ändern. Nur hier greift eine Strategie ein: die
eingebauten Regeln oder, falls angeschlossen, ein [Optimierer](../optimiseur/index.md).
**Schweigt der Netzanschlusszähler** (mehr als 90 s ohne Messwert), setzt die Engine die
Verteilung aus und bringt die Verbraucher in eine sichere Stellung: regelbare Verbraucher
auf 0 W, Relais offen, Wärmepumpe im Normalbetrieb, bereits ladende Wallboxen auf
Mindeststrom, kein neuer Verbraucher wird gestartet. Der Überlastschutz bleibt aktiv. Die
Verteilung setzt im Zyklus nach der Rückkehr des Zählers wieder ein.
## Die Regeln, in ihrer Reihenfolge
In jedem Zyklus durchläuft die Engine dieselben Schritte, in derselben Reihenfolge.
1. **Messen.** Ausgangspunkt ist der Messwert des Netzanschlusszählers (Einspeisung und
Bezug). Daraus leitet die Engine auch den **Bezugsspielraum** ab: was die Anlage noch
aus dem Netz beziehen kann, ohne die Phasengrenze zu überschreiten. Kein Netzbezug,
gleich aus welchem Grund, geht darüber hinaus.
2. **Ladefristen bedienen.** Ein Fahrzeug, das bis zu einer bestimmten Uhrzeit geladen
sein muss, wird aus dem Netz bedient, außerhalb der Überschussverteilung.
3. **Die Batterie schützen.** Liegt ein Hausspeicher unter seiner Reserveschwelle, geht der
Überschuss zuerst an ihn: Die gesteuerten Verbraucher erhalten nichts davon. Oberhalb
der Schwelle zählt, was er aufnimmt, als verfügbarer Überschuss. Seine Entladung wird
nie als Überschuss gezählt.
4. **Zugesicherte Bedarfe („Eco“-Durchlauf).** Zuerst die **einmaligen Anforderungen** aus
der App („jetzt heizen“): Der Verbraucher erhält seine volle Leistung, unabhängig von
seinem Rang. Danach die **täglichen Pflichten**, etwa eine Mindestenergie für den
Warmwasserbereiter bis zu einer bestimmten Uhrzeit: Die Engine kauft das Fehlende aus
dem Netz, gleichmäßig bis zur Frist verteilt, und schaltet auf volle Leistung, wenn nur
noch die gerade nötige Zeit bleibt. Diese Bezüge bleiben im Bezugsspielraum.
5. **Den Überschuss kaskadiert verteilen („Komfort“-Durchlauf).** Die Verbraucher werden
in der von Ihnen festgelegten **Priorität** bedient (1 = zuerst). Jeder erhält, was vom
Budget übrig ist, innerhalb seiner Grenzen, und das Budget wird entsprechend
verringert. Es gibt **ein einziges** Budget: Ohne es sähen drei Manager jeweils „2 kW
Überschuss“ und zögen zusammen 6. Der Reihe nach, für jeden Verbraucher:
- was er bereits aufnimmt, wird ihm gutgeschrieben: Ein laufender Verbraucher wird
nicht gegen sich selbst gerechnet;
- unterhalb seiner Mindestleistung bleibt er aus, statt halb zu laufen, und das Budget
geht an den nächsten. Eine Wallbox kann dennoch mit einem kleinen Zuschuss aus dem
Netz starten, innerhalb der eingestellten Toleranz;
- ein **gesperrter** Verbraucher (Mindestlauf- oder Mindeststillstandszeit, Wartezeit
zwischen zwei Änderungen) behält seine aktuelle Leistung;
- ein **nicht verfügbarer** Verbraucher behält seine aktuelle Leistung, ohne neuen
Sollwert; sein Verbrauch wird weiter gezählt.
6. **Ein Befehl pro Verbraucher.** Zugesicherter Bedarf und Überschussanteil desselben
Verbrauchers werden zusammengeführt: Jeder Verbraucher erhält einen einzigen Sollwert,
mit seinem Grund.
### Die Grenzen jedes Verbrauchers
Jeder Verbraucher hat vom Installateur eingetragene Grenzen, die **jede** Entscheidung
einhält, gleich welche Strategie:
- eine **Unter-** und eine **Obergrenze** der Leistung. Bei einer Wallbox sind sie als
Strom angegeben (mal Anzahl der Phasen), und die Obergrenze wird zusätzlich durch die
Phasengrenze beschränkt;
- **Sperren gegen Takten**: Mindestlauf- und Mindeststillstandszeit, Wartezeit zwischen
zwei Änderungen. Eine Wallbox hat eigene (Wartezeit zwischen Ein und Aus, Wartezeit
zwischen zwei Stromänderungen);
- bei einer SG-Ready-Wärmepumpe: der Zustand wird nach der geschätzten Leistung jedes
Zustands gewählt, mit Hysterese und Mindesthaltedauer. Der Sperrzustand wird nie durch
den Überschuss ausgelöst.
## Der Grund jeder Entscheidung
Die Engine trifft keine Entscheidung, ohne ihren Grund zu nennen. Jede Entscheidung trägt
einen nicht leeren **Grund** (`decisionReason`): einen stabilen Code mit Parametern, den
die App in Ihrer Sprache anzeigt — „Überschuss reicht nicht“, „unter der
Mindestleistung“, „Ladefrist“… Die Liste der Codes ist mit dem
[Optimierer-Protokoll](../optimiseur/protocole.md#reponse) veröffentlicht.
## Die Messung, nie das Ergebnis der Steuerung
Der Überschuss wird aus der **Rohmessung** des Netzanschlusszählers berechnet, so wie sie
gemessen wird. Nie aus einer nach der Steuerung neu berechneten Bilanz: Die Engine würde
sich selbst lesen und schwingen.
## Ohne Internet
All das läuft auf der Box. Ohne Internet steuert die Engine, wendet die Sicherheit an und
antwortet der App in Ihrem lokalen Netz. Nur die [PV-Prognose](prevision-pv.md) setzt
aus. In der Community-Version fließen weder die Prognose noch der
[eingegebene Tarif](../tarifs.md) in die Entscheidungen der Regeln ein: Beide werden
angezeigt und gespeichert, aber nie zum Entscheiden verwendet.
## Und ein Optimierer?
Ein Optimierer kann anhand der Prognosen einen Plan über mehrere Stunden vorschlagen. Er
ersetzt den Verteilungsschritt, **nie** den Überlastschutz oder die Grenzen. Siehe
Abschnitt [Optimierer](../optimiseur/index.md).