Feature/dashboard rewrite v2 #27

Merged
samuelbias merged 2 commits from feature/dashboard-rewrite-v2 into dev 2026-09-04 13:27:47 +02:00
Owner

Ziel

Das Dashboard wurde für den dauerhaften Einsatz vollständig neu aufgebaut. Im Vordergrund stehen die hohe Informationsdichte, gute Lesbarkeit aus größerer Entfernung, das aktuelle Corporate Design und unauffällige Hintergrundaktualisierungen.

Zusätzlich wurde die Erzeugung des Monatsplans korrigiert und stabilisiert.

Dashboard

  • vollständig neue, responsive Dashboard-Struktur
  • kompakte Aufteilung mit:
    • Uhrzeit, Datum und Temperaturen
    • allen zukünftig relevanten Ansagen
    • Bibelwort des Tages
    • Live-Busabfahrten
    • vollständigem Monatsplan
    • großflächigen Aushängen
  • weiße, rahmenlose Inhaltsflächen mit farbigen Akzenten entsprechend dem Corporate Design
  • Wolkenhintergrund und minimierter ungenutzter Weißraum
  • einheitliche Typografie und dynamische Skalierung für große Monitore

Ansagen

  • Daten werden direkt aus dem Contentpanel übernommen
  • alle ab heute relevanten Ansagen werden dauerhaft dargestellt
  • abgelaufene Ansagen werden bei Aufruf des Dashboards oder Contentpanels bereinigt
  • listenartige Darstellung mit einheitlich ausgerichteten Textspalten
  • kontinuierlicher Verlauf mit Ausblendung am unteren Rand statt Seitenwechsel

Bibelwort

  • vollständige Darstellung ohne automatischen Wechsel
  • Überlauf wird am unteren Rand weich ausgeblendet
  • laufende Aktualisierungen erzeugen keine sichtbaren Lade- oder Leerzustände

Aushänge

  • mehrseitige Dokumente bleiben möglichst vollständig zusammen
  • zusammengehörige Seiten werden ohne Zwischenraum und mit gemeinsamem Rahmen dargestellt
  • Seiten werden so zusammengestellt, dass die verfügbare Fläche möglichst vollständig gefüllt ist
  • bei Bedarf werden Seiten aus der vorherigen Zusammenstellung übernommen
  • kreisförmige Fortschrittsanzeige für den nächsten Seitenwechsel
  • neue Inhalte werden nach einem vollständigen Durchlauf im Hintergrund geladen
  • vorhandene Inhalte bleiben während fehlgeschlagener Aktualisierungen sichtbar

Monatsplan

  • vollständige Darstellung der erzeugten Monatsplanseiten
  • transparente Außenbereiche werden bei der Anzeige berücksichtigt
  • Seiten behalten ihr Seitenverhältnis und erhalten einen gleichmäßigen weißen Rand
  • bei zwei Seiten wird ein definierter Abstand zwischen den Seiten eingehalten
  • Aktualisierung erfolgt gemeinsam mit den Aushängen nach einem vollständigen Durchlauf

Live-Abfahrten

  • Anzeige der nächsten fünf Busabfahrten an der Haltestelle Eichborndamm/Antonienstraße
  • kompakte Zeilen mit Linie, Fahrtrichtung, verbleibender Zeit und Abweichung
  • farbiger Statusrand:
    • Grün: pünktlich beziehungsweise planmäßig
    • Orange: verspätet
    • Rot: verfrüht oder entfällt
  • alternierende weiße und graue Zeilen
  • Aktualisierung ungefähr alle zwölf Sekunden sowie zum Minutenwechsel
  • gemeinsamer serverseitiger Cache mit bis zu 30 Abfahrten
  • bei API-Ausfällen bleibt der letzte erfolgreiche Stand bis zu fünf Minuten aktuell
  • Restzeiten und sichtbare Einträge werden auch während eines Ausfalls fortlaufend neu berechnet
  • verzögerte Wiederholungsversuche verhindern unnötige Last bei externen Fehlern

