SolarKreis · Dokumentation

Wie das gebaut ist, und warum so

Gemessenes steht hier getrennt von Angenommenem. Und zu jeder Entscheidung steht die Alternative, die verworfen wurde.

01

Was SolarKreis ist

Das Set-Up

Drei simulierte Solarparks um eine Zentrale, gespeist mit echten Daten.

Echt und simuliert

Echt sind Wetter, Strompreis und aktive Feuer. Simuliert sind Parks und Geräte. Ihre Messwerte rechnet die Simulation aus der echten Einstrahlung.

Kennzeichnung

Jeder Wert trägt seine Herkunft mit. Die Oberfläche liest sie aus. Welche Quelle wann zuletzt geantwortet hat, steht auf der Datenquellen-Seite.

02

Datenquellen

Drei, alle nur lesend

Open-Meteo für Einstrahlung, Temperatur und Niederschlag. aWATTar für den Strompreis, der am Vortag je Stunde festgelegt wird. NASA FIRMS für aktive Feuer.

Ein roher Feed ist kein Alarm

Ein Satellitentreffer ist eine Wärmedetektion, keine Gefahrenmeldung. Ohne Schwelle hätte jeder Treffer im Umkreis einen Alarm ausgelöst — an einem gemessenen Tag über hundert. Es gilt deshalb: Hinweis ab 5 MW in 10 km, kritisch ab 10 MW in 5 km. Die Messung dahinter steht mit den heutigen Zahlen auf der Datenquellen-Seite.

03

Datenmodell

Drei Formate, ein Reading

Drei Hersteller senden dasselbe in drei Formaten. SolarKreis vereinheitlicht sie beim Eingang, nicht erst in der Anzeige.

FMTRohformNormalisiert
A{ "outputKw": 5845.4, "tempC": 39 }5845,4 kW · 39 °C
B{ "power_w": 4815000, "temperature": 39 }4815,0 kW · 39 °C
C{ "payload": { "p": 3597.6, "t": 41 } }3597,6 kW · 41 °C

Warum der Umweg

Die Geräte melden ganze Grad. Wer die Rohform überspringt, zeigt 38,6 °C an. Diese Zahl hat nie ein Gerät gesendet. scripts/pruefen.mjs prüft genau das gegen die laufende Instanz.

04

Read, Write, R&W

Wer liest, wer schreibt

Die externen Quellen geben nur Daten ab (read). Der Mensch gibt nur Befehle (write). Feld und Zentrale tauschen beides (r&w).

Farbe ist nie das einzige Signal

Die Richtung steht in der Pfeilspitze, nicht im Farbton. Wer Farben nicht unterscheidet, liest die Bahn trotzdem.

Warum jede Bahn eine Fassung hat

Auf dem dunklen Grund des Lageplans trägt jede Farbe ihren Kontrast selbst — zwischen 5,8:1 und 6,9:1, gefordert sind 3:1 für Nicht-Text. Die dunkle Fassung hat deshalb eine andere Aufgabe: wo zwei Bahnen sich kreuzen, tritt die untere zurück, und man kann einer einzelnen mit dem Auge folgen.

05

Schreibpfad und Sicherheit

Im Zweifel abschalten

Fail-closed heißt: im Zweifel nicht ausführen. Geschaltet wird nur bei gesundem Gerät, frischen Daten und berechtigtem Bediener. Fehlt eines davon, geht die Anlage in den sicheren Zustand.

Sicher heißt Ruhe

Beim Speicher heißt sicher: Ruhe. Nicht laden, nicht entladen.

Mensch an der kritischen Grenze

Kritische Aktionen verlangen eine Bestätigung. Der Not-Aus ist das einzige Bedienelement mit einer Datenfarbe.

Auch Absagen stehen im Log

Ein abgelehntes Kommando wird genauso angehängt wie ein ausgeführtes. Ein Wächter, dessen Absagen spurlos verschwinden, ist nicht prüfbar.

06

Automatisierte Abläufe

Die Kreis-Regel ist eine Leiter

Die Netzgrenze ist das, was der Netzanschluss aufnehmen darf: 38,9 von 54 MW. Reißt der Kreis sie, oder wird der Preis negativ, geht der Überschuss in den Speicher. Erst wenn der voll ist, wird gedrosselt.

Abregelung als letztes Mittel

Drosseln heißt: Strom wegwerfen, der schon da ist. Der Speicher fasst bewusst nur 20 MWh. Wäre er größer, käme der Fall nie vor.

Die Automatik hat keine Abkürzung

