Du bist hier:Start»Javascript»Greasemonkey»Bahnlinien

Achte auf deine Linie

03.11.2019

Bahn

ACHTUNG !!! DIESE SEITE BEFINDET SICH NOCH IM AUFBAU.

Der Verkehrsverbund Berlin-Brandenburg bietet eine Livekarte mit aktuellen Daten von Bahn und Bus mit Verspätungsminuten. Leider gibt es in dieser Karte keinen Filter für einzelne Bahnlinien. Deshalb habe ich mit der Firefox-Erweiterung Greasemonkey einen Filter für bestimmte Bahnlinien programmiert.

VBB Livekarte

Du kannst das Greasemonkey-Skript für die VBB Livekarte über diesen Link installieren, nachdem du die Firefox-Erweiterung Greasemonkey installiert hast.

Anschließend kannst du das Skript auf der Livekarte des Verkehrsverbunds Berlin-Brandenburg ausprobieren. Die Seite habe ich mit Greasemonkey Version 4.9 und Firefox Version 70 unter Linux und unter Firefox für Android auf einem Samsung Galaxy S5 getestet.

Unter Firefox für Android lädt das Greasemonkey Skript sehr langsam und funktioniert eventuell erst bei wiederholtem Laden der Seite. Deshalb habe ich einen Workaround eingebaut, der über:
diese Seite in Firefox für Android die VBB Livekarte erst lädt, sobald das Greasemonkey Skript bereit ist.

Du kannst die Seite zum Laden des Skripts für Android über diesen Link herunterladen. Um eine Verknüpfung auf dem Android "Desktop" zu erstellen, musst du Greasemonkey vorübergehend deaktivieren, dann die heruntergeladene Seite "Download/loadvbb.html" in Firefox öffnen, im Menü rechts oben "Seite" und "Seitenverknüpfung hinzufügen" auswählen. Anschließend kannst du Greasemonkey wieder einschalten und die Seite vom Android Desktop aus laden.

Erläuterungen zur veränderten VBB Livekarte

Das Greasemonkey-Skript filtert zunächst die Straßenbahnlinie M4 Richtung Stadtmitte und stellt die einzelnen Straßenbahnen entlang der Route mit Verspätungsminuten dar. Mit der Auswahl "Zeit Alexanderplatz" werden die voraussichtlichen Ankunftszeiten der Tram M4 am Alexanderplatz Berlin angezeigt. Da ich die Abfrage der Zeiten nicht jede Sekunde durchführe, kann es bis zu 30 Sekunden dauern, bis die prognostizierten Ankunftszeiten neben den Straßenbahnen angezeigt werden.

Tram M4 Richtung Mitte

Tram M4 Richtung Mitte mit Verspätungsminuten

Bei den Verspätungsminuten bedeutet die grüne Schriftfarbe, dass die Bahn innerhalb der Toleranz von 2 Minuten zu spät oder 2 Minuten zu früh liegt. Verspätungsminuten darüber hinaus werden rot dargestellt. Die schwarze Schrift und das Minus ("-") bedeuten, dass keine Daten über Verspätungsminuten vorliegen. Hier wird die Ankunftszeit laut Fahrplan angenommen.

Über das Drop-Down-Menü am oberen Rand der Webseite kann die Anzeigerichtung der Straßenbahnlinie geändert werden - zum Beispiel Tram M4 Richtung Norden. Nach dem Umschalten der Auswahl kann es wieder bis zu 30 Sekunden dauern bis die Züge neu gezeichnet werden. Werden alle Fahrtrichtungen angezeigt, dann zeigen die Farben der Rechtecke die verschiedenen Fahrtrichtungen an - wie das folgende Bild zeigt.

Tram M4 alle Richtungen mit Farbe

Tram M4 alle Richtungen mit Farbe

Bahnen Richtung Stadtmitte werden grün dargestellt. Die entgegengesetzte Richtung wird lila (Richtung Falkenberg) oder rosa (Richtung Zingster Straße) dargestellt. Die blau markierten Bahnen sind Sonderfahrten - zum Beispiel zum Betriebshof Lichtenberg nach der Hauptverkehrszeit oder zum Betriebshof in der Nähe der Berliner Allee um Mitternacht. Einige wenige "Sonderfahrten" fahren eine Schleife bei der Sulzfelder Straße zur morgendlichen Hauptverkehrszeit um 8:39 Uhr, 8:49 Uhr und 8:59 Uhr. Dann ist die M4 so leer, dass mit Sicherheit ein Sitzplatz frei ist.

