# 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](../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.