fix(display): Phase im Kopfbalken, Rand unten, Wants-Fehler behoben

Drei Befunde der Hardware-Abnahme: die Migrationsphase stand als eigene
kleine Zeile unter dem Lampennamen und ging dort unter - sie steht jetzt
rechtsbuendig neben dem Modus in der invertierten Kopfzeile (mit
Kuerzung/kleinerer Schrift/Weglassen als gestaffelte Antwort auf eine zu
lange Phase, nie mit Ueberlappung). Die letzte Beiwerkzeile klebte am
unteren Panelrand - durch das Verschieben der Phase in den Kopf bleiben
nur noch fuenf statt sechs Beiwerkzeilen, zusaetzlich durchgesetzt per
BOTTOM_MARGIN_PX in der Abbruchbedingung von compose().

Ausserdem ein am Geraet nachgewiesener Fund: ninlight-display.service
trug Wants=ninlight-station.service NEBEN dem gewollten After= - Wants=
aktiviert die genannte Unit aber, statt nur zu ordnen, und zog den
absichtlich deaktivierten Stationsdienst bei jedem Boot ohne
Zugangspunkt in einen "failed"-Zustand. Wants= entfernt, After= bleibt.
This commit is contained in:
Michael Sauer
2026-09-14 03:11:32 +02:00
parent bb39105ac4
commit 03d6328dd5
4 changed files with 319 additions and 44 deletions
+15 -2
View File
@@ -1,12 +1,25 @@
[Unit]
Description=ninlight E-Paper-Anzeige (Status der Migrations-/Rettungsstation)
# Nur eine Anzeige fuer den Hauptdienst - Wants=/After=, NICHT Requires=/BindsTo=: ein
# Nur eine Anzeige fuer den Hauptdienst - After=, NICHT Requires=/BindsTo=/Wants=: ein
# fehlendes oder abgestuerztes Panel darf server.py niemals mitreissen, und server.py
# darf umgekehrt starten, auch wenn dieser Dienst fehlt oder deaktiviert ist. Siehe
# display.py's Modul-Docstring: die Anzeige ist nirgends Voraussetzung fuer die
# Migration.
#
# KEIN Wants=ninlight-station.service (stand hier zuerst, Fund der Hardware-Abnahme auf
# Pi 2): Wants= ist keine reine Reihenfolgeangabe, sondern AKTIVIERT die genannte Unit
# beim Start dieser Unit, unabhaengig davon, ob sie enabled ist - "ninlight-station" ist
# absichtlich disabled (siehe deren Kommentar: die Station ist per Vorgabe aus), wurde
# aber trotzdem bei jedem Boot mitgestartet, weil dieser (enabled) Anzeigedienst sie ueber
# Wants= mitzog. Ohne Zugangspunkt kann server.py 192.168.8.1 nicht binden, stirbt, wird
# von Restart=always dort mehrfach neu versucht und bleibt auf "failed" haengen - das
# flutet das Journal bei jedem Boot und laesst "ninlight-station status" faelschlich
# einen Fehler ("failed" statt "inactive") vermuten, wo absichtlich nichts laeuft.
# After= allein ordnet nur die Startreihenfolge, FALLS beide Units ohnehin gestartet
# werden (z.B. wenn jemand die Station von Hand einschaltet) - und genau das war hier
# gemeint, nicht "zieh die Station mit hoch". Nicht aus falscher Vorsicht wieder
# einbauen: der Nebeneffekt ist genau der oben beschriebene, kein Sicherheitsnetz.
After=ninlight-station.service
Wants=ninlight-station.service
# Gehoeren seit systemd 229 ins [Unit], nicht ins [Service] (dort standen sie zuerst -
# Fixrunde 1, I1: systemd ignoriert sie dort mit "Unknown key name", die Vorgabe (5
# Starts/10s) greift dann bei RestartSec=5 nie, und genau das sollte die Deckelung unten