Zum Hauptinhalt springen

Transport for London Smart-Home-Integration, kostenlos und Open Source

Transport for London-Integration für Gladys Assistant

Londoner U-Bahn, Overground, DLR, Elizabeth line, Tram und Bus: Linienstatus und nächste Ankünfte.

Der Status deiner Londoner Linien und die nächsten Ankünfte an deinen Haltestellen in Gladys: U-Bahn (Tube), London Overground, DLR, Elizabeth line, Trams und Busse, in Echtzeit.

Die Daten stammen aus der TfL Unified API, den Open Data von Transport for London: kein Konto nötig, dazu ein optionaler kostenloser Schlüssel. Powered by TfL Open Data. Diese Integration steht in keiner Verbindung zu Transport for London.

Was du bekommst​

  • Ein Gerät pro verfolgter Linie: ihr Status, wie TfL ihn formuliert („Leichte Verspätungen“, „Teilsperrung“…), eine Störungsstufe von 0 bis 3, gestört ja/nein und der von TfL genannte Grund.
  • Ein Gerät pro verfolgter Haltestelle (eine U-Bahn-, DLR-, Overground-, Elizabeth-line- oder Tram-Station oder eine Bushaltestelle), optional gefiltert nach Linien und Richtung: Minuten bis zur nächsten und übernächsten Ankunft, Linie und Ziel der nächsten und ob eine ihrer Linien gestört ist.
  • Zwei Widgets: die nächsten Ankünfte einer Haltestelle und der Status deiner verfolgten Linien.
  • Zwei Szenen-Auslöser: Linienstatus geändert (gestört, verschlechtert, verbessert, wieder normaler Betrieb) und Zeit zu gehen (1 bis 20 Minuten vor einer Ankunft).
  • Zwei Szenen-Aktionen: die nächsten Ankünfte einer Haltestelle abrufen, den Status einer Linie abrufen, jeweils mit einem Satz, der per Nachricht oder an einen Lautsprecher gesendet werden kann.

Voraussetzungen​

  • Gladys Assistant 5.1.0 oder neuer.
  • Internetzugang vom Gladys-Rechner (die Integration ruft api.tfl.gov.uk auf).
  • Optional: ein kostenloser TfL-App-Schlüssel aus dem TfL-API-Portal (registrieren, dann das Produkt „500 Requests per min“ abonnieren). Ohne ihn nutzt die Integration das anonyme Kontingent, das für einige Linien und Haltestellen reicht.

Installation​

  1. Öffne in Gladys Integrationen → Von GitHub installieren.
  2. Füge https://github.com/guim31/gladys-tfl ein und installiere.
  3. Öffne den Tab Konfiguration der Integration, um Linien und Haltestellen zu verfolgen (siehe unten).

Konfiguration​

Einstellungen​

  • Sprache der Texte: Sprache der Funktionsnamen (beim Anlegen eines Geräts festgelegt), der Status und der Sätze für deine Szenen. Die Gründe der Störungen bleiben Englisch, wie TfL sie veröffentlicht.
  • Aktualisierungsintervall: 1 Minute (Standard) oder 2 Minuten.
  • TfL-App-Schlüssel (optional): hebt das Kontingent an. Er wird nie in die Protokolle geschrieben.

Eine Linie verfolgen​

Nutze Linie verfolgen mit dem Namen einer Linie: Victoria, Elizabeth line, Hammersmith & City, DLR, Tram, eine Overground-Linie (Liberty, Lioness, Mildmay, Suffragette, Weaver, Windrush) oder eine Busnummer (73, N29). Öffne dann den Tab Entdecken und lege das Gerät an.

Eine Haltestelle verfolgen​

  1. Haltestelle suchen: gib einen Namen ein (Oxford Circus, Brixton). Die Antwort listet die Stationen und Bushaltestellen mit ihrer Kennung in eckigen Klammern und die Richtung einer Bushaltestelle (→ Herne Hill).
  2. Haltestelle hinzufügen: gib den genauen Namen oder die Kennung ein. Optionale Filter:
    • Linien: die zu behaltenden Linien, durch Kommas getrennt (Victoria, Central). Leer: alle.
    • Richtung: ein Teil des Ziels oder des Bahnsteigs (Brixton, Southbound).
  3. Öffne den Tab Entdecken und lege das Gerät an.