Temperaturen

  • Innenwert über Home Assistant
  • Außenwert für den Standort der Bushaltestelle
  • Innentemperatur wird nach der vorgegebenen 0,4-Grenze auf ganze Grad gerundet
  • der letzte erfolgreiche Wert bleibt bei vorübergehenden Verbindungsproblemen sichtbar

Monatsplan-Worker

  • Ortsangaben werden jetzt aus dem tatsächlichen Ereignisblock und dem Feld show_place gelesen
  • dadurch werden Titel, Notizen und Datumsangaben nicht mehr fälschlich als Ort übernommen
  • fehlende Ortsangaben bleiben leer; -- wird nicht mehr ausgegeben
  • jeder Monat erhält ein korrekt platziertes Logo im Monatstitel
  • der zweite Monat beginnt auf einer neuen Seite, wenn der erste Monat vollständig auf Seite 1 passt
  • reicht der erste Monat bereits auf Seite 2, wird der zweite Monat dort mit dem vorgesehenen Abstand fortgesetzt
  • bestehende Seitenaufteilung und Darstellung bleiben ansonsten unverändert

Technische Umsetzung

  • getrennte Datenendpunkte für Inhalte, Bilder, Temperaturen und Abfahrten
  • unabhängige Hintergrundabfragen, damit ein fehlerhafter Dienst keine anderen Bereiche blockiert
  • Austausch von Inhalten erst nach einer erfolgreichen Antwort
  • reduzierte Datenobjekte und entfernte ungenutzte Konfiguration
  • generierte Cache-Dateien werden nicht versioniert
  • keine Datenbankmigration erforderlich

Prüfung

  • PHP-Syntax aller Dashboard-Endpunkte und Hilfsdateien geprüft
  • JavaScript-Syntax geprüft
  • Python-Syntax des Monatsplan-Workers geprüft
  • Dashboard in Full HD und 4K kontrolliert
  • Skalierung, Seitenverhältnisse und Abstände des Monatsplans geprüft
  • mehrseitige Aushänge und gemeinsame Rahmen geprüft
  • Busdarstellung, Statusfarben, Restzeiten und Cache-Verhalten geprüft
  • Ortszuordnung und Seitenumbruch des Monatsplans anhand der erzeugten Seiten kontrolliert
## Ziel Das Dashboard wurde für den dauerhaften Einsatz vollständig neu aufgebaut. Im Vordergrund stehen die hohe Informationsdichte, gute Lesbarkeit aus größerer Entfernung, das aktuelle Corporate Design und unauffällige Hintergrundaktualisierungen. Zusätzlich wurde die Erzeugung des Monatsplans korrigiert und stabilisiert. ## Dashboard - vollständig neue, responsive Dashboard-Struktur - kompakte Aufteilung mit: - Uhrzeit, Datum und Temperaturen - allen zukünftig relevanten Ansagen - Bibelwort des Tages - Live-Busabfahrten - vollständigem Monatsplan - großflächigen Aushängen - weiße, rahmenlose Inhaltsflächen mit farbigen Akzenten entsprechend dem Corporate Design - Wolkenhintergrund und minimierter ungenutzter Weißraum - einheitliche Typografie und dynamische Skalierung für große Monitore ### Ansagen - Daten werden direkt aus dem Contentpanel übernommen - alle ab heute relevanten Ansagen werden dauerhaft dargestellt - abgelaufene Ansagen werden bei Aufruf des Dashboards oder Contentpanels bereinigt - listenartige Darstellung mit einheitlich ausgerichteten Textspalten - kontinuierlicher Verlauf mit Ausblendung am unteren Rand statt Seitenwechsel ### Bibelwort - vollständige Darstellung ohne automatischen Wechsel - Überlauf wird am unteren Rand weich ausgeblendet - laufende Aktualisierungen erzeugen keine sichtbaren Lade- oder Leerzustände ### Aushänge - mehrseitige Dokumente bleiben möglichst vollständig zusammen - zusammengehörige Seiten werden ohne Zwischenraum und mit gemeinsamem Rahmen dargestellt - Seiten werden so zusammengestellt, dass die verfügbare Fläche möglichst vollständig gefüllt ist - bei Bedarf werden Seiten aus der vorherigen Zusammenstellung übernommen - kreisförmige Fortschrittsanzeige für den nächsten Seitenwechsel - neue Inhalte werden nach einem vollständigen Durchlauf im Hintergrund geladen - vorhandene Inhalte bleiben während fehlgeschlagener Aktualisierungen sichtbar ### Monatsplan - vollständige Darstellung der erzeugten Monatsplanseiten - transparente Außenbereiche werden bei der Anzeige berücksichtigt - Seiten behalten ihr Seitenverhältnis und erhalten einen gleichmäßigen weißen Rand - bei zwei Seiten wird ein definierter Abstand zwischen den Seiten eingehalten - Aktualisierung erfolgt gemeinsam mit den Aushängen nach einem vollständigen Durchlauf ### Live-Abfahrten - Anzeige der nächsten fünf Busabfahrten an der Haltestelle Eichborndamm/Antonienstraße - kompakte Zeilen mit Linie, Fahrtrichtung, verbleibender Zeit und Abweichung - farbiger Statusrand: - Grün: pünktlich beziehungsweise planmäßig - Orange: verspätet - Rot: verfrüht oder entfällt - alternierende weiße und graue Zeilen - Aktualisierung ungefähr alle zwölf Sekunden sowie zum Minutenwechsel - gemeinsamer serverseitiger Cache mit bis zu 30 Abfahrten - bei API-Ausfällen bleibt der letzte erfolgreiche Stand bis zu fünf Minuten aktuell - Restzeiten und sichtbare Einträge werden auch während eines Ausfalls fortlaufend neu berechnet - verzögerte Wiederholungsversuche verhindern unnötige Last bei externen Fehlern ### Temperaturen - Innenwert über Home Assistant - Außenwert für den Standort der Bushaltestelle - Innentemperatur wird nach der vorgegebenen 0,4-Grenze auf ganze Grad gerundet - der letzte erfolgreiche Wert bleibt bei vorübergehenden Verbindungsproblemen sichtbar ## Monatsplan-Worker - Ortsangaben werden jetzt aus dem tatsächlichen Ereignisblock und dem Feld `show_place` gelesen - dadurch werden Titel, Notizen und Datumsangaben nicht mehr fälschlich als Ort übernommen - fehlende Ortsangaben bleiben leer; `--` wird nicht mehr ausgegeben - jeder Monat erhält ein korrekt platziertes Logo im Monatstitel - der zweite Monat beginnt auf einer neuen Seite, wenn der erste Monat vollständig auf Seite 1 passt - reicht der erste Monat bereits auf Seite 2, wird der zweite Monat dort mit dem vorgesehenen Abstand fortgesetzt - bestehende Seitenaufteilung und Darstellung bleiben ansonsten unverändert ## Technische Umsetzung - getrennte Datenendpunkte für Inhalte, Bilder, Temperaturen und Abfahrten - unabhängige Hintergrundabfragen, damit ein fehlerhafter Dienst keine anderen Bereiche blockiert - Austausch von Inhalten erst nach einer erfolgreichen Antwort - reduzierte Datenobjekte und entfernte ungenutzte Konfiguration - generierte Cache-Dateien werden nicht versioniert - keine Datenbankmigration erforderlich ## Prüfung - PHP-Syntax aller Dashboard-Endpunkte und Hilfsdateien geprüft - JavaScript-Syntax geprüft - Python-Syntax des Monatsplan-Workers geprüft - Dashboard in Full HD und 4K kontrolliert - Skalierung, Seitenverhältnisse und Abstände des Monatsplans geprüft - mehrseitige Aushänge und gemeinsame Rahmen geprüft - Busdarstellung, Statusfarben, Restzeiten und Cache-Verhalten geprüft - Ortszuordnung und Seitenumbruch des Monatsplans anhand der erzeugten Seiten kontrolliert
samuelbias added 2 commits 2026-09-04 13:27:30 +02:00
samuelbias merged commit 5c7401f3bc into dev 2026-09-04 13:27:47 +02:00
Sign in to join this conversation.