FHEM Forum

FHEM => Sonstiges => Thema gestartet von: MegaData am 05 August 2014, 11:38:31

Titel: Idee: Abfahrtmonitor
Beitrag von: MegaData am 05 August 2014, 11:38:31
Hallo Gemeinde,

ich glaube meine Idee ist nicht ganz neu, ich möchte mir frühmorgens gern die Bahnen auf dem Display anzeigen lassen, die in den kommenden Minuten bei mir zu Hause abfahren. Unter der URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&hst=%22+Albertplatz+%22&vz=1&lim=8 (http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&hst=%22+Albertplatz+%22&vz=1&lim=8) kann man direkt unter Angabe der Vorlaufzeit, Haltestelle und Anzahl der Ergebnisse aufrufen und bekommt einen String in folgender Art zurück:

[["8","Hellerau","0"],["8","Hellerau","1"],["3","Coschütz","1"],["3","Wilder Mann","2"],["8","Südvorstadt","5"],["7","Pennrich","5"],["8","Südvorstadt","6"],["7","Weixdorf","6"]]

Das wird also die Nummer der Bahn, die Richtung und die Abfahrtzeit in Minuten. Das kann man ja jetzt relätiv ähnlich wie beim Benzinpreismonitor einlesen, jedoch verzweifle ich an den regulären Ausdrücken. Könnte mir da jemand unter die Arme greifen ? Mit der Variante könnte man dann den gesamten VVO abfragen, also fast alles was so durch Sachsen tingelt.

Danke :)
Titel: Antw:Idee: Abfahrtmonitor
Beitrag von: rudolfkoenig am 05 August 2014, 15:27:18
Folgendes RegExp
\[\["(\d+)","([^"]*)","(\d+)"\],
kopiert 8 nach $1, Hellerau nach $2, und 0 nach $3.
Man kann das Regexp verlaengern, um die anderen Werte nach $4 usw zu kopieren.
Wie man mit dieser Methode eine Variable Anzahl von Elementen erwischt, ist mir nicht bekannt.

Eleganter, aber vmtl. nicht HTTPMOD kompatibel ist das e (execute) modifier, z.Bsp:

my $input = '[["8","Hellerau","0"],["8","Hellerau","1"]...';
my @fld;
$input =~ s/\["(\d+)","([^"]*)","(\d+)"\]/push(@fld,"$1,$2,$3")/ge;
print join("\n", @fld),"\n";
Titel: Antw:Idee: Abfahrtmonitor
Beitrag von: betateilchen am 05 August 2014, 16:07:02


my $text = '[["8","Hellerau","0"],["8","Hellerau","1"],["3","Coschütz","1"],["3","Wilder Mann","2"],["8","Südvorstadt","5"],["7","Pennrich","5"],["8","Südvorstadt","6"],["7","Weixdorf","6"]]';

$text =~ s/\],\[/\n/g;
$text =~ s/[\[\]"]//g;

use Data::Dumper;
$Data::Dumper::Useqq=1;
print Data::Dumper->Dump([[split /^/, $text]], ["*text"]);



liefert:



@text = (
          "8,Hellerau,0\n",
          "8,Hellerau,1\n",
          "3,Cosch\374tz,1\n",
          "3,Wilder Mann,2\n",
          "8,S\374dvorstadt,5\n",
          "7,Pennrich,5\n",
          "8,S\374dvorstadt,6\n",
          "7,Weixdorf,6"
        );



und dann mach ich mit foreach weiter :)
Titel: Antw:Idee: Abfahrtmonitor
Beitrag von: MegaData am 05 August 2014, 21:50:10
Soooo... ist zwar mit Sicherheit nicht die eleganteste Lösung... aber es läuft ;-) In der Stunde die ich jetzt in der Woche frühmorgens auf bin, zeigt er mir die Abfahrtzeiten an... Ich bin begeistert  ;D
Titel: Antw:Idee: Abfahrtmonitor
Beitrag von: bsl02 am 06 August 2014, 00:04:17
Hallo,

ähnliches wurde bereits genannt
http://forum.fhem.de/index.php/topic,10862.0.html (http://forum.fhem.de/index.php/topic,10862.0.html)

allerdings konnte ich das bisher nur sehr rudimentär umsetzen.

An Deiner Lösung wäre ich daher interessiert ;-)

Gruß, Stefan
Titel: Antw:Idee: Abfahrtmonitor
Beitrag von: cutter am 07 August 2014, 21:55:34
Hallo

Ich wäre auch an deiner Lösung interessiert. Wäre nett wenn du sie hier zur Verfügung stellst.
Was ist wenn der Zug Verspätung hat, wird dann die korrekte Ankunftszeit angegeben ?

Gruß Achim 
Titel: Antw:Idee: Abfahrtmonitor
Beitrag von: MegaData am 07 August 2014, 22:36:51
Hi !

Naja, die Lösung steht ja eigentlich schon da...  ;) Ich habe über HTTPMOD den unten stehenden Link eingelesen und die Attribute wie im Bild gesetzt. Danach kann man die Variablen wie im RSS-Workshop beschrieben einfach einlesen und formatiert anzeigen lassen. Den Link lasse ich minütlich aktualisieren, das vom RSS erzeugte Bild auch, somit wird die Bahn immer aktuell angezeigt. Im Endeffekt ist man natürlich darauf angewiesen was die DVB an Daten bereit stellt - und das ist leider nicht immer so aktuell das die Verspätung mit drin steht.

Ich hoffe das hat erst einmal geholfen ?

Titel: Antw:Idee: Abfahrtmonitor
Beitrag von: bsl02 am 17 August 2014, 20:03:14
Hallo,

die Umsetzung scheint doch recht "komplex", habe ich hier zunächst verschoben.

Zur Info: Bahnhofs-Abfahrtstafeln nebst Verspätungen lassen sich zumindest für meinen Bahnhof (DB & NordWestBahn) erzeugen unter diesem Link:
http://www.oepnv-info.de/?seitenID=36#bfabfrage_auswahl (http://www.oepnv-info.de/?seitenID=36#bfabfrage_auswahl)

für Mobilgeräte:
http://www.mobilitaetsportal.info/mobil.php?page=5 (http://www.mobilitaetsportal.info/mobil.php?page=5)

Gruß, Stefan