Eine Station mit mehreren Netzen (ein „Hub“ wie Brixton) wird über ihre TfL-Stationen gelesen; National-Rail-Züge haben keine TfL-Ankünfte. Dieselbe Haltestelle kann mehrmals mit anderen Filtern hinzugefügt werden: jede Filterkombination ist ein eigenes Gerät.

Entfernen, Status ansehen​

  • Linie nicht mehr verfolgen und Haltestelle entfernen (mit dem Namen aus dem Status) beenden das Lesen. Das Gerät bleibt in Gladys, bis du es löschst.
  • Status listet die verfolgten Linien und Haltestellen, ob ihr Gerät angelegt ist, das letzte Lesen von TfL und den letzten Fehler.

Geräte​

Linie (TfL · Victoria, TfL · Bus 73):

FunktionWert
Statusder Status in Worten, „Leichte Verspätungen“, „Teilsperrung + …“
Störungsstufe0 normaler Betrieb, 1 leicht, 2 schwer oder teilweise, 3 eingestellt
Störung1, wenn die Stufe über 0 liegt, mit Verlauf
Grundder Grund laut TfL (Englisch) oder „Keine Störung“

Haltestelle (TfL · Oxford Circus (Victoria · → Southbound)):

FunktionWert
Nächste AnkunftWartezeit in Minuten (1440, wenn keine Ankunft angekündigt ist)
Übernächste AnkunftMinuten bis zur Ankunft danach
Linie und Ziel„Victoria → Walthamstow Central“
Störung1, wenn eine Linie der Haltestelle (oder ihres Filters) gestört ist

Die nächtliche Schließung der U-Bahn („Betriebsschluss“) ist keine Störung. Später angekündigte Bauarbeiten gelten erst ab ihrem Beginn als Störung.

Widgets​

  • Nächste Ankünfte: wähle eine Haltestelle. Eine Zeile pro Ankunft („Victoria → Brixton“, „07:45 · 3 min · Platform 6“), grün bei normalem Betrieb der Linie, orange bei leichter Störung, rot bei schwerer; der Grund einer Störung oben.
  • Status der TfL-Linien: jede verfolgte Linie mit angelegtem Gerät, die am stärksten gestörte zuerst, in denselben Farben, mit dem ersten Grund oben.

Szenen-Auslöser​

  • Linienstatus geändert: eine verfolgte Linie wird gestört, verschlechtert sich, bessert sich oder läuft wieder normal. Filter: die Linie (leer: alle) und die Ereignisse. Variablen: Linie, Ereignis, Status, Stufe, vorherige Stufe, Grund.
  • Zeit zu gehen: eine Ankunft an einer verfolgten Haltestelle ist die gewählte Zahl Minuten entfernt (1 bis 20). Einmal pro Ankunft und Schwelle. Filter: Haltestelle, Linie (wie TfL sie schreibt: Victoria, 73), Schwelle. Variablen: Haltestelle, Linie, Ziel, Bahnsteig, Minuten, erwartete Zeit.

Beim ersten Lesen nach einem Start wird nichts ausgelöst: was schon da war, ist keine Neuigkeit.

Szenen-Aktionen​

  • Nächste Ankünfte abrufen: für eine Haltestelle (und optional eine Linie) die Minuten bis zur nächsten und übernächsten Ankunft, Linie, Ziel, Bahnsteig, erwartete Zeit, ob eine Linie gestört ist (1 oder 0) und ein Satz: „Victoria nach Brixton ab Oxford Circus: in 3 und 7 Min.“
  • Linienstatus abrufen: Status, Stufe (0 bis 3), ihr Name, gestört (1 oder 0), der Grund und ein Satz: „Victoria: Leichte Verspätungen. Minor delays due to train cancellations.“

