98_DBPlan.pm: Fahrplaninformation der DB

Begonnen von JoWiemann, 08 April 2015, 18:57:14

Vorheriges Thema - Nächstes Thema

JoWiemann

Hallo,

anbei eine Testversion mit korrigierten Umlauten und dem neuen Reading: travel_vehicle_nr_(1..3). In diesem Reading wird die Zug, Bahn, usw. Bezeichnung angezeigt.

Grüße Jörg

Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

EnderPhilipp

Ui, das ging ja schnell... :o

Habe die Version eingefügt, die Umlaute stimmen jetzt, nur das Reading travel_vehicle_nr erscheint bei mir nicht, auch nicht nach einem Reread.

Danke  ;D
¡¡¡ANFÄNGERALARM!!!
Raspberry Pi 3 (Hauptsystem)
Raspberry Pi B+ (Kellersonde)
Homematic,Philips Hue, LD382, nanoCul 433/868mhz, MPD, Intertechno, FIRMATA, EspEasy, SSCAM, STV, HDMI-CEC, EchoDot

JoWiemann

Zitat von: EnderPhilipp am 05 Januar 2017, 23:00:49
Ui, das ging ja schnell... :o

Habe die Version eingefügt, die Umlaute stimmen jetzt, nur das Reading travel_vehicle_nr erscheint bei mir nicht, auch nicht nach einem Reread.

Danke  ;D

War noch ein Fehler in der RegEx. Bitte angehängte Version einmal testen.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

robertPI

Hallo Jörg,

vielen Dank für das schnelle update! Im travel_note wird noch sehr viel Formatierung und weitere Infos dargestellt. Fehlt mir da vielleicht ein perl Modul?


travel_note_text_3

<pre>digitalData.verbindung = new Array(); var verbindung = new Object(); if(typeof(tmpDiv) == "undefined") tmpDiv = document.createElement("div"); verbindung.start = new Object(); tmpDiv.innerHTML = "München-Mittersendling"; verbindung.start.name = tmpDiv.innerHTML; verbindung.start.eBhf = "8004154"; verbindung.start.typ = "Haltestelle"; verbindung.start.land = "AUT"; verbindung.ziel = new Object(); tmpDiv.innerHTML = "Höllriegelskreuth"; verbindung.ziel.name = tmpDiv.innerHTML; verbindung.ziel.eBhf = "8002899"; verbindung.ziel.typ = "Haltestelle"; verbindung.ziel.land = "AUT"; verbindung.reiseabschnitt = new Array(); var reiseabschnitt = new Object(); reiseabschnitt.start = new Object(); tmpDiv.innerHTML = "München-Mittersendling"; reiseabschnitt.start.name = tmpDiv.innerHTML; reiseabschnitt.start.eBhf = "8004154"; reiseabschnitt.start.typ = "Haltestelle"; reiseabschnitt.start.land = "AUT"; reiseabschnitt.ziel = new Object(); tmpDiv.innerHTML = "Höllriegelskreuth"; reiseabschnitt.ziel.name = tmpDiv.innerHTML; reiseabschnitt.ziel.eBhf = "8002899"; reiseabschnitt.ziel.typ = "Haltestelle"; reiseabschnitt.ziel.land = "AUT"; reiseabschnitt.produktklassen = new Object(); reiseabschnitt.produktklassen.ICE = 0; reiseabschnitt.produktklassen.IC_EC = 0; reiseabschnitt.produktklassen.IR = 0; reiseabschnitt.produktklassen.RE_RB = 0; reiseabschnitt.produktklassen.S = 0; reiseabschnitt.produktklassen.Bus = 0; reiseabschnitt.produktklassen.Schiff = 0; reiseabschnitt.produktklassen.U = 0; reiseabschnitt.produktklassen.Tram = 0; reiseabschnitt.produktklassen.AST = 0; reiseabschnitt.produktklassen.S = 1; reiseabschnitt.aufenthaltszeit = ""; reiseabschnitt.abfahrt = "2017-01-06T10:44"; reiseabschnitt.ankunft = "2017-01-06T10:54"; reiseabschnitt.verkehrsmittelnummer = "S 7".match(/\d+/)[0]; verbindung.reiseabschnitt.push(reiseabschnitt); verbindung.umstiege = 0; verbindung.abfahrt = "2017-01-06T10:44"; verbindung.ankunft = "2017-01-06T10:54"; verbindung.reisedauer = "0:10"; verbindung.richtung = "H"; verbindung.typ = "plan"; verbindung.info = "keine"; Signalstörung: Auf der Strecke München Ost - Kreuzstraße zwischen München-Perlach und Neubiberg. Es kommt zu Verspätungen und Ausfällen in beide Richtungen im S-Bahnverkehr der Deutschen Bahn.</pre>

