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

71 lines
3.4 KiB
Markdown

# Optimierer
<span class="badge testing">IN ARBEIT</span>
Das Protokoll zwischen Engine und Optimierer ist veröffentlicht (Version 1.1). Die
Anbindung eines Optimierers wird auf unserer Testanlage erprobt; die Box braucht keinen,
um zu funktionieren.
## Wozu ein Optimierer dient
Die [Regeln der Engine](../fonctionnalites/moteur.md) entscheiden über die Gegenwart: den
Überschuss dieser Minute, verteilt nach Ihren Prioritäten. Ein Optimierer schaut weiter
voraus. Aus den Prognosen, die ihm die Engine übergibt — PV-Erzeugung, Grundverbrauch,
eingegebener Tarif —, schlägt er einen **Plan in Zeitfenstern** über mehrere Stunden vor:
den Warmwasserbereiter in die erwartete Erzeugungsspitze legen, Reserve für das Laden am
Abend lassen usw.
## Der Optimierer berät, die Engine entscheidet
- Die Engine führt nur das **aktuelle Zeitfenster** des Plans aus. Der Rest wird als
Prognose angezeigt und im nächsten Zyklus neu angefragt.
- Jeder Sollwert wird durch die Grenzen des Verbrauchers (Unter-, Obergrenze, Sperren
gegen Takten) und durch den **Überlastschutz** ([Wie die Engine
entscheidet](../fonctionnalites/moteur.md)) **gedeckelt**; diese
bleibt bei der Engine und hat Vorrang vor allem. Ein Optimierer kann keine Sperre
umgehen.
- Jede Aktion muss ihren **Grund** tragen. Eine Aktion ohne Grund wird verworfen.
- Ein fehlerhafter Plan, oder einer, der einen unbekannten Verbraucher anspricht, wird
vollständig abgelehnt.
Ein fehlerhafter Optimierer kann also schlimmstenfalls eine schlechte Verteilung
vorschlagen — begrenzt durch die Engine.
## Die Box funktioniert ohne Optimierer
Optimierer fehlt, schweigt, enthält sich, Plan abgelaufen oder abgelehnt: Die Engine kehrt
für den Zyklus zu ihren **Regeln** (`rules`) zurück, ohne Unterbrechung der Steuerung. Die
App zeigt jederzeit, welche Strategie steuert. Die Community-Version funktioniert
vollständig so.
## Seine Daten kommen nur von der Engine
- Die Engine verbindet sich mit dem Optimierer, nie umgekehrt: Die Box öffnet keinen Port.
- Der Optimierer läuft auf der Box (lokaler Socket) oder auf einem Rechner in Ihrem lokalen
Netz (TCP). Im lokalen Netz wird ein gemeinsames Geheimnis (Token) empfohlen.
- Er erhält **nur** den Kontext, den die Engine sendet, Prognosen inbegriffen: Er ruft
weder einen Wetterdienst noch einen Tarifanbieter auf und öffnet keine Verbindung nach
außen.
- Was er lernt, bleibt vor Ort.
## Wer einen Optimierer schreiben kann
Jeder. Das Protokoll ist offen und durch einen [maschinenlesbaren Vertrag](contrat.md)
unter GPL-3.0 beschrieben. Ein freier **Referenz-Optimierer** und eine
**Konformitäts-Testsuite** erlauben es, einen eigenen zu schreiben und gegen die echte
Engine zu prüfen — siehe [Einen Optimierer schreiben](ecrire.md).
## Der ETM-Optimierer
ETM-Schurig bietet einen eigenen, proprietären Optimierer an, enthalten in der Pro-Edition.
Er wird über dasselbe Protokoll angebunden, mit denselben Grenzen: Er berät, die Engine
entscheidet. Beim Handshake meldet er sich als `etm-optimizer`; der Referenz-Optimierer
meldet sich als `powersync-optimizer`.
## In diesem Abschnitt
- [Protokoll](protocole.md) — Transport, Handshake, Kontext, Plan, Rückfall,
Prüfregeln.
- [Vertrag](contrat.md) — die OpenRPC-Datei, die für die Form der Nachrichten maßgeblich ist.
- [Einen Optimierer schreiben](ecrire.md) — Referenz-Optimierer und Konformitäts-Testsuite.