98_DBPlan.pm: Fahrplaninformation der DB

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

Vorheriges Thema - Nächstes Thema

JoWiemann

Ok, neue Version im Git und im ersten Post:

12.01.2018
- Syntax-Fehler bei Verspätungszeiten korrigiert
- +0 ist jetzt 0

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

Andre0909

#481
Danke für das tolle Modul. :) Mache ich gerade einen Denkfehler? Habe die Verbindung Wattenscheid - Dortmund Hbf auf 7:34 mit RE gestellt. Bekomme auch im Vergleich zur Bahnseite die richtigen "REs" auch die Links bei travel notes passen zu den richtigen Verbindungen aber die Readings zur Abfahrt und Ankuft stimme nicht. Sondern es sind immer die Readings der 2. Verbindung!

Content-Type: text/html; charset=ISO-8859-1
   hu_blocking 0
   hu_filecount 44
   loglevel   4
   noshutdown 1
   note_index 1
   path       /bin/query2.exe/dox?ld=15085&protocol=https:&n=1&i=j5.02102285.1515843956&rt=1&use_realtime_filter=1&co=C0-0&vca&HWAI=CONNECTION$C0-0!detailsVerbund=opened!verbund=VRR&outConId=C0-0&tplVarsDBStyle=yes&
   protocol   https
   redirects  0
   timeout    5
   url        https://reiseauskunft.bahn.de/bin/query2.exe/dox?ld=15085&protocol=https:&n=1&i=j5.02102285.1515843956&rt=1&use_realtime_filter=1&co=C0-0&vca&HWAI=CONNECTION$C0-0!detailsVerbund=opened!verbund=VRR&outConId=C0-0&tplVarsDBStyle=yes&
   version    02.05.2017 11:06:00
   Readings:
     2018-01-13 12:45:56   plan_arrival_1  08:37
     2018-01-13 12:45:56   plan_arrival_2  08:53
     2018-01-13 12:45:56   plan_arrival_3  none
     2018-01-13 12:45:56   plan_arrival_delay_1 0
     2018-01-13 12:45:56   plan_arrival_delay_2 0
     2018-01-13 12:45:56   plan_arrival_delay_3 0
     2018-01-13 12:45:56   plan_connection_1 RE
     2018-01-13 12:45:56   plan_connection_2 RE
     2018-01-13 12:45:56   plan_connection_3 none
     2018-01-13 12:45:56   plan_departure_1 08:20
     2018-01-13 12:45:56   plan_departure_2 08:36
     2018-01-13 12:45:56   plan_departure_3 none
     2018-01-13 12:45:56   plan_departure_delay_1 0
     2018-01-13 12:45:56   plan_departure_delay_2 0
     2018-01-13 12:45:56   plan_departure_delay_3 0
     2018-01-13 12:45:56   plan_error      none
     2018-01-13 12:45:56   plan_travel_change_1 0
     2018-01-13 12:45:56   plan_travel_change_2 0
     2018-01-13 12:45:56   plan_travel_duration_1 0:17
     2018-01-13 12:45:56   plan_travel_duration_2 0:17
     2018-01-13 12:43:56   state           active
     2018-01-13 12:45:56   travel_change_1 none
     2018-01-13 12:45:56   travel_change_2 none
     2018-01-13 12:45:56   travel_change_3 none
     2018-01-13 12:46:01   travel_departure_1 Wattenscheid - none
     2018-01-13 12:46:00   travel_departure_2 Wattenscheid - none
     2018-01-13 12:45:58   travel_departure_3 Wattenscheid - none
     2018-01-13 12:46:01   travel_destination_1 Dortmund Hbf - Gl. 8
     2018-01-13 12:46:00   travel_destination_2 Dortmund Hbf - Gl. 8
     2018-01-13 12:45:58   travel_destination_3 Dortmund Hbf - Gl. 8
     2018-01-13 12:45:56   travel_duration_1 none
     2018-01-13 12:45:56   travel_duration_2 none
     2018-01-13 12:45:56   travel_duration_3 none
     2018-01-13 12:45:56   travel_note_1   none
     2018-01-13 12:45:56   travel_note_2   none
     2018-01-13 12:45:56   travel_note_3   none
     2018-01-13 12:45:56   travel_note_error_1 none
     2018-01-13 12:45:56   travel_note_error_2 none
     2018-01-13 12:45:56   travel_note_error_3 none
     2018-01-13 12:45:56   travel_note_link_1 https://reiseauskunft.bahn.de/bin/query2.exe/dox?ld=15085&protocol=https:&n=1&i=j5.02102285.1515843956&rt=1&use_realtime_filter=1&co=C0-0&vca&HWAI=CONNECTION$C0-0!detailsVerbund=opened!verbund=VRR&outConId=C0-0&tplVarsDBStyle=yes&
     2018-01-13 12:45:56   travel_note_link_2 https://reiseauskunft.bahn.de/bin/query2.exe/dox?ld=15085&protocol=https:&n=1&i=j5.02102285.1515843956&rt=1&use_realtime_filter=1&co=C0-1&vca&HWAI=CONNECTION$C0-1!detailsVerbund=opened!verbund=VRR&outConId=C0-1&tplVarsDBStyle=yes&
     2018-01-13 12:45:56   travel_note_link_3 https://reiseauskunft.bahn.de/bin/query2.exe/dox?ld=15085&protocol=https:&n=1&i=j5.02102285.1515843956&rt=1&use_realtime_filter=1&co=C0-2&vca&HWAI=CONNECTION$C0-2!detailsVerbund=opened!verbund=VRR&outConId=C0-2&tplVarsDBStyle=yes&
     2018-01-13 12:45:56   travel_note_text_1 none
     2018-01-13 12:45:56   travel_note_text_2 none
     2018-01-13 12:45:56   travel_note_text_3 none
     2018-01-13 12:45:56   travel_price_1  VRR-Tarif
     2018-01-13 12:45:56   travel_price_2  VRR-Tarif
     2018-01-13 12:45:56   travel_price_3  none
     2018-01-13 12:46:01   travel_vehicle_nr_1 RE 10111
     2018-01-13 12:46:00   travel_vehicle_nr_2 RE 10005
     2018-01-13 12:45:58   travel_vehicle_nr_3 RE 10609