FHEM auf Raspbery Pi 4
HM: HM-CFG-USB-2,HM-CC-RT-DN,HM-TC-IT-WM-W-EU,HM-SEC-SCo,HM-ES-PMSw1-Pl,HM-Sen-MDIR-WM55 | Philips hue: LCT001,LWL001,FLS-PP lp | Logitech Harmony Ultimate | zigbee2mqtt: WSDCGQ01LM, WSDCGQ11LM, MFKZQ01LM, MCCGQ11LM

JoWiemann

#304
Zitat von: robertPI am 06 Januar 2017, 09:59:32
Hallo Jörg,

vielen Dank für das schnelle update! Im travel_note wird noch sehr viel Formatierung und weitere Infos dargestellt. Fehlt mir da vielleicht ein perl Modul?


travel_note_text_3

<pre>digitalData.verbindung = new Array(); var verbindung = new Object(); if(typeof(tmpDiv) == "undefined") tmpDiv = document.createElement("div"); verbindung.start = new Object(); tmpDiv.innerHTML = "München-Mittersendling"; verbindung.start.name = tmpDiv.innerHTML; verbindung.start.eBhf = "8004154"; verbindung.start.typ = "Haltestelle"; verbindung.start.land = "AUT"; verbindung.ziel = new Object(); tmpDiv.innerHTML = "Höllriegelskreuth"; verbindung.ziel.name = tmpDiv.innerHTML; verbindung.ziel.eBhf = "8002899"; verbindung.ziel.typ = "Haltestelle"; verbindung.ziel.land = "AUT"; verbindung.reiseabschnitt = new Array(); var reiseabschnitt = new Object(); reiseabschnitt.start = new Object(); tmpDiv.innerHTML = "München-Mittersendling"; reiseabschnitt.start.name = tmpDiv.innerHTML; reiseabschnitt.start.eBhf = "8004154"; reiseabschnitt.start.typ = "Haltestelle"; reiseabschnitt.start.land = "AUT"; reiseabschnitt.ziel = new Object(); tmpDiv.innerHTML = "Höllriegelskreuth"; reiseabschnitt.ziel.name = tmpDiv.innerHTML; reiseabschnitt.ziel.eBhf = "8002899"; reiseabschnitt.ziel.typ = "Haltestelle"; reiseabschnitt.ziel.land = "AUT"; reiseabschnitt.produktklassen = new Object(); reiseabschnitt.produktklassen.ICE = 0; reiseabschnitt.produktklassen.IC_EC = 0; reiseabschnitt.produktklassen.IR = 0; reiseabschnitt.produktklassen.RE_RB = 0; reiseabschnitt.produktklassen.S = 0; reiseabschnitt.produktklassen.Bus = 0; reiseabschnitt.produktklassen.Schiff = 0; reiseabschnitt.produktklassen.U = 0; reiseabschnitt.produktklassen.Tram = 0; reiseabschnitt.produktklassen.AST = 0; reiseabschnitt.produktklassen.S = 1; reiseabschnitt.aufenthaltszeit = ""; reiseabschnitt.abfahrt = "2017-01-06T10:44"; reiseabschnitt.ankunft = "2017-01-06T10:54"; reiseabschnitt.verkehrsmittelnummer = "S 7".match(/\d+/)[0]; verbindung.reiseabschnitt.push(reiseabschnitt); verbindung.umstiege = 0; verbindung.abfahrt = "2017-01-06T10:44"; verbindung.ankunft = "2017-01-06T10:54"; verbindung.reisedauer = "0:10"; verbindung.richtung = "H"; verbindung.typ = "plan"; verbindung.info = "keine"; Signalstörung: Auf der Strecke München Ost - Kreuzstraße zwischen München-Perlach und Neubiberg. Es kommt zu Verspätungen und Ausfällen in beide Richtungen im S-Bahnverkehr der Deutschen Bahn.</pre>


Hallo

