98_DBPlan.pm: Fahrplaninformation der DB

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

Vorheriges Thema - Nächstes Thema

JoWiemann

#360
Zitat von: hartenthaler am 17 Januar 2017, 23:35:19
Ich hatte die commandref so verstanden, dass dort nur "none", "delete"  und "nochar" zulässig sind. Bitte klarer ausdrücken.
Hoffe, die Ergänzung in der commandref passt jetzt so.

Zitat von: hartenthaler am 17 Januar 2017, 23:35:19
Wie wäre es mit listAllStations? Auf jeden Fall sollte aus der commnadref hervorgehen, welche get-Befehle mit und welche ohne Parameter aufgerufen werden können/sollen. Also bei search: Suche nach der als Parameter übergebenen Station in der lokal hinterlegten Liste. Und bei listAllStations: Anzeige aller Stationen in der lokal hinterlegten Liste.

Ich habe jetzt showStations herausgenommen. Wird jetzt bei searchStation kein Suchbegriff eingegeben, dann werden alle Bahnhöfe angezeigt.

Zitat von: hartenthaler am 17 Januar 2017, 23:35:19
Man kann übrigens auch noch andere Stationen verwenden, nicht nur die in der Liste hinterlegten, was aber nirgends erwähnt wird. Ich verwende z.B. Bushaltestellen in Berlin. Die haben wohl keinen IBNR-Code, funktionieren aber trotzdem; zumindest kommen sie in der Stationsliste nicht vor, weshalb ich diese Liste als nur bedingt hilfreich empfinde.
Das ist so... und anderen hilft sie vielleicht.

Zitat von: hartenthaler am 17 Januar 2017, 23:35:19
Das Internal STATE steht - wie ich eben erst bemerkt habe - auf "19:37 +0, 20:01 +0, 20:21 +0", was so nicht sein dürfte. Ich habe stateFormat entsprechend gesetzt, aber das dürfte nicht das Internal STATE beeinflussen. Da ist die Logik im Modul noch nicht ganz sauber.

Ok, habe ich überarbeitet.

Grüße Jörg und anbei die überarbeitete Version.
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

hartenthaler

Danke Jörg für die schnelle Reaktion und die Verbesserungen. Jetzt läuft die regelmäßige Aktualisierung!
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

JoWiemann

#362
Hallo,

neue Version im Git und im ersten Post.

19.01.2017
- gelegentlicher Fehler 2ter Versuch: PERL WARNING: Use of uninitialized value in string ne at... behoben .

19.01.2017
- gelegentlicher Fehler: PERL WARNING: Use of uninitialized value in string ne at... behoben .

Grüße

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

Thoffi1978

Zitat von: Thoffi1978 am 11 Januar 2017, 10:40:24
Hallo Jörg,

das sieht gut aus. Vielen Lieben Dank :)

Ich bekomme jetzt jedoch, im Abfrageintervall, folgende Log Einträge:
2017.01.11 10:31:59 1: PERL WARNING: Use of uninitialized value in string ne at (eval 432) line 1.
2017.01.11 10:32:00 1: PERL WARNING: Use of uninitialized value in string ne at (eval 436) line 1.
2017.01.11 10:32:01 1: PERL WARNING: Use of uninitialized value in string ne at (eval 440) line 1.
2017.01.11 10:32:02 1: PERL WARNING: Use of uninitialized value in string ne at (eval 480) line 1.
2017.01.11 10:32:02 1: PERL WARNING: Use of uninitialized value in string ne at (eval 484) line 1.
2017.01.11 10:33:59 1: PERL WARNING: Use of uninitialized value in string ne at (eval 503) line 1.
2017.01.11 10:33:59 1: PERL WARNING: Use of uninitialized value in string ne at (eval 507) line 1.
2017.01.11 10:34:01 1: PERL WARNING: Use of uninitialized value in string ne at (eval 511) line 1.
2017.01.11 10:34:01 1: PERL WARNING: Use of uninitialized value in string ne at (eval 515) line 1.
2017.01.11 10:34:02 1: PERL WARNING: Use of uninitialized value in string ne at (eval 555) line 1.
2017.01.11 10:34:02 1: PERL WARNING: Use of uninitialized value in string ne at (eval 559) line 1


Thoffi

Dieser Fehler hat wohl nur bedingt mit dem Modul zu tun.
Ich habe ein DOIF laufen, der mir eine Whatsapp schickt, wenn der Zug Verspätung hat. Das funktioniert auch,
leider bekomme ich aber die o.g. Logeinträge.
Diesen DOIF benutze ich:
([Rst_OD:plan_departure_delay_1] ne "+0" and [Rst_OD:plan_departure_delay_1] ne "none")((set Torsten_WA send [Rst_OD:plan_departure_1], [Rst_OD:plan_departure_delay_1] Abfahrt,[Rst_OD:plan_arrival_delay_1] Ankunft))
DOELSEIF
([OD_Rst:plan_departure_delay_1] ne "+0" and [OD_Rst:plan_departure_delay_1] ne "none")((set Torsten_WA send [OD_Rst:plan_departure_1], [OD_Rst:plan_departure_delay_1] Abfahrt, [OD_Rst:plan_arrival_delay_1] Ankunft))
DOELSE
(set Torsten_WA send Bahn faehrt wieder puenktlich)


Thoffi

JoWiemann

Hallo Thoffi,

schalte doch mal bitte stacktrace ein. Ist ein globales Attribut. Damit kann man im Log sehen woher die Fehlermeldungen wirklich kommen.



Grüße Jörg

Gesendet von iPhone mit Tapatalk
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

Hallo Thoffi,

kann es sein, dass Du das Attribut dbplan-default-char mit delete definiert hast. Das würde dann die Fehlermeldungen erklären.


Grüße Jörg

Gesendet von iPhone mit Tapatalk
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

Thoffi1978

Hallo,
ich habe nun den LOG mit Stacktrace:
2017.01.20 15:48:19 1: PERL WARNING: Use of uninitialized value in string ne at (eval 6271) line 1.
2017.01.20 15:48:19 1: stacktrace:
2017.01.20 15:48:19 1:     main::__ANON__                      called by (eval 6271) (1)
2017.01.20 15:48:19 1:     (eval)                              called by ./FHEM/98_DOIF.pm (1060)
2017.01.20 15:48:19 1:     main::DOIF_CheckCond                called by ./FHEM/98_DOIF.pm (1319)
2017.01.20 15:48:19 1:     main::DOIF_Trigger                  called by ./FHEM/98_DOIF.pm (1438)
2017.01.20 15:48:19 1:     main::DOIF_Notify                   called by fhem.pl (3302)
2017.01.20 15:48:19 1:     main::CallFn                        called by fhem.pl (3224)
2017.01.20 15:48:19 1:     main::DoTrigger                     called by fhem.pl (4153)
2017.01.20 15:48:19 1:     main::readingsEndUpdate             called by ./FHEM/98_DBPlan.pm (1120)
2017.01.20 15:48:19 1:     main::DBPlan_Parse_Travel_Notes     called by FHEM/HttpUtils.pm (427)
2017.01.20 15:48:19 1:     main::__ANON__                      called by fhem.pl (671)
2017.01.20 15:48:30 3: WhatsApp: sending /message send 491793999572 '15:55, +2 Abfahrt,+2 Ankunft'

Da muss ich ganz ehrlich sagen, ich bin raus. Das sagt mir nicht viel

Attribut dbplan-default-char ist bei mir gar nicht definiert.

Thoffi

JoWiemann

Hallo Thoffi,

ich habe noch mal etwas umgestellt. Würdest Du bitte einmal testen. Danke Dir.

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

Thoffi1978

Hallo Jörg,
anbei der Log mit der neuen Version
$Id: 98_DBPlan.pm 71499 2017-01-20 17:00:00Z jowiemann $


2017.01.21 10:46:08 1: PERL WARNING: Use of uninitialized value in string ne at (eval 356) line 1.
2017.01.21 10:46:08 1: stacktrace:
2017.01.21 10:46:08 1:     main::__ANON__                      called by (eval 356) (1)
2017.01.21 10:46:08 1:     (eval)                              called by ./FHEM/98_DOIF.pm (1060)
2017.01.21 10:46:08 1:     main::DOIF_CheckCond                called by ./FHEM/98_DOIF.pm (1319)
2017.01.21 10:46:08 1:     main::DOIF_Trigger                  called by ./FHEM/98_DOIF.pm (1438)
2017.01.21 10:46:08 1:     main::DOIF_Notify                   called by fhem.pl (3302)
2017.01.21 10:46:08 1:     main::CallFn                        called by fhem.pl (3224)
2017.01.21 10:46:08 1:     main::DoTrigger                     called by fhem.pl (4153)
2017.01.21 10:46:08 1:     main::readingsEndUpdate             called by ./FHEM/98_DBPlan.pm (1125)
2017.01.21 10:46:08 1:     main::DBPlan_Parse_Travel_Notes     called by FHEM/HttpUtils.pm (427)
2017.01.21 10:46:08 1:     main::__ANON__                      called by fhem.pl (671)
2017.01.21 10:46:08 1: PERL WARNING: Use of uninitialized value in string ne at (eval 356) line 1.
2017.01.21 10:46:08 1: stacktrace:
2017.01.21 10:46:08 1:     main::__ANON__                      called by (eval 356) (1)
2017.01.21 10:46:08 1:     (eval)                              called by ./FHEM/98_DOIF.pm (1060)
2017.01.21 10:46:08 1:     main::DOIF_CheckCond                called by ./FHEM/98_DOIF.pm (1319)
2017.01.21 10:46:08 1:     main::DOIF_Trigger                  called by ./FHEM/98_DOIF.pm (1438)
2017.01.21 10:46:08 1:     main::DOIF_Notify                   called by fhem.pl (3302)
2017.01.21 10:46:08 1:     main::CallFn                        called by fhem.pl (3224)
2017.01.21 10:46:08 1:     main::DoTrigger                     called by fhem.pl (4153)
2017.01.21 10:46:08 1:     main::readingsEndUpdate             called by ./FHEM/98_DBPlan.pm (1125)
2017.01.21 10:46:08 1:     main::DBPlan_Parse_Travel_Notes     called by FHEM/HttpUtils.pm (427)
2017.01.21 10:46:08 1:     main::__ANON__                      called by fhem.pl (671)

JoWiemann

Hallo Thoffi,

danke Dir und würdest Du mir bitte Dein vollständiges doif schicken. Dann versuche ich den Fehler bei mir nachzustellen. 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

Thoffi1978

Hallo Jörg,
anbei die List vom DOIF.
Wird "plan_departure_delay_1" gar nicht mehr mit ausgegeben?

List:
Internals:
   DEF        ([Rst_OD:plan_departure_delay_1] ne "+0" and [Rst_OD:plan_departure_delay_1] ne "none")((set Torsten_WA send [Rst_OD:plan_departure_1], [Rst_OD:plan_departure_delay_1] Abfahrt,[Rst_OD:plan_arrival_delay_1] Ankunft))
DOELSEIF
([OD_Rst:plan_departure_delay_1] ne "+0" and [OD_Rst:plan_departure_delay_1] ne "none")((set Torsten_WA send [OD_Rst:plan_departure_1], [OD_Rst:plan_departure_delay_1] Abfahrt, [OD_Rst:plan_arrival_delay_1] Ankunft))
DOELSE
(set Torsten_WA send Bahn faehrt wieder puenktlich)
   NAME       DBPlan_Whatsapp
   NR         261
   NTFY_ORDER 50-DBPlan_Whatsapp
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2017-01-21 20:51:24   Device          OD_Rst
     2017-01-21 20:49:29   cmd             2
     2017-01-21 20:49:29   cmd_event       OD_Rst
     2017-01-21 20:49:29   cmd_nr          2
     2017-01-20 15:50:20   e_OD_Rst_plan_departure_delay_1 +0
     2017-01-20 15:50:20   e_Rst_OD_plan_departure_delay_1 +2
     2017-01-21 20:42:37   mode            enable
     2017-01-21 20:49:29   state           cmd_2
     2017-01-21 20:51:29   wait_timer      no timer
   Condition:
     0          ReadingValDoIf($hash,'Rst_OD','plan_departure_delay_1') ne "+0" and ReadingValDoIf($hash,'Rst_OD','plan_departure_delay_1') ne "none"
     1          ReadingValDoIf($hash,'OD_Rst','plan_departure_delay_1') ne "+0" and ReadingValDoIf($hash,'OD_Rst','plan_departure_delay_1') ne "none"
   Devices:
     0           Rst_OD
     1           OD_Rst
     all         Rst_OD OD_Rst
   Do:
     0:
       0          (set Torsten_WA send [Rst_OD:plan_departure_1], [Rst_OD:plan_departure_delay_1] Abfahrt,[Rst_OD:plan_arrival_delay_1] Ankunft)
     1:
       0          (set Torsten_WA send [OD_Rst:plan_departure_1], [OD_Rst:plan_departure_delay_1] Abfahrt, [OD_Rst:plan_arrival_delay_1] Ankunft)
     2:
       0          set Torsten_WA send Bahn faehrt wieder puenktlich
   Helper:
     event      travel_departure_1: Bad Oldesloe - Gl. 3,travel_vehicle_nr_1: RB 21335,travel_destination_1: Gl. 2,travel_destination_1: Hamburg-Rahlstedt - Gl. 2
     globalinit 1
     last_timer 0
     sleepdevice OD_Rst
     sleepsubtimer -1
     sleeptimer -1
     timerdev   OD_Rst
     timerevent travel_departure_1: Bad Oldesloe - Gl. 3,travel_vehicle_nr_1: RB 21335,travel_destination_1: Gl. 2,travel_destination_1: Hamburg-Rahlstedt - Gl. 2
     triggerDev OD_Rst
     timerevents:
       travel_departure_1: Bad Oldesloe - Gl. 3
       travel_vehicle_nr_1: RB 21335
       travel_destination_1: Gl. 2
       travel_destination_1: Hamburg-Rahlstedt - Gl. 2
     timereventsState:
       travel_departure_1: Bad Oldesloe - Gl. 3
       travel_vehicle_nr_1: RB 21335
       travel_destination_1: Gl. 2
       travel_destination_1: Hamburg-Rahlstedt - Gl. 2
     triggerEvents:
       travel_departure_1: Bad Oldesloe - Gl. 3
       travel_vehicle_nr_1: RB 21335
       travel_destination_1: Gl. 2
       travel_destination_1: Hamburg-Rahlstedt - Gl. 2
     triggerEventsState:
       travel_departure_1: Bad Oldesloe - Gl. 3
       travel_vehicle_nr_1: RB 21335
       travel_destination_1: Gl. 2
       travel_destination_1: Hamburg-Rahlstedt - Gl. 2
   Internals:
   Itimer:
   Readings:
     0           Rst_OD:plan_departure_delay_1
     1           OD_Rst:plan_departure_delay_1
     all         Rst_OD:plan_departure_delay_1 OD_Rst:plan_departure_delay_1
   Regexp:
     0:
     1:
     All:
   State:
   Trigger:
Attributes:
   repeatsame 0:0:1
   room       yowsup,ÖPNV
   wait       10:10:10


vielen Dank schon mal

JoWiemann

Hallo Thoffi,

Deine Frage hat mir die Antwort gebracht. Leider hatte ich im Modul nicht "none" sondern "delete" als Voreinstellung für dbplan-default-char hinterlegt. Dass habe ich nun bereinigt.

Einen Tip noch. Bei DOIF sollte m.E. immer der Default mit definiert werden: Readings [<Device>:<Reading>⟨,<Default>⟩]. Es gibt einige Module, die readings nicht bereit stellen, wenn keine Werte ermittelt werden können.

Grüße Jörg und anbei zum Testen.
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

Thoffi1978

Hallo Jörg  :D

Es funktioniert wieder alles. Kein Fehler im Log.

Vielen Dank :)
Thoffi

m74

Evtl hat die Bahn mal wueder etwas umgestellt.
Statt dee Verspätung steht bei mir nun 'none' während bei der Reiseauskunft +7 steht.

Oder hat das was mit dem Problem von meinem Vorredner zu tun?

Radikant

Hi Liebe FHEMler,

ich verwende 98_DBPlan.pm jetz schon eine ganze Zeit, funktioniert auch alles ganz gut.

Mir ist dabei ein Fehler aufgefallen:

Wenn ich den timeOffset auf 10 oder mehr stelle, habe ich kein travel_departure_1/2 , travel_destination_1/2 , travel_vehicle_nr_1/2 mehr.

Ich kann nicht zu 100% sagen, ob das am Offset liegt, aber es fällt mir immer nur dann auf.

LG
Rudolf  :D
Aller Anfang ist schwer...