Der erste Zug ist somit

2018-01-13 12:45:56   travel_note_link_1 https://reiseauskunft.bahn.de/bin/query2.exe/dox?ld=15085&protocol=https:&n=1&i=j5.02102285.1515843956&rt=1&use_realtime_filter=1&co=C0-0&vca&HWAI=CONNECTION$C0-0!detailsVerbund=opened!verbund=VRR&outConId=C0-0&tplVarsDBStyle=yes&

Wenn ich den Link aufrufe ist das der RE10111 von Wattenscheid
ab 07:58 Gl. 2  bis an 08:14 Gl. 8
Dortmund Hbf.

Soweit richtig. Auch die Zugbezeichnung im Reading stimmt:  (2018-01-13 12:46:01   travel_vehicle_nr_1 RE 10111 )

ABER die Abfahrts und Ankufszeiten sind von der 2. Verbindung:

2018-01-13 12:45:56   plan_arrival_1  08:37 und 2018-01-13 12:45:56   plan_departure_1 08:20

Stimmt was am Code nicht oder mache ich was falsch?

Bin da kein Profi drin aber sieht für mich su aus als Fragen die Links die ersten 3 Verbindungen als (0,1,2) ab und es werden aber die Readings (1,2,3) ausgegeben, somit verschiebt sich jede Verbidnung eins nach hinten und die erste fehlt.



JoWiemann

Hallo, danke für den Hinweis. Das ist dann wieder einer der Fälle, wo sich durch Travel Notes die Tabelle verschiebt. Schaue ich mir an.



Gesendet von iPhone mit Tapatalk

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

JoWiemann

#483
Hallo,

anbei eine Testversion mit einer Fehlerkorrektur. Bitte einmal testen. Danke

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

retikulum

Cool, danke für die schnellen Anpassungen und Korrekturen. Weiter so!  :) :)

JoWiemann

Hallo,

neue Version im ersten Post oder über update.

15.01.2018
- Parsing-Fehler bei Verspätungszeiten bei Zeitvorgabe korrigiert

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

Andre0909

Danke für deine Mühe :) habe geupdatet aber leider sind departure und Arrival 1 wieder von Verbindung 2 während der Link von Verbindung 1 richtig ist ?!


Gesendet von iPhone mit Tapatalk

Per

Zitat von: Thoffi1978 am 10 Dezember 2016, 17:37:26
Hallo,
warum wird bei einer Aktualisierung eigentlich immer erst "none" und dann der Wert "+0" angezeigt?
2016-12-10 17:32:48 DBPlan OD_Rst plan_departure_delay_1: none
2016-12-10 17:32:48 DBPlan OD_Rst plan_departure_delay_1: +0

