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

3.4 KiB

Optimierer

IN ARBEIT

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 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) 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 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.

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 — Transport, Handshake, Kontext, Plan, Rückfall, Prüfregeln.
  • Vertrag — die OpenRPC-Datei, die für die Form der Nachrichten maßgeblich ist.
  • Einen Optimierer schreiben — Referenz-Optimierer und Konformitäts-Testsuite.