Bahn API Chaos?
Ein Einblick in die Daten von https://bahn.expert
@marudor@chaos.social
Warum weißt du den Kram eigentlich?
- Fahre viel Bahn
- Entwicklung bahn.expert
- mindestens seit 31 Aug 2015
- monatlich
~8500 ~140000 ~240000~360000 User
Was für Daten aggregierst du?
(damals)
- Haltestellendaten
- Abfahrts und Ankunfts Echtzeitdaten
- Wagenreihung
- Auslastungsprognose
- Routen
Was für Daten aggregierst du?
- Haltestellendaten (2x)
- Abfahrt und Ankunft je Haltestelle (2x)
- Echtzeitdaten von Fahrten (2x)
- Wagenreihung (4x)
- Planwagenreihung
- Planzugläufe
- Auslastungsprognose
- Routen
Die Bahn hat doch ein neues Open API Portal?
Ja, aber...
Upstream API Request count (Pro Woche)
Haltestellen | 457.069 |
Abfahrt/Ankunft | 6.589.835 |
Fahrten | 6.990.051 |
Wagenreihung | 1.192.796 |
Routing | 254.081 |
Haltestellendaten
- Haltestellendaten (CSV)
- Stationsdaten (CSV)
- StaDa - Stationsdaten
- OpenDB
- Hafas (ajax-getstop/mgate)
- Timetable (noncd/OpenDB)
- Favendo
Haltestellendaten (damals)
Haltestellendaten (CSV)Stationsdaten (CSV)StaDa - StationsdatenOpenDB- Hafas (ajax-getstop/mgate)
- Timetable (noncd/OpenDB)
Favendo
- RIS::Stations
- HAFAS (DB Navigator)
- Timetables (IRIS-TTS)
Haltestellendaten
- Kennt ÖPNV & Schiene
- Kennt alles wo Deutschland involviert ist
- Sortiert Ergebnisse passend
RIS::Stations
Bahnhofsgruppierung
München
RIS::Stations
Umstiegsgruppierung
Dortmund Uni
RIS::Stations
HAFAS (mgate)
Nur Fallback falls RIS::Stations down
Timetables
Nur nötig um RIS::Stations auf Ergebnisse zu filtern die diese Quelle kennt
Abfahrtsdaten
Timetables (IRIS-TTS)
- bekannte gute Daten
- komisches XML
- fast nur Heavy Metal
- Manchmal down :(
- Gibt einen Fallback
- Leider auch manchmal down
- iris.noncd.db.de/iris-tts/timetable/station/Karlsruhe
- iris.noncd-test.db.de/iris-tts/timetable/station/Karlsruhe
HAFAS (Regionale Abfahrten, ÖPNV)
- Gleiche Daten wie DB Navigator.
- Etwas ungenau
- "Unwichtiges" wird nicht angezeigt
- Kann Verkehrsmittel filtern
Gibts auch als OpenDB Variante (Fahrplan)
RIS::Boards
- Datenqualität wie RIS-Info
- kein XML!
- Kann alle Verkehrsarten
- Kennt Ist-Zeiten
RIS::Boards
Timetables vs RIS::Boards
Timetables vs RIS::Boards
Journeydaten
RIS::Journeys
- Datenqualität wie RIS-Info
- Kennt Ist-Zeiten
- Leider nur ~20h in die Zukunft
RIS::Journeys
HAFAS
RIS::Journeys
RIS::Journeys
HAFAS
RIS::Journeys
RIS::Journeys
RIS::Journeys
Wagenreihung
Wagenreihung (DB Navigator)
www.apps-bahn.de/wr/wagenreihung/1.0/22/202305102145
-
Zugnummer
- Planabfahrtszeit an der gewünschten Haltestelle
Wagenreihung (Nummer 2)
ist-wr.noncd.db.de/wagenreihung/1.0/22/202305102145
-
<Zugnummer>
- Planabfahrtszeit an der gewünschten Haltestelle
Wagenreihung
Gibt es Unterschiede?
- Im Response - nein
- In der Verfügbarkeit von Zügen - ja
- Zusammen immer noch nicht alles abgedeckt
Wagenreihung (DB Navigator, neu)
www.apps-bahn.de/wgr/wr/81/20230510/ICE/22/8000105/202305102145
- Administration (Betreiber)
- Datum der initialen Abfahrt
- Kategorie
- Zugnummer
- Evanummer der Haltestelle
- Planabfahrtszeit an der gewünschten Haltestelle
www.apps-bahn.de/wgr/wr/80/20230510/ICE/22/8000105/202305102145
Wagenreihung Nummer drei
www.apps-bahn.de/wgr/wr/80/20230512/IC/2205/8007768/202305121351
www.apps-bahn.de/wgr/wr/NZ/20230512/RE/52205/8007768/202305121351
www.apps-bahn.de/wgr/wr/NZ/20230512/RE/52205/8007768/202305121351
Wagenreihung Unterschiede?
Vorher
Nachher
Wagenreihung
All das nur für das was es vorher schon gab?
Wagenreihung
Das waren aber nur 2?
Das ist GraphQL kram und SEHR SBB spezifisch. Die machen was völlig anderes
Wagenreihung
Das waren aber nur 3?
live.oebb.at/backend/info?trainNr=369&station=8503000&date=2023-07-13
Quirks der Wagenreihung
ICEs von / nach Frankreich
Vorher
Nachher
Baureihen spezifika
BR 4110/4010 (IC2 KISS)
Vorher
Nachher
Baureihen spezifika
BR 401 (modernisiert / kurz)
Vorher
Nachher
Planwagenreihung
Planwagenreihung
- Nur Fernverkehr
- Baureihenerkennung ungenau
- Umläufe
- Sondersitz Nummern
- Linieninfos
Planwagenreihung
Planwagenreihung
BR 408 12.07.2023 (Auszug)
Es wird besser
Fazit
langsam
und nicht open
Fragen?
Bahn API Chaos? - hackover2023
By marudor
Bahn API Chaos? - hackover2023
- 84