für welche Verbindung bekommst Du das. Da hat sich wohl auch die Html-Formatierung geändert.

Grüße Jörg

PS: Das wird komplizierter. Wird etwas dauern...
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

EnderPhilipp

Bei mir scheint es zu funktionieren, nur habe ich bei der Strecke BonnHbf-KoelHbf manchmal kein travel_vehicle_nr_1, bei einer anderen Strecke schon.  ;D

Außerdem steht beim buf-Teil Folgendes:


HTTP/1.1 200 OK Date: Fri, 06 Jan 2017 09:30:42 GMT Server: Apache Set-Cookie: ident=cr.02771879.1483695038; Path=/; Version=1 Set-Cookie: seqnr=4; Path=/; Version=1 Set-Cookie: ld=15079; Path=/; Version=1 Set-Cookie: dc=dc1; Domain=.bahn.de; Path=/; Version=1 Connection: close Content-Type: text/html; charset=ISO-8859-1 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Deutsche Bahn - Verbindungen - Verbindungsdetails</title> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> <meta http-equiv="expires" content="-1" /> <meta http-equiv="cache-control" content="no-cache" /> <meta http-equiv="pragma" content="no-cache" /> <meta name="viewport" content="width=device-width; initial-scale=1.0;" /> <meta name="format-detection" content="telephone=no" /> <meta name="HandheldFriendly" content="true" /> <link rel="shortcut icon" href="http://www.img-bahn.de/v/1612/img/favicon.ico" /> <link rel="apple-touch-icon" type="image/x-icon" href="http://www.img-bahn.de/v/1612/img/apple-touch-icon.png"/> <script type="text/javascript"> digitalData = new Object(); digitalData.pageInstanceID = "_BAHN_AuskunftVerbindungenDetail_DE"; digitalData.version = "1.0"; digitalData.reportSuite = ""; digitalData.numberCarts = 0; tmpDate = new Date(); digitalData.creationDate = tmpDate.getFullYear()+"-"+((tmpDate.getMonth()<9)?"0":"")+(tmpDate.getMonth()+1).toString()+"-"+((tmpDate.getDate()<10)?"0":"")+tmpDate.getDate()+"T"+((tmpDate.getHours()<10)?"0":"")+tmpDate.getHours()+":"+((tmpDate.getMinutes()<10)?"0":"")+tmpDate.getMinutes()+":"+((tmpDate.getSeconds()<10)?"0":"")+tmpDate.getSeconds()+"+"+(tmpDate.getTimezoneOffset()/-60)+":00"; digitalData.page = new Object(); digitalData.suchparameter = new Object(); digitalData.user = new Object(); digitalData.page.pageInfo = new Object(); digitalData.page.testing = new Object(); digitalData.page.category = new Object(); digitalData.page.teaser = new Object(); digitalData.page.interaktion= new Object(); digitalData.page.isError = false; digitalData.page.environment = ""; digitalData.page.pageInfo.pageID = "BAHN_AuskunftVerbindungenDetail_DE"; digitalData.page.pageInfo.portal = "BAHN"; digitalData.page.pageInfo.anwendung = "ASK"; digitalData.page.pageInfo.channel = "BAHN_ASK_DEU_DE"; digitalData.page.pageInfo.channelSpecific = ""; digitalData.page.pageInfo.prozesseinstieg = ""; digitalData.page.pageInfo.prozess = ""; digitalData.page.pageInfo.pageName = "BAHN_ASK_DEU_DE_AuskunftVerbindungenDetail"; digitalData.page.pageInfo.pageNameSpecific = "AuskunftVerbindungenDetail"; var tmp = this.document.URL.match(/[^\?]+/); if(tmp) digitalData.page.pageInfo.destinationURL = tmp[0]; else digitalData.page.pageInfo.destinationURL = this.document.URL; digitalData.page.pageInfo.destinationURLParameter = new Array(); var tmp = this.document.URL.match(/[(\?|\&)]([^=]+)\=([^&#]+)/g); if(tmp) { for(var i = 0; i < tmp.length; i++) { var tmpString = tmp[i].substring(1).split("="); digitalData.page.pageInfo.destinationURLParameter[i] = {"name": tmpString[0] , "value": tmpString[1]}; } } digitalData.page.pageInfo.referringURL = document.referrer; digitalData.page.pageInfo.onsiteSearchTerm = ""; digitalData.page.pageInfo.onsiteSearchResults = 0; digitalData.page.pageInfo.sysEnv = "mobile"; digitalData.page.pageInfo.version = "HAFAS 5.41.DB.R16.12.n"; digitalData.page.pageInfo.issueDate = digitalData.creationDate; digitalData.page.pageInfo.effectiveDate = digitalData.creationDate; digitalData.page.pageInfo.effectiveDateUnix = tmpDate.getTime(); digitalData.page.pageInfo.expiryDate = digitalData.creationDate; digitalData.page.pageInfo.language = "DE"; digitalData.page.pageInfo.country = "DEU"; digitalData.page.testing.aktiv = false; digitalData.page.testing.anzahlVariationen = 0; digitalData.page.testing.variante = new Array


Mfg
Philipp ;D
¡¡¡ANFÄNGERALARM!!!
Raspberry Pi 3 (Hauptsystem)
Raspberry Pi B+ (Kellersonde)
Homematic,Philips Hue, LD382, nanoCul 433/868mhz, MPD, Intertechno, FIRMATA, EspEasy, SSCAM, STV, HDMI-CEC, EchoDot

EnderPhilipp

¡¡¡ANFÄNGERALARM!!!
Raspberry Pi 3 (Hauptsystem)
Raspberry Pi B+ (Kellersonde)
Homematic,Philips Hue, LD382, nanoCul 433/868mhz, MPD, Intertechno, FIRMATA, EspEasy, SSCAM, STV, HDMI-CEC, EchoDot

Radikant

Ich verfolge das Modul jetzt schon eine Zeit lang und ich finde es auch sehr nützlich.  :D

Die einzige Funktion,die mir fehlt ist,dass man sagen kann, dass man nicht die nächsten 3 Züge sehen will, sondern die ersten 3 in z.B 1std.

Rudolf
Aller Anfang ist schwer...

JoWiemann

Zitat von: Radikant am 07 Januar 2017, 08:45:55
Ich verfolge das Modul jetzt schon eine Zeit lang und ich finde es auch sehr nützlich.  :D

Die einzige Funktion,die mir fehlt ist,dass man sagen kann, dass man nicht die nächsten 3 Züge sehen will, sondern die ersten 3 in z.B 1std.

Rudolf

Hallo Rudolf,

als Spontanabfrage über ein get oder als Daueroffset über ein Attribut?

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Radikant

Also ich fände die Spontanabfrage besser, ein Attribut wäre aber auch ok  ::)

Rudolf
Aller Anfang ist schwer...

JoWiemann

#310
Zitat von: Radikant am 07 Januar 2017, 12:02:32
Also ich fände die Spontanabfrage besser, ein Attribut wäre aber auch ok  ::)

Rudolf

Hallo,

der Zeit Offset in Minuten kann jetzt in der Definition des Moduls als zweiter Parameter angegeben werden. Über set timeOffset kann der Offset verändert werden.

Bitte mal testen.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Radikant

Das war ja mal schnell ^^

Habe es installiert, bisher klappt alles fehlerfrei.

Dankeschön  ;)
Aller Anfang ist schwer...