Sie geht durch denselben Wächter wie ein Mensch und kann nichts, was ein Bediener nicht auch dürfte. Sonst hieße fail-closed nur „fail-closed für Menschen“.

Feuer meldet, aber schaltet nicht

Der Not-Aus bleibt beim Menschen. Eine Anlage stillzulegen, weil ein Satellit Wärme gesehen hat, wäre die falsche Richtung von fail-closed.

07

Event Sourcing

Nichts wird überschrieben

Jede Änderung wird angehängt, nichts überschrieben. Den Sollwert rechnet SolarKreis aus allen Kommandos zusammen. Ein Kommando ohne Eintrag kann es deshalb nicht geben.

Der Ladestand als Prüfstein

Der Ladestand summiert sich über alle Ereignisse und über die Zeit dazwischen. Aus dem letzten Eintrag allein lässt er sich nicht ablesen. Genau deshalb zeigt er, ob das Log trägt.

Bewusste Grenze

Der Store liegt im Speicher, nicht in einer Datenbank. Nach einem Kaltstart ist das Log leer. Für ein Portfoliostück ist das die richtige Grenze; für den Betrieb wäre es die erste Baustelle.

08

Entscheidungen und Abwägungen

Jede nennt ihre Alternative

Ohne die verworfene Möglichkeit ist eine Entscheidung nur eine Behauptung.

Ereignisstrom statt Überschreiben
Entscheidung
Der Zustand wird aus allen Ereignissen errechnet, nicht in Feldern gespeichert.
Warum
Das Log ist damit der Zustand, nicht ein Protokoll daneben.
Verworfen
Überschreiben und daneben protokollieren. Dann kann das Protokoll lügen, ohne dass es auffällt.
Messwerte berechnen statt speichern
Entscheidung
Readings werden deterministisch gerechnet. Im Log stehen nur Kommandos und Auffälligkeiten.
Warum
Sieben Geräte im Sekundentakt wären 25.000 Einträge pro Stunde für null Erkenntnis.
Verworfen
Jede Messung schreiben. Nach einem Tag wäre das Log unlesbar.
Fail-closed als Standard
Entscheidung
Bei Zweifel sicherer Zustand, mit protokolliertem Grund.
Warum
Ein falsches Kommando kostet mehr als ein ausgelassenes.
Verworfen
Den letzten bekannten Zustand halten — Weiterfahren im Blindflug.
Gefilterte Feuermeldung statt rohem Feed
Entscheidung
Alarm erst ab gemessener Schwelle: 5 MW in 10 km, kritisch 10 MW in 5 km.
Warum
Roh wären es 101 Treffer in fünf Tagen. Ein Alarm, den man wegklickt, schützt nichts.
Verworfen
Jede Detektion melden. Ende August ist in Brandenburg Erntezeit, das wären Stoppelfeuer.
Drei echte Quellen statt vieler
Entscheidung
Weitere Feeds nur, wenn sie zu einem Kommando führen.
Warum
Ein Strom, der nichts auslöst, ist das Muster, gegen das dieses Stück argumentiert.
Verworfen
Die offene Autobahn-Schnittstelle. Frei nutzbar, wirkt aber auf nichts.
09

Bewusst nicht gebaut

Jeder Eintrag nennt seine Messung

Ein „passt nicht ins Scope“ ohne Beleg ist eine Behauptung, keine Entscheidung.Die Langfassung steht in docs/scope-out.md.

Blendungs-Alarm
Entscheidung
Wäre aus dem Sonnenstand berechenbar gewesen, ohne neuen Feed. Die Geometrie ist gebaut.
Warum
Ganzes Jahr im 5-Minuten-Raster: null Blendfenster. Die A9 verläuft dort 51°/231°, die Blendkeulen liegen bei 75–120° und 240–285°.
Verworfen
Nach einer passenden A9-Strecke suchen — das hieße, die Welt ans Feature anzupassen.
Verkehrsmelder
Entscheidung
Feld Süd liegt 221 m von der A9. Lag nahe.
Warum
Schnittstelle frei nutzbar, sieben Live-Meldungen. Eine Baustelle fünf Kilometer weiter ändert nichts an Leistung oder Sicherheit.
Verworfen
Den Feed trotzdem anzeigen. Ein Strom ohne Wirkung ist Dekoration.
Mehrtagesspeicher
Entscheidung
Eisen-Luft wäre für einen Blackout-Rückfall die richtige Technik.
Warum
SolarKreis kennt keine Verbraucher. Ein Notfallspeicher braucht eine Last.
Verworfen
Die 10-%-Reserve zur Inselreserve umwidmen. Ohne Last wäre das eine Zahl ohne Bezugsgröße.