· 3 Min. Lesezeit
Eine E-Paper-Abfahrtstafel auf dem reTerminal
Die Tafel zeigt Live-Abfahrten des Stuttgarter VVS auf einem E-Paper-Panel neben der Wohnungstür, sodass sich die nächsten Verbindungen ohne Handy und ohne App ablesen lassen. Sie läuft auf einem Seeed reTerminal E1001: ein ESP32-S3 mit Octal-PSRAM hinter einem 7,5-Zoll-E-Paper-Panel mit 800×480 in Schwarz-Weiß. E-Paper eignet sich für diesen Zweck, weil es bei Umgebungslicht quer durch den Raum lesbar bleibt, nur während eines Refreshs Strom zieht und sein letztes Bild auch ohne Ansteuerung hält. Die Firmware ist ESPHome — YAML für die Gerätekonfiguration, C++-Lambdas für Parsing- und Layout-Logik.
Datenweg auf dem Gerät
Das Gerät fragt die öffentliche VVS-EFA-API per WiFi ab, parst die Antworten lokal und rendert das Ergebnis selbst. Zur Laufzeit ist weder eine Home-Assistant-Instanz noch ein Zwischenserver erforderlich, womit die Komponenten entfallen, die sonst verfügbar bleiben müssten, damit die Tafel weiterarbeitet — und der Anfrageweg bleibt bei einem einzigen Sprung.
Die Abfahrten von drei konfigurierbaren Haltestellen werden zu einer chronologisch sortierten Liste zusammengeführt, von der die nächsten fünf angezeigt werden. U-Bahn und S-Bahn sind enthalten, Busse werden standardmäßig herausgefiltert. Haltestellen-IDs, Aktualisierungsintervall, Linien- und Richtungsfilter, Bildschirmdrehung und Oberflächensprache sind YAML-Substitutions, sodass eine Umkonfiguration keine Änderungen an Parsing- oder Layout-Code erfordert.
Verhalten im Fehlerfall
Eine Verkehrs-API ist eine Abhängigkeit, die zeitweise ausfällt, weshalb der größte Teil der Implementierungsarbeit in die Fehlerfälle geflossen ist. Jede Haltestelle wird unabhängig mit eigenem Timeout abgefragt, sodass ein langsamer Endpunkt die anderen nicht verzögert. Das Panel wird erst neu gezeichnet, wenn alle Anfragen aufgelöst sind, was eine teilweise aktualisierte Tafel ausschließt. Fallen alle Anfragen aus, bleiben die letzten erfolgreich abgerufenen Daten auf dem Schirm, statt dass die Tafel leert, und ein Indikator kennzeichnet die Daten als veraltet — eine veraltete Tafel ist nützlicher als eine leere, solange dieser Zustand sichtbar ist.
Gestaltung der Anzeige
Auf einem Schwarz-Weiß-Panel müssen Form, Gewicht und Position die Information tragen, die sonst über Farbe liefe, weshalb die Linien-Badges die Unterscheidung übernehmen: eckige Ecken für U-Bahn, runde für S-Bahn, mit Richtungsdreiecken auf verzweigenden Linien wie U7 und U15, um den befahrenen Ast zu kennzeichnen. Gesetzt ist der Text in Noto Sans; englische und deutsche Sprachpakete sind enthalten.
Optionale Home-Assistant-Anbindung
Die ESPHome-API stellt optional rund ein Dutzend Entitäten für Home Assistant bereit — nächste Abfahrt, Ladezähler, ein Stale-Flag sowie Diagnosewerte wie Temperatur und WiFi-Signal. Diese Verbindung ist optional, und ohne sie ändert sich das Verhalten der Tafel nicht: Das Gerät benötigt keine Benachrichtigungen, kein Konto und kein Abo, sondern lediglich Stromversorgung und ein WiFi-Netz. Die vollständige Konfiguration liegt auf GitHub.