JoWiemann

Zitat von: robertPI am 06 Januar 2017, 09:59:32
Hallo Jörg,

vielen Dank für das schnelle update! Im travel_note wird noch sehr viel Formatierung und weitere Infos dargestellt. Fehlt mir da vielleicht ein perl Modul?


travel_note_text_3

<pre>digitalData.verbindung = new Array(); var verbindung = new Object(); if(typeof(tmpDiv) == "undefined") tmpDiv = document.createElement("div"); verbindung.start = new Object(); tmpDiv.innerHTML = "München-Mittersendling"; verbindung.start.name = tmpDiv.innerHTML; verbindung.start.eBhf = "8004154"; verbindung.start.typ = "Haltestelle"; verbindung.start.land = "AUT"; verbindung.ziel = new Object(); tmpDiv.innerHTML = "Höllriegelskreuth"; verbindung.ziel.name = tmpDiv.innerHTML; verbindung.ziel.eBhf = "8002899"; verbindung.ziel.typ = "Haltestelle"; verbindung.ziel.land = "AUT"; verbindung.reiseabschnitt = new Array(); var reiseabschnitt = new Object(); reiseabschnitt.start = new Object(); tmpDiv.innerHTML = "München-Mittersendling"; reiseabschnitt.start.name = tmpDiv.innerHTML; reiseabschnitt.start.eBhf = "8004154"; reiseabschnitt.start.typ = "Haltestelle"; reiseabschnitt.start.land = "AUT"; reiseabschnitt.ziel = new Object(); tmpDiv.innerHTML = "Höllriegelskreuth"; reiseabschnitt.ziel.name = tmpDiv.innerHTML; reiseabschnitt.ziel.eBhf = "8002899"; reiseabschnitt.ziel.typ = "Haltestelle"; reiseabschnitt.ziel.land = "AUT"; reiseabschnitt.produktklassen = new Object(); reiseabschnitt.produktklassen.ICE = 0; reiseabschnitt.produktklassen.IC_EC = 0; reiseabschnitt.produktklassen.IR = 0; reiseabschnitt.produktklassen.RE_RB = 0; reiseabschnitt.produktklassen.S = 0; reiseabschnitt.produktklassen.Bus = 0; reiseabschnitt.produktklassen.Schiff = 0; reiseabschnitt.produktklassen.U = 0; reiseabschnitt.produktklassen.Tram = 0; reiseabschnitt.produktklassen.AST = 0; reiseabschnitt.produktklassen.S = 1; reiseabschnitt.aufenthaltszeit = ""; reiseabschnitt.abfahrt = "2017-01-06T10:44"; reiseabschnitt.ankunft = "2017-01-06T10:54"; reiseabschnitt.verkehrsmittelnummer = "S 7".match(/\d+/)[0]; verbindung.reiseabschnitt.push(reiseabschnitt); verbindung.umstiege = 0; verbindung.abfahrt = "2017-01-06T10:44"; verbindung.ankunft = "2017-01-06T10:54"; verbindung.reisedauer = "0:10"; verbindung.richtung = "H"; verbindung.typ = "plan"; verbindung.info = "keine"; Signalstörung: Auf der Strecke München Ost - Kreuzstraße zwischen München-Perlach und Neubiberg. Es kommt zu Verspätungen und Ausfällen in beide Richtungen im S-Bahnverkehr der Deutschen Bahn.</pre>