Beides sind Werte in der selben Sekude.
Das Problem bei "delay" ist zwar behoben, bei "plan_departure_n" aber das gleiche vorhanden (version 15.01.2018 19:56:00), kann man da noch was machen?

JoWiemann

Zitat von: Andre0909 am 16 Januar 2018, 23:12:02
Danke für deine Mühe :) habe geupdatet aber leider sind departure und Arrival 1 wieder von Verbindung 2 während der Link von Verbindung 1 richtig ist ?!


Gesendet von iPhone mit Tapatalk
Nur zur Sicherheit. Hast Du Fhem neu gestartet?



Gesendet von iPad mit Tapatalk

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

Andre0909

Zitat von: JoWiemann am 17 Januar 2018, 08:55:55
Nur zur Sicherheit. Hast Du Fhem neu gestartet?



Gesendet von iPad mit Tapatalk

Grüße Jörg
Hab ich eigentlich schon weil es noch ein anderes Problem gab. Würde aber gleich zu Hause nochmal Neustarten und gucken ob Problem noch Auftritt


Gesendet von iPhone mit Tapatalk

Andre0909

Zitat von: JoWiemann am 17 Januar 2018, 08:55:55
Nur zur Sicherheit. Hast Du Fhem neu gestartet?



Gesendet von iPad mit Tapatalk

Grüße Jörg

korrigiere. FUNZT! Danke

Per

Zitat von: Per am 16 Januar 2018, 23:27:40
Das Problem bei "delay" ist zwar behoben, bei "plan_departure_n" aber das gleiche vorhanden (version 15.01.2018 19:56:00), kann man da noch was machen?
Ich schubs das noch mal hoch...

JoWiemann

Sorry, habe ich übersehen. Schätze im Lauf der Woche...


Gesendet von iPad mit Tapatalk

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

JoWiemann

Zitat von: Per am 05 Februar 2018, 12:45:52
Ich schubs das noch mal hoch...

Hm, bei plan_departure_n ist none richtig, wenn keine Abfahrtszeit ermittelt werden kann. Denn 0 ist kaum der richtig Wert, wenn nicht vorhanden ist. Warum diese nicht ermittelt werden kann ist eine andere Frage. Bei welcher Deiner Verbindungen tritt das regelmäßig auf?

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

hulzer

Hallo zusammen,

ich habe ein mir noch unerklärliches Verhalten:

Die Verspätung wird nicht korrekt ermittelt, da aus irgendwelchen Gründen die Capture Group der Regex verändert wird:


2018.02.06 21:23:58 4: DBPlan (Rueckfahrt) - DBPlan_DATA_Delays_2: 23:09 to 23:14
2018.02.06 21:23:58 4: DBPlan (Rueckfahrt) - DBPlan_Parse_Delays: arrival delay for plan 1 read successfully: 1 23:09, 23


Man sieht am Ende dass dort nur 23 anstatt 23:14 steht. Dazwischen wird die Umrechnung der Verspätung in Minuten gemacht - dort wird wieder mit Regex gematched.

Vorher:

Log3 $name, 4, "DBPlan ($name) - DBPlan_DATA_Delays_2: $dTime to $1";
readingsBulkUpdate( $hash, "plan_arrival_delay_$index", DBPlan_getMinutesDiff($dTime, $1)) if($dTime =~ m|(\d\d):(\d\d)|);
Log3 $name, 4, "DBPlan ($name) - DBPlan_Parse_Delays: arrival delay for plan $index read successfully: $index $dTime, $1";


Weißt man die Capture Group $1 einer lokalen Variablen zu dann passt wieder alles:

my $aDelayTime = $1;
Log3 $name, 4, "DBPlan ($name) - DBPlan_DATA_Delays_2: $dTime to $aDelayTime";
readingsBulkUpdate( $hash, "plan_arrival_delay_$index", DBPlan_getMinutesDiff($dTime, $aDelayTime)) if($dTime =~ m|(\d\d):(\d\d)|);
Log3 $name, 4, "DBPlan ($name) - DBPlan_Parse_Delays: arrival delay for plan $index read successfully: $index $dTime, $aDelayTime";


Vielleicht kann mir hier ja ein "Perl-Guru" weiterhelfen? Irgendeine Reference-Problematik?

Funktioniert denn die Anzeige der Verspätung bei jemand anderem?

Danke,

Gruß
Hulzer