Szenen-Beispiele​

  • Morgens zur Arbeit: werktags um 7:30 Linienstatus abrufen für die Northern line, dann Nur fortfahren, wenn disrupted = 1, dann den Satz per Telegram senden.
  • Jetzt los: Auslöser Zeit zu gehen an deiner Bushaltestelle, Schwelle 5 Minuten, dann eine Lampe blinken lassen und „Dein Bus kommt in 5 Minuten“ auf einem Lautsprecher sagen.
  • Wieder normal: Auslöser Linienstatus geändert auf der Elizabeth line mit dem Ereignis „Wieder normaler Betrieb“, dann eine Nachricht senden.

Daten, Aktualisierung und Kontingente​

Jede Minute (oder alle zwei) liest die Integration nur für die angelegten Geräte: eine Statusanfrage für alle betroffenen Linien (verfolgte Linien und Linien der verfolgten Haltestellen), dann eine Ankunftsanfrage pro Haltepunkt (eine Station ist ein Haltepunkt, ein Hub bis zu vier). TfL sagt Ankünfte etwa 30 Minuten im Voraus vorher. Bis zu 20 Linien und 10 Haltestellen.

TfL verlangt eine Quellenangabe („Powered by TfL Open Data“) und begrenzt die Anfragen pro Schlüssel; die anonyme Nutzung ist stärker begrenzt. Bei vielen Haltestellen füge einen kostenlosen Schlüssel hinzu. Siehe die TfL-Bedingungen für Verkehrsdaten.

Fehlerbehebung​

  • „TfL ist nicht erreichbar (…HTTP 429 (quota))“: zu viele Anfragen im anonymen Kontingent. Füge einen kostenlosen Schlüssel hinzu oder wähle ein Intervall von 2 Minuten.
  • „(app_key refused)“: der Schlüssel ist falsch oder im TfL-Portal für kein Produkt abonniert. Korrigiere ihn oder leere das Feld.
  • Keine Ankunft: außerhalb der Betriebszeiten oder eine reine National-Rail-Station. Prüfe die Haltestelle mit Haltestelle suchen und ihrer Kennung.
  • Der Countdown bleibt bei 1440: TfL kündigt gerade keine Ankunft an.
  • Mehr Details: setze LOG_LEVEL=debug für den Container.

Grenzen​

  • Außerhalb Londons mit der echten TfL-API entwickelt, ohne tägliche Nutzung vor Ort: Rückmeldungen sind willkommen.
  • Die Funktionsnamen werden beim Anlegen des Geräts festgelegt.
  • Keine Verspätung und kein Ausfall pro Zug: TfL veröffentlicht nur erwartete Zeiten.
  • Die Gründe der Störungen sind Englisch, wie TfL sie veröffentlicht.
  • National-Rail-Züge an gemeinsamen Stationen werden nicht abgedeckt.

Danksagung​

Powered by TfL Open Data. Contains OS data © Crown copyright and database rights. Inspiriert von der Home-Assistant-Integration „London Underground“ (Apache 2.0) und von den Integrationen Entur und TTC für Gladys.

Konfigurationseinstellungen​

Diese Einstellungen fragt Transport for London in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
So funktioniert essectionNeinVerfolge Linien und Haltestellen mit den Aktionen unten und lege dann ihre Geräte im Tab „Entdecken“ an. Alles stammt aus den Open Data von TfL: kein Konto nötig, der Schlüssel ist optional.
Sprache der TexteselectNeinSprache der Funktionsnamen, der Status und der Sätze für deine Szenen. Die Gründe der Störungen bleiben Englisch, wie TfL sie schreibt. Die Namen werden beim Anlegen des Geräts festgelegt.
AktualisierungsintervallselectNeinWie oft TfL für deine angelegten Geräte gelesen wird: eine Statusanfrage plus eine pro Haltepunkt.
TfL-App-Schlüssel (optional)secretNeinKostenlos im TfL-API-Portal: Er hebt das Kontingent auf 500 Anfragen pro Minute. Ohne ihn läuft die Integration mit dem anonymen Kontingent.

So installierst du Transport for London in Gladys​

  1. Öffne in Gladys Integrationen: Transport for London erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/guim31/gladys-tfl:1.0.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-tfl.

Transport for London benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

Transport for London ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