NEWS
DB Zugverbindungen abfragen
-
Hallo zusammen,
da bei uns in der Familie auch jemand mit der Bahn fährt, habe ich mal etwas gebastelt um die nächste Verbindung (ab aktueller Uhrzeit) und die Verspätung anzuzeigen. Das ganze sieht dann so aus:
Wie habe ich das gemacht?
Man kann die DB Reiseauskunft live abfragen und die Bahnhöfe als Parameter übergeben. Eine Abfrage der nächsten Zugverbindung von Lindau nach München würde z.B. so aussehen:````
http://mobile.bahn.de/bin/query.exe/dox?S=Lindau&Z=Muenchen&timeSel=depart&start=1Jetzt installiert man sich den Adapter "Parser", stellt das Poll-Intervall auf 30.000 (5min) und erstellt 2 neue Regeln. In jede Regel trägt man die URL's für die Live Abfrage ein und nun benötigt man noch die passende RegEx Syntax um die Abfahrtszeit und die Verspätung aus der Webseite zu extrahieren. RegEx für Abfahrtszeit:```` ((?:(?:[0-1][0-9])|(?:[2][0-3])|(?:[0-9])):(?:[0-5][0-9])(?::[0-5][0-9])?(?:\\s?(?:am|AM|pm|PM))?)
RegEx für Verspätung:````
(>+[0-9]?[0-9])Das war's auch schon… Vielleicht hat ja der eine oder andere Verwendung dafür. Grüße... Spaceduck
-
Das ist ziemlich cool. Bitte entschuldige meine Anfängerfrage, aber was ist ein RegEx Syntax und wo stelle ich den ein?
Grüße Andreas
-
Installiere Dir mal den Parser Adapter, öffne die config für das Teil und du wirst erleuchtet… :idea:
-
Ihr habts schön einfach
Wenn ich so eine Anfrage bei den Schweizer Bahnen stelle, bekomme 2 Seiten A4 json zurück - grmmmpff :mrgreen: :mrgreen:
-
Bitte entschuldige meine Anfängerfrage, aber was ist ein RegEx Syntax `
weitere Infos findet man auch hier:und hier:
https://wiki.selfhtml.org/wiki/JavaScri … kte/RegExp
Gruß
Rainer
-
Kleines Update…. Es gab eine Änderung bei der DB und die oben gezeigte URL funktioniert so nicht mehr.
Damit es wieder funktioniert müsst Ihr folgende neue URL verwenden:
http://reiseauskunft.bahn.de/bin/query.exe/dox?S=Lindau&Z=Muenchen&timeSel=depart&start=1
MfG Jan
-
Hi,
versuche gerade auch die Bahn Daten auszulesen.
Hat jemand einen Tipp wie ich bei dem Thema Abfahrtszeit nicht nur den ersten sondern alle 3 Ergebnisse zurückgeliefert bekommen ?
Gruß
Michael
-
Hat jemand einen Tipp wie ich bei dem Thema Abfahrtszeit nicht nur den ersten sondern alle 3 Ergebnisse zurückgeliefert bekommen ? `
Mit der richtigen Parser-Version (1.0.0) und einer leicht geänderten RegExp geht das:Verbindungen:
verbindung\.abfahrt.*?([0-9]?[0-9]:[0-9][0-9])
Hier im Parser einfach die Abfahrten im Feld NUM hochzählen (0, 1, 2)
Verspätungen:
\>(\+[0-9]?[0-9])
Hier im Parser die Werte um 2 hochzählen (0, 2, 4)
Im Screenshot ein Beispiel mit 2 Zeiten.
Und falls es interessant sein sollte, mit dem Parameter &journeyOptions=1 an der URL werden nur Direktverbindungen ausgegeben.
3637_parser.jpg -
-
danke für eure Antworten..
@ Magda: Leider steht bei mir die Version 1.0 noch nicht zur Verfügung. Ich glaube ich muss sie mal manuell von github installieren.
@ dna909: nutzt du die api schon ? hast du ein script im einsatz ?
Gruß
Michael
-
Hallo Michael,
> @ dna909: nutzt du die api schon ? hast du ein script im einsatz ?
hab mich da zwar registriert, aber als notorischer Bahnhasser :lol: , hab ich da jetzt keinen akuten Handlungsbedarf.
Die API ist eine feine Sache, aber auch recht komplex, daraus was vernünftiges zurechtzuschustern.
Wenn ich mal viel Zeit habe, kann ich ja mal probieren, dafür ein Script zu schreiben…
dna909
-
danke für eure Antworten..
@ Magda: Leider steht bei mir die Version 1.0 noch nicht zur Verfügung. Ich glaube ich muss sie mal manuell von github installieren.
@ dna909: nutzt du die api schon ? hast du ein script im einsatz ?
Gruß
Michael `
Hab mir die API auch mal angeschaut und die ganz schön schwer zu verdauen. Haufenweise Querverweise, keine direkt verknüpften Informationen.
Den Parser auf 1.0 zu bekommen war am Ende recht einfach. In der Adapterliste oben auf "Install from costum URL" (Katzenkopf) und dann auf dem Tab github einfach den Parser auswählen aus der Liste.
-
Ich würde das gerne in den Parser eintragen, die aktuelle Version scheint aber etwas anders auszusehen als hier in dem Thread angegeben ist. Kann mir jemand sage was ich wo eintragen muss.
Update: OK inzwischen läuft es grundsätzlich, aber die zweite Verbindung kann ich nicht abfragen. Die Spalte NUM erscheint bei mir im Parser nicht. Weiterhin hätte ich gerne nicht nur die Abfahrtsverspätung, sondern auch die Ankunftsverspätung. Wie sieht da ein RegEx aus?
Danke
-
Hallo zusammen, seit ein paar Tagen werden mir in Vis immer die gleichen Verspätungen angezeigt. Auch wenn ich den Adapter neu lade, ändert sich nichts.
In der DB App werden nun keine Minuten mehr angezeigt, sondern die aktualisierte Uhrzeit, wann der Zug tatsächlich abfahren soll. Scheinbar hat die DB da etwas umgestellt.
Jemand die gleichen Erfahrungen gemacht? Kann des bei der Abfrage im Parser umgebaut bzw angepasst werden?
Gruss Stoni
-
die Bahn hat da was geändert.
Bisher wurden immer Verspätungen von der geparsten Webseite geliefert (z. B. +3)
jetzt liefern Sie Zeiten (z.b. planmäßige Abfahrt 17:00 - tatsächlich 17:03)
Von daher funktioniert das nicht mehr wie gewohnt.
Ich habe das gleiche Problem mit meinem Adapter. Aber ich bin noch nicht dazu gekommen mir das genauer anzusehen.
-
Ich habe das gleiche Problem mit meinem Adapter. Aber ich bin noch nicht dazu gekommen mir das genauer anzusehen. `
Hast Du Dir das mal angesehen? Meinst Du, Du kriegst das hin?
Gruß Stoni
-
Hallo,
ich bin gerade dabei die DB Abfrage bei mir zu integrieren.
Kurze Frage:
Kann ich in einer Abfrage: Abfahrt, Ankunft und/oder Dauer abfragen.
Es wäre kein Problem, falls ich das Ergebnis dann nochmal weiter splitten müsste.
Hab aber jetzt schon 10 Verbindungen angelegt (die meine Freundin und ich regelmäßig im Nahverkehr nutzen). Die Anzahl möchte ich ungern verdoppeln bzw. verdreichfachen
Danke und Gruß
Houns
-
Hallo,
ich bin auch gerade dabei das auszuprobieren. Ich habe im Moment zwei Abfragen, die die nächste und übernächste Verbindung darstellen sollen:
Für die nächste Verbindung klappt das auch immer. Bei der Abfrage für die übernächste Verbindung bekomme ich bei jeder zweiten Abfrage den von mir definierten Fehlerwert "Fehler" angezeigt:
Hat hier jemand eine Idee?
Edit: in den debug Meldungen steht dann immer: "Cannot find number in answer for Parser….". Aber immer nur für die übernächste Bahn.
Auch wenn ich eine andere Verbindung/Strecke auswähle kommt dieser Fehler. Auch jeweils nur für die übernächste Verbindung.....
Danke und Grüße,
Balu
-
Hallo,
ich bin gerade dabei die DB Abfrage bei mir zu integrieren.
Kurze Frage:
Kann ich in einer Abfrage: Abfahrt, Ankunft und/oder Dauer abfragen.
Es wäre kein Problem, falls ich das Ergebnis dann nochmal weiter splitten müsste.
Hab aber jetzt schon 10 Verbindungen angelegt (die meine Freundin und ich regelmäßig im Nahverkehr nutzen). Die Anzahl möchte ich ungern verdoppeln bzw. verdreichfachen
Danke und Gruß
Houns `
Hallo Houns,
schau Dir mal das Ergebniss der Abfrage in einem Browser an. Dort sind alle von Dir gewünschten Informationen enthalten. Beispiel:
http://mobile.bahn.de/bin/query.exe/dox?S=Lindau&Z=Muenchen&timeSel=depart&start=1 ````ergibt ![1446_abfrage.png](/assets/uploads/files/1446_abfrage.png) Mann muss dann "nur" noch mit RegExp die richtigen Zahlen dort rausfischen. Da habe ich aber leider auch keine Ahnung von und bin froh, dass ich nur die Abfahrtszeiten brauche, die hier schon vorgestellt wurden ;-) Grüße, Balu
-
Huhuuuu,
hat es jetzt jemand geschafft, die Verspätungszeiten der Bahn per RegEx rauszuarbeiten?