Da ich außer der Tram M4 auch noch die U-Bahnlinie 2 für meinen Fahrtweg benutze, ist für mich zum einen die Verkehrssituation in der Hauptverkehrszeit und zum anderen die Umsteigezeit am Alexanderplatz interessant. Deshalb kann das Skript auch beide Bahnlinien gleichzeitig mit den Ankunftszeiten am Alexanderplatz anzeigen (Tram M4 + U2 Richtung Mitte).

Tram M4 und U-Bahn U2 Richtung Stadtmitte auf einem Smartphone-Bildschirm

Tram M4 und U-Bahn U2 Richtung Stadtmitte auf einem Smartphone-Bildschirm

Wenn ich in dem Beispiel in der Straßenbahn mit voraussichtlicher Ankunftszeit am Alexanderplatz 09:47 Uhr sitzen würde, dann wäre die nächste U2, in die ich umsteigen könnte, die Bahn um 09:53 Uhr. Beim Umsteigen kann ich mir folglich Zeit lassen. Da die U2 Verspätung hat, könnte es sein, dass sie relativ voll ist. Auf der Anzeige sehe ich, dass die nachfolgende Bahn 09:55 Uhr kommt - im Zweifelsfall kann ich auch diese Bahn zwei Minuten später nehmen. Auf der Rückfahrt funktioniert das Spiel ähnlich.

Tram M4 und U-Bahn U2 Richtung Norden

Tram M4 und U-Bahn U2 Richtung Norden

Wenn ich in diesem Beispiel in der U-Bahnlinie 2 mit voraussichtlicher Ankunftszeit am Alexanderplatz 09:38 Uhr sitzen würde, dann wäre die nächste Tram M4, in die ich umsteigen könnte, die Bahn um 09:40 Uhr. Beim Umsteigen müßte ich mich also ein wenig beeilen. Außerdem ist für mich auf dem Weg nach Hause die allgemeine Verkehrslage der U2 mit Verspätungsminuten interessant. Im Zweifelsfall bleibe ich noch eine halbe Stunde länger im Büro bis sich die Verkehrssituation entspannt hat.

Andere Bahnlinien

Das Greasemonkey-Skript habe ich für die Bahnlinien geschrieben, die ich häufig benutze. Du kannst das Skript für deine Bahnlinien anpassen. Im Quelltext des User-Skripts kannst du nach "Tram M4" und "Hackescher Markt" suchen und diese Stellen im Quellcode entsprechend verändern.

Technische Details zum VBB Skript

Das Greasemonkey-Skript deaktiviert zunächst alle Skripte der VBB Livekarte und ersetzt die Skripte durch von mir veränderten Javascript Code. In diesem veränderten Skript-Text habe ich die Filter für die Bahnlinien eingebaut. Wenn du deine eigene Bus- oder Bahnlinie filtern möchtest, dann kannst du das User-Skript auch in Firefox bearbeiten. Da Firefox die Reihenfolge der hinzugefügten Skripte nicht garantiert, mußte ich die einzelnen Skripte der VBB-Seite in einen großen Javascript-Text in der richtigen Reihenfolge zusammenfügen. Dadurch ist das User-Skript 2 MB groß geworden. Unter Firefox für Android (Fennec) funktioniert das Debuggen mit "console.log" leider nicht. Eine Alternative ist das Debuggen in den lokalen Speicher von Firefox - zum Beispiel:

# debug to local storage
localStorage["myApplog"] += "debug output\n"

Anschließend kann die Datenbank webappsstore.sqlite im Profilordner von Firefox nach den Debug-Daten abgefragt werden. Hier zum Beispiel unter Android:

# on Android
sqlite3 /data/data/org.mozilla.fennec_fdroid/files/mozilla/*.default/webappsstore.sqlite "select value from webappsstore2 where key like 'myApplog'"

Haltestelleninfo mit DAISY Anzeiger

TODO. Die Haltestelleninfo der BVG zeigt leider nicht die Verspätungsminuten an. Bei den verlinkten Routendetails der einzelnen Linie stehen auch nur die Verspätungsminuten, wenn eine Bahn zu spät ist. Die Information, ob eine Bahn zu früh an der Haltestelle ankommt, steht nicht in den Routendetails der Haltestelleninfo der BVG.

Besser sieht es bei der Haltestelleninfo des VBB aus. Hier stehen die Verspätungsminuten sowohl bei verspäteter als auch bei verfrühter Abfahrt.

Mit diesem Greasemonkey Skript kann ein DAISY-Anzeiger online dargestellt werden.

Letzte Prüfung des Skripts: November 2019.