Hallo,

ich noch mal eine regular Expression angepasst. Bitte auch einmal testen. Geht allerdings nur wenn Hinweise zur Verbindung vorhanden sind.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

robertPI

Sehr geil, läuft. Vielen Dank!!!  :-D

Die S-Bahn hat passender weise auch gleich eine Störung parat:

travel_note_text_1

<pre>Störung an einem Bahnübergang: Auf der Strecke München Ost - Kreuzstraße zwischen Höhenkirchen-Siegertsbrunn und Aying. Es kommt zu Verspätungen in beide Richtungen im S-Bahnverkehr der Deutschen Bahn.</pre>


kannst du die <pre> Tags noch wegschneiden? Dann kann es auch bei Einbindung in TableutUI nicht zu Schwierigkeiten mit dem html kommen.
FHEM auf Raspbery Pi 4
HM: HM-CFG-USB-2,HM-CC-RT-DN,HM-TC-IT-WM-W-EU,HM-SEC-SCo,HM-ES-PMSw1-Pl,HM-Sen-MDIR-WM55 | Philips hue: LCT001,LWL001,FLS-PP lp | Logitech Harmony Ultimate | zigbee2mqtt: WSDCGQ01LM, WSDCGQ11LM, MFKZQ01LM, MCCGQ11LM

JoWiemann

Zitat von: robertPI am 07 Januar 2017, 20:05:58
Sehr geil, läuft. Vielen Dank!!!  :-D

Die S-Bahn hat passender weise auch gleich eine Störung parat:

travel_note_text_1

<pre>Störung an einem Bahnübergang: Auf der Strecke München Ost - Kreuzstraße zwischen Höhenkirchen-Siegertsbrunn und Aying. Es kommt zu Verspätungen in beide Richtungen im S-Bahnverkehr der Deutschen Bahn.</pre>


kannst du die <pre> Tags noch wegschneiden? Dann kann es auch bei Einbindung in TableutUI nicht zu Schwierigkeiten mit dem html kommen.

Ist in der Bereinigung eigentlich drin. Ansonsten würden noch mehr html Tags erscheinen. Also wieder Forschungsarbeit...

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM