98_DBPlan.pm: Fahrplaninformation der DB

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

Vorheriges Thema - Nächstes Thema

JoWiemann

Hallo,

ich kann mich erst am Wochenende wieder um das Modul kümmern.

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

Raemsna

Zur Info: Bei mir verursacht die Version v. 22.01. eine hohe Auslastung und gelegentliche "Hänger" von FHEM (auch nach mehrfachen Neustarts). Die vorherige Version v. 19.01. läuft bei gleicher config ohne Probleme.

Gesendet von meinem KFFOWI mit Tapatalk


cameli2

Hallo Jörg,
ich habe das DBPlan Modul zur Ermittlung der aktuellen Fahrzeiten lokaler S-Bahnverbindungen (ÖPNV=RMV) eingebunden.
Das Teil tut seinen Dienst wie erwartet; erstmal herzlichen Dank für Deine Arbeit.
Einige Punkte sind aber m.E. noch verbesserungswürdig.
Ich bin kein Perl-Programmierer (C liegt mir da schon eher), und ich möchte auch nicht gern in "fremden" Code rum pfuschen, zumal die ggf. ermittelten Lösungen dann eine Insel-Lösung darstellen würden.
Daher zunächst mal die Punkte, die mir aufgefallen sind:
- Das Modul startet nicht automatisch; ich muss erst eine Deaktivierung (inaktiv) und dann eine Aktivierung durchführen, damit es läuft. Ich denke, dieser Punkt wurde schon mal hier im Forum angesprochen, aber dazu habe ich noch keine Lösung gefunden.
- Schaltet man nach der Aktivierung des Moduls den Event-Monitor von FHEM an, dann zeigt sich (zumindest bei mir), dass das Reading-Event "plan_departure_delay_[1..3]" zwei mal ausgelöst wird. Ist zwar nicht schädlich, eher kosmetisch...
- Der HTML-Aufruf zum DBPlan der Bahn ermittelt die Fahrzeiten immer vom aktuellen Zeitpunkt aus. Über timeOffset lassen sich nur positive Werte einstellen. Allerdings wäre es schön, wenn man auch negative Werte eingeben könnte, da man z.B. im Falle von Verspätungen auch eine frühere Verbindung nutzen könnte bzw. auch bei eigener Verspätung eine Verbindung ggf. doch noch genutzt werden könnte ;-).
- Gelegentlich liefert der HTML-Aufruf keine Delay-Werte zurück, so dass einzelne Zeilen im Tabellen-Layout verschoben erscheinen. Ein Vorgabewert (z.B. "+0" über attr) könnte dem abhelfen. Vielleicht gibt's aber auch eine andere Lösung...

Ließen sich die o.g. Punkte mit vertretbarem Aufwand realisieren?

Gruß,
HaJü

JoWiemann

Zitat von: cameli2 am 31 Januar 2017, 06:25:35
- Das Modul startet nicht automatisch; ich muss erst eine Deaktivierung (inaktiv) und dann eine Aktivierung durchführen, damit es läuft. Ich denke, dieser Punkt wurde schon mal hier im Forum angesprochen, aber dazu habe ich noch keine Lösung gefunden.
Hm, das ist mir neu. Muss dann mal auf einem frischen System prüfen.

Zitat von: cameli2 am 31 Januar 2017, 06:25:35
- Schaltet man nach der Aktivierung des Moduls den Event-Monitor von FHEM an, dann zeigt sich (zumindest bei mir), dass das Reading-Event "plan_departure_delay_[1..3]" zwei mal ausgelöst wird. Ist zwar nicht schädlich, eher kosmetisch...
Ja, ich belege zunächst alle Readings mit der eingestellten Defaultzeichenkette, bzw lösche Sie, wenn "delete" angegeben worden ist.

Zitat von: cameli2 am 31 Januar 2017, 06:25:35
- Der HTML-Aufruf zum DBPlan der Bahn ermittelt die Fahrzeiten immer vom aktuellen Zeitpunkt aus. Über timeOffset lassen sich nur positive Werte einstellen. Allerdings wäre es schön, wenn man auch negative Werte eingeben könnte, da man z.B. im Falle von Verspätungen auch eine frühere Verbindung nutzen könnte bzw. auch bei eigener Verspätung eine Verbindung ggf. doch noch genutzt werden könnte ;-).
Die Idee hatte noch keiner, werde ich umsetzen.

Zitat von: cameli2 am 31 Januar 2017, 06:25:35
- Gelegentlich liefert der HTML-Aufruf keine Delay-Werte zurück, so dass einzelne Zeilen im Tabellen-Layout verschoben erscheinen. Ein Vorgabewert (z.B. "+0" über attr) könnte dem abhelfen. Vielleicht gibt's aber auch eine andere Lösung...
Lasse ich mir mal durch den Kopf gehen.

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

cameli2

Hallo Jörg,
erstmal danke für die schnelle Antwort.
Noch ein paar Hinweise bzw. Anmerkungen zu den genannten Punkten.
Zum Startproblem:
Bei mir tritt das reproduzierbar auf, sobald ich eine der DBPlan-Instanzen modifiziere bzw. FHEM neu starte.

Zu den ReadingEvents:
Was mir da noch nicht plausibel erscheint, ist, dass die Vorbelegung zu ReadingEvents führt, und weiterhin, dass sich bei den Readings zu "plan_arrival_delay[1..3]" dieses Verhalten nicht zeigt. Aber wie bereits erwähnt, bin ich bzgl. Perl-Programmierung und auch der FHEM Internals nicht gerade eine Koryphäe.

Gruß,
HaJü

JoWiemann

#380
Zitat von: cameli2 am 02 Februar 2017, 13:39:45
Hallo Jörg,
Zum Startproblem:
Bei mir tritt das reproduzierbar auf, sobald ich eine der DBPlan-Instanzen modifiziere bzw. FHEM neu starte.

Hallo HaJü;

ich habe noch einen Fehler gefunden, der Startproblem erklärt. 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

cameli2

Hallo Jörg,
das ging ja flott.
Und so wie es aussieht, funktioniert der Start der DBPlan-Instanzen jetzt ohne manuelles "set inactiv" bzw. "set activ".
Um sicher zu gehen, habe ich nicht nur FHEM neu gestartet sondern auch den RasPi komplett runtergefahren und neu gestartet.
Beide Male haben meine beiden DBPlan-Instanzen sofort losgelegt.
Super.
Kannst Du mir kurz erklären, woran es gelegen hat?
Mich wundert es, dass die meisten anderen Nutzer des DBPlan-Moduls dieses Problem offensichtlich nicht hatten.

Nochmals Danke für die schnelle Hilfe.
Gruß,
HaJü

JoWiemann

Hallo HaJü,

das Problem trat nur auf, wenn das Attribut disabled gesetzt worden ist.


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

cameli2

Hallo Jörg,
ich muss mich doch nochmal melden.
Mit Deinem letzten Update funktionieren die erwähnten Punkte (bis auf die Möglichkeit des "negativen" Time-Offsets) augenscheinlich gut.
Allerdings scheint da noch ein kleiner Bug mit reingerutscht zu sein, denn seit dem Update läuft mir das Log-File mit folgendem Hinweis voll:
2017.02.06 20:40:58 1: PERL WARNING: Argument "none" isn't numeric in numeric eq (==) at (eval 63989) line 1.
Es sieht so aus, als wenn Du auch einen Default-Wert für das Delay-Reading eingebaut hast ("none").
Könnte es sein, das der Vergleichsoperatur da drüber stolpert (Perl scheint ja für Strings und Zahlen unterschiedliche Vergleichsoperatoren einzusetzen)?

Gruß,
HaJü

JoWiemann

Hallo HaJü,

sorry, bin erst heute wieder dazu gekommen. Kannst Du mir ein Stacktrace schicken. 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

Kusselin

Hi Zusammen,

ich probiere gerade das DBPlan Modul bei mir einzubinden.Klappt aber net so ganz...

habe erstmal über die github seite das Modul geladen mit:
update all https://raw.githubusercontent.com/jowiemann/DBPlan-for-Fhem/master/controls_dbplan.txt

Dann habe ich die 98_DBPlan.pm datei in /opt/fhem/FHEM komplett reinkopiert.

dann habe ich in der Kommandozeile folgendes Definiert:
define Bahn_OEG_Hirschberg DBPlan 300

dann kommt folgendes Bild mit Iternals:
BASE_TYPE

plan
CFGFN

DEF
300
Interval

300
NAME

Bahn_Kronenplatz
NR

143
PLAN_URL

http://reiseauskunft.bahn.de/bin/query.exe/dox?S=departure&Z=destination&start=1&rt=1
STATE

???
TABLE_URL

http://reiseauskunft.bahn.de/bin/bhftafel.exe/dox?&input=station&start=1&rt=1
TRIGGERTIME

1487502989.2088
TRIGGERTIME_FMT

2017-02-19 12:16:29
TYPE

DBPlan
Time_Offset

0
state

defined


da stimmt was nicht..:-(

Künntet Ihr mir hier helfen bitte.

danke Euch
Gruss

Markus

cameli2

Hallo Jörg,
sorry für die späte Rückmeldung; habe länger nicht ins Forum geschaut  :-[

Anbei der gewünschte Stacktrace.
Da sich das Ganze wiederholt, habe ich das Logfile auf die entsprechende Passage reduziert.
Ich hoffe, das ist ausreichend.
Falls nicht, einfach bitte nochmal nachhaken.

Gruß,
HaJü

Kusselin


Amenophis86

Zitat von: Kusselin am 20 Februar 2017, 08:28:45
keiner hier der mir helfen kann?

Nur Ruhig, nicht jeder ist jeden Tag hier und kann sofort helfen.

1. Hast du mal hier geschaut: https://wiki.fhem.de/wiki/DBPlan
2. Hast du entsprechende Attribute bezüglich der Abfahrt und/oder Ankunft etc gesetzt? Sieht nämlich nicht so aus.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Kusselin

O.K. danke..ja nicht jeder tag ist gleich.

Nachdem ich
define <Name> DBPlan <Interval for refresh in seconds> [time offset in minutes]

wird das immer mit ??? angezeigt....
2 posts weiter oben habe ich ja das Ergebnis gepostet....

benötige ich denn unbedingt die _98.pm dateien???
gruss