Modul 98_Departure: Bereitstellung von Abfahrtszeiten an einem Bahnhof

Begonnen von uniqueck, 01 November 2016, 22:56:37

Vorheriges Thema - Nächstes Thema

uniqueck

Hallo,

neben dem Modul 98_DBPlan gibt es jetzt ein Modul, welches sich eher mit den Abfahrtszeiten an einem Bahnhof beschäftigt, des Weiteren ist die Quelle der Daten eine andere, also in dem Modul 98_DBPlan.

Diese Modul stellt readings für die nächsten Abfahrten an einem Bahnhof bereit.


define myDeparture Departure 60
attr myDeparture depature_provider Kvv
attr myDeparture departure_departure 7001553


Folgende Readings werden für oben genannte Konfiguration vom Modul bereitgestellt und im 60 Sekunden Intervall aktualisiert.


Internals:
   BASE_URL   http://transportrest-sbiermann.rhcloud.com
   DEF        60
   Interval   60
   NAME       myDeparture
   NR         20
   STATE      active
   TRIGGERTIME 1478036961.21755
   TRIGGERTIME_FMT 2016-11-01 22:49:21
   TYPE       Departure
   Readings:
     2016-11-01 22:48:22   departure_0_delay 0
     2016-11-01 22:48:22   departure_0_text S4 Karlsruhe Hbf
     2016-11-01 22:48:22   departure_0_time 2016-11-01T22:57+0100
     2016-11-01 22:48:22   departure_0_timeInMinutes 9
     2016-11-01 22:48:22   departure_1_delay 0
     2016-11-01 22:48:22   departure_1_text S4 Heilbronn Pfühlpark
     2016-11-01 22:48:22   departure_1_time 2016-11-01T23:02+0100
     2016-11-01 22:48:22   departure_1_timeInMinutes 14
     2016-11-01 22:48:22   departure_2_delay 0
     2016-11-01 22:48:22   departure_2_text S4 Bretten Gölshausen
     2016-11-01 22:48:22   departure_2_time 2016-11-01T23:42+0100
     2016-11-01 22:48:22   departure_2_timeInMinutes 54
     2016-11-01 22:48:22   departure_3_delay 0
     2016-11-01 22:48:22   departure_3_text S4 Karlsruhe Hbf
     2016-11-01 22:48:22   departure_3_time 2016-11-02T00:16+0100
     2016-11-01 22:48:22   departure_3_timeInMinutes 88
     2016-11-01 22:48:22   departure_4_delay 0
     2016-11-01 22:48:22   departure_4_text S4 Öhringen
     2016-11-01 22:48:22   departure_4_time 2016-11-02T00:22+0100
     2016-11-01 22:48:22   departure_4_timeInMinutes 94
     2016-11-01 22:48:22   departure_5_delay 0
     2016-11-01 22:48:22   departure_5_text S4 Eppingen
     2016-11-01 22:48:22   departure_5_time 2016-11-02T00:42+0100
     2016-11-01 22:48:22   departure_5_timeInMinutes 114
     2016-11-01 22:48:22   departure_6_delay 0
     2016-11-01 22:48:22   departure_6_text S4 Karlsruhe Hbf
     2016-11-01 22:48:22   departure_6_time 2016-11-02T01:18+0100
     2016-11-01 22:48:22   departure_6_timeInMinutes 150
     2016-11-01 22:48:22   departure_7_delay 0
     2016-11-01 22:48:22   departure_7_text S4 Eppingen
     2016-11-01 22:48:22   departure_7_time 2016-11-02T01:42+0100
     2016-11-01 22:48:22   departure_7_timeInMinutes 174
     2016-11-01 22:48:22   departure_8_delay 0
     2016-11-01 22:48:22   departure_8_text Gölshausen
     2016-11-01 22:48:22   departure_8_time 2016-11-02T02:52+0100
     2016-11-01 22:48:22   departure_8_timeInMinutes 244
     2016-11-01 22:48:22   departure_9_delay 0
     2016-11-01 22:48:22   departure_9_text S4 Karlsruhe Hbf
     2016-11-01 22:48:22   departure_9_time 2016-11-02T04:46+0100
     2016-11-01 22:48:22   departure_9_timeInMinutes 358
Attributes:
   departure_departure 7001553
   departure_provider Kvv


Des Weiteren wird durch das Modul die Zeit berechnet, bis wann man das Haus / die Wohnung verlassen muss, um die Bahn noch zu bekommen.
Dazu muss folgendes Attribute hinterlegt werden.


attr myDeparture departure_time_to_go_to_station 10


Hier durch wird ein weiteres Reading bereitgestellt:


Internals:
   BASE_URL   http://transportrest-sbiermann.rhcloud.com
   DEF        60
   Interval   60
   NAME       myDeparture
   NR         20
   STATE      active
   TRIGGERTIME 1478037141.21927
   TRIGGERTIME_FMT 2016-11-01 22:52:21
   TYPE       Departure
   Readings:
     2016-11-01 22:51:22   departure_0_delay 0
     2016-11-01 22:51:22   departure_0_text S4 Karlsruhe Hbf
     2016-11-01 22:51:22   departure_0_time 2016-11-01T22:57+0100
     2016-11-01 22:51:22   departure_0_time2Go -4
     2016-11-01 22:51:22   departure_0_timeInMinutes 6
     2016-11-01 22:51:22   departure_1_delay 0
     2016-11-01 22:51:22   departure_1_text S4 Heilbronn Pfühlpark
     2016-11-01 22:51:22   departure_1_time 2016-11-01T23:02+0100
     2016-11-01 22:51:22   departure_1_time2Go 1
     2016-11-01 22:51:22   departure_1_timeInMinutes 11
     2016-11-01 22:51:22   departure_2_delay 0
     2016-11-01 22:51:22   departure_2_text S4 Bretten Gölshausen
     2016-11-01 22:51:22   departure_2_time 2016-11-01T23:42+0100
     2016-11-01 22:51:22   departure_2_time2Go 41
     2016-11-01 22:51:22   departure_2_timeInMinutes 51
     2016-11-01 22:51:22   departure_3_delay 0
     2016-11-01 22:51:22   departure_3_text S4 Karlsruhe Hbf
     2016-11-01 22:51:22   departure_3_time 2016-11-02T00:16+0100
     2016-11-01 22:51:22   departure_3_time2Go 75
     2016-11-01 22:51:22   departure_3_timeInMinutes 85
     2016-11-01 22:51:22   departure_4_delay 0
     2016-11-01 22:51:22   departure_4_text S4 Öhringen
     2016-11-01 22:51:22   departure_4_time 2016-11-02T00:22+0100
     2016-11-01 22:51:22   departure_4_time2Go 81
     2016-11-01 22:51:22   departure_4_timeInMinutes 91
     2016-11-01 22:51:22   departure_5_delay 0
     2016-11-01 22:51:22   departure_5_text S4 Eppingen
     2016-11-01 22:51:22   departure_5_time 2016-11-02T00:42+0100
     2016-11-01 22:51:22   departure_5_time2Go 101
     2016-11-01 22:51:22   departure_5_timeInMinutes 111
     2016-11-01 22:51:22   departure_6_delay 0
     2016-11-01 22:51:22   departure_6_text S4 Karlsruhe Hbf
     2016-11-01 22:51:22   departure_6_time 2016-11-02T01:18+0100
     2016-11-01 22:51:22   departure_6_time2Go 137
     2016-11-01 22:51:22   departure_6_timeInMinutes 147
     2016-11-01 22:51:22   departure_7_delay 0
     2016-11-01 22:51:22   departure_7_text S4 Eppingen
     2016-11-01 22:51:22   departure_7_time 2016-11-02T01:42+0100
     2016-11-01 22:51:22   departure_7_time2Go 161
     2016-11-01 22:51:22   departure_7_timeInMinutes 171
     2016-11-01 22:51:22   departure_8_delay 0
     2016-11-01 22:51:22   departure_8_text Gölshausen
     2016-11-01 22:51:22   departure_8_time 2016-11-02T02:52+0100
     2016-11-01 22:51:22   departure_8_time2Go 231
     2016-11-01 22:51:22   departure_8_timeInMinutes 241
     2016-11-01 22:51:22   departure_9_delay 0
     2016-11-01 22:51:22   departure_9_text S4 Karlsruhe Hbf
     2016-11-01 22:51:22   departure_9_time 2016-11-02T04:46+0100
     2016-11-01 22:51:22   departure_9_time2Go 345
     2016-11-01 22:51:22   departure_9_timeInMinutes 355
Attributes:
   departure_departure 7001553
   departure_provider Kvv
   departure_time_to_go_to_station 10


So das erstmal vorne weg, dass Modul ist aktuell noch nicht mit Doku versehen, daher einfach etwas rumprobieren und Rückmeldung geben.
Des Weiteren befindet es sich noch im Alpha Stadium, dass heißt ich werde demnächst noch die attr etwas anpassen, bzw. noch neue Funktionalitäten hinzufügen.

Installiert kann das Modul wie folgt.


update all https://raw.githubusercontent.com/uniqueck/fhem-departure/develop/controls_fhemdeparture.txt


Die Daten kommen vom REST Service von sbiermann. Dieser wird auch über ein HTTPMOD aktuell in der FTUI für das Departure Widget genutzt.

Gruß Constantin

hillbicks

Das mit dem "wann" muss ich das Haus verlassen finde ich sehr gut.

Mehr eine organisatorische Frage, aber macht es nicht mehr Sinn mehr die beiden Module zu buendeln? arrival kann ja auch nur ein attr sein und das DB Modul ist nachwievor nicht im Repo von fhem vorhanden.

Man muss das Rad ja nicht neu erfinden :)

Just my 2 cents.

uniqueck

Zitat von: hillbicks am 02 November 2016, 08:43:50
Das mit dem "wann" muss ich das Haus verlassen finde ich sehr gut.

Mehr eine organisatorische Frage, aber macht es nicht mehr Sinn mehr die beiden Module zu buendeln? arrival kann ja auch nur ein attr sein und das DB Modul ist nachwievor nicht im Repo von fhem vorhanden.

Man muss das Rad ja nicht neu erfinden :)

Just my 2 cents.
Ja das Thema muss ich noch angehen, und mit dem Modulautor von DBPlan abstimmen. Wobei es aber hier unterschiedliche Datenquellen sind und daher der Name von DBPlan schon etwas verwirrend sein kann.
Des Weiteren wollte ich natürlich erst einmal das Modul soweit stabilisieren dass es auch Sinn macht es in DBPlan zu integrieren oder auch andersrum. Des Weiteren bin ich noch auf Ideensuche bzgl. dem Thema wann muss ich losgehen, soll eine Verspätung der Bahn, mit in die Zeit eingerechnet werden und soweiter.

Gruß Constantin

Gesendet von meinem ONEPLUS A3003 mit Tapatalk


devo

Hallo Constantin,

dein neues Modul finde ich sehr interessant. Bitte beschränke dich dabei aber nicht nur auf DB (Bahnhof). Ich würde das Modul gerne für die Abfahrtszeiten meiner Straßenbahnhaltestelle einsetzen. Wenn  möglich das Modul also für öffentliche Verkehrsmittel entwickeln.

JoWiemann

Also ich weiß nicht, ob ihr es wisst. Aber dbPlan kann auch eine Bahnhofsanzeige, also nur Abfahrpläne oder Ankunftspläne generieren. Habe ich vor einiger Zeit auch im Thread zu dpPlan beschrieben. Geht für alle Haltestellen die von der DB Seite unterstützt werden.


Gesendet von iPad 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

uniqueck

Zitat von: JoWiemann am 03 November 2016, 10:54:14
Also ich weiß nicht, ob ihr es wisst. Aber dbPlan kann auch eine Bahnhofsanzeige, also nur Abfahrpläne oder Ankunftspläne generieren. Habe ich vor einiger Zeit auch im Thread zu dpPlan beschrieben. Geht für alle Haltestellen die von der DB Seite unterstützt werden.


Gesendet von iPad mit Tapatalk
Hi,
dann wäre es aber auch schön das ins Wiki mitaufzunehmen.
Wie gesagt ich das ja damals schon mal vorgeschlagen und da hattest du es abgelehnt.

Daher dieser Vorschlag für ein Modul welches auf einer anderen Datenquelle beruht.

Gruß Constantin

Gesendet von meinem ONEPLUS A3003 mit Tapatalk


sbiermann

Hoi,
kurz zum Background der "neuen" Datenquelle. Diese Datenquelle basiert auf einen REST-Wrapper (von meinen Kollegen und mir) des public-transport-enabler (https://github.com/schildbach/public-transport-enabler) von Andreas Schildbach. Wem letzteres nichts sagt, das ist ein Projekt um möglichst viele verschiedene Public Transport Anbieter wie die Bahn, SBB, KVV, MVB, usw. mittels eines einheitlichen Interfaces anzusprechen und deren Daten über Verbindungen, Abfahrtszeiten usw. abzufragen. Genutzt wird das in der ziemlich populären Android App "Öffi" (https://oeffi.schildbach.de/index_de.html).
Der Vorteil dieser Datenquelle ist, man hat ein einheitliches Muster um verschiedene Datentöpfe anzusprechen. Sprich man muss sich nicht damit herumärgern wie man die DB Seite parst um deren Daten zu extrahieren oder bei seinen lokalen Nahverkehrsunternehmen wie hier in Freiburg zum Beispiel die VAG. Somit kann man auch mehr Verbindungen abfragen als die Bahn kennt.

Viele Grüße
Stefan

uniqueck

Huhu,

so neue version steht zum Testen bereit, hierbei habe ich erstmal nur die Anpassung bzgl. der Anpassung im Service integriert.

@sbiermann: wir sollten uns dann mal in Bezug auf die Unterstützung von bestimmten Features in deinem Service unterhalten. Also gerade die Information wie lange brauche ich zur Station / Bahnhof.

Hier ist es ja schon möglich einen optionalen Parameter mitzugeben, so dass ich die Menge der nächsten departures begrenzen kann, wenn ich allerdings die Laufzeit mit reinrechnen würde, kann es ja sein, dass ich eine bestimmte Bahn gar nicht mehr erreichen kann, daher würde ich diese Abfahrt dann gar nicht mehr zurückgeben wollen, aber dafür das nächste, biss ich ggf. das Limit erreicht habe.

Soll ich hierfür wieder einen Vorschlag ausarbeiten und dir dann wieder PR schicken?

Gruß Constantin

Frosch

Hallo,

dieses Modul ist exakt genau das wonach ich gesucht habe. Danke schonmal dafür :)

Meine Idee ist, dass ich mir ein Tablet an die Haustür hänge, auf dem ein Countdown runterzählt, der mir anzeigt wann ich losgehen muss. Dafür wird auf die aktuelle Abfahrtszeit die Laufzeit gerechnet und immer wenn der Countdown bei Null angekommen ist sollte man los. Danach zählt er wieder neu runter, usw. Hat sich schon mal generell jemand mit der Integration von depature in die TabletUI beschäftigt?

Das Modul läuft soweit ganz gut, bis auf das es irgendwann nicht mehr die Daten aktualisiert. Ich habe noch nicht erkennen können ob es immer zu einem bestimmten Ereignis ist. Wenn ich auf "set depature update" klicke läuft es wieder ganz normal. Ich beobachte das mal weiter.

Gruß Mathias

uniqueck



Zitat von: FroggyFrog am 22 November 2016, 21:57:07
Hallo,

dieses Modul ist exakt genau das wonach ich gesucht habe. Danke schonmal dafür :)

Meine Idee ist, dass ich mir ein Tablet an die Haustür hänge, auf dem ein Countdown runterzählt, der mir anzeigt wann ich losgehen muss. Dafür wird auf die aktuelle Abfahrtszeit die Laufzeit gerechnet und immer wenn der Countdown bei Null angekommen ist sollte man los. Danach zählt er wieder neu runter, usw. Hat sich schon mal generell jemand mit der Integration von depature in die TabletUI beschäftigt?

Das Modul läuft soweit ganz gut, bis auf das es irgendwann nicht mehr die Daten aktualisiert. Ich habe noch nicht erkennen können ob es immer zu einem bestimmten Ereignis ist. Wenn ich auf "set depature update" klicke läuft es wieder ganz normal. Ich beobachte das mal weiter.

Gruß Mathias

Vielen Dank für die Rückmeldung. Ich bin noch nicht ganz fertig. Wenn es irgendwann nicht mehr aktualisiert schicke mir mal bitte ein list des Moduls.

Gruß Constantin

Gesendet von meinem ONEPLUS A3003 mit Tapatalk


slupus

Bevor ich diesen Beitrag gesehen habe, hatte ich schon begonnen, eine Wiki Seite für den Ursprünglichen Beitrag zu schreiben.
Ich bin gespannt wie die Entwicklung des Modul weiter geht. Für mich wäre die Möglichkeit interessant, nur bestimmte Linien einer Haltestelle anzuzeigen, sozusagen ein Filter.

Departure
FHEM Tablet UI - Departure
Neues FTUI Widget - Departure

uniqueck

Filter klingt gut. Werde ich implementieren. Gruß und einen schönen ersten Advent.

Ich werde das Modul nicht offiziell in das svn einchecken, da es ja so auch geht. Aber du hast recht es ist noch in der Entwicklung, da es aktuell nur den Strang develop gibt.

Gruß Constantin

Gesendet von meinem ONEPLUS A3003 mit Tapatalk


ralfix

Daten aus dem Öffi-Backend.
Das ist doch genau das, was auf meinem Tür-Display nach fehlt. :)

ralfix

Die Liniennummer fehlt noch in den Readings.
http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=12288&provider=Nasa  liefert z.b.:
"[["10","Wahren","1"],["4",   
Die erste Ziffer "10" ist die Linie. Wäre ganz nützlich zum Filtern.

uniqueck

Hi,
Reading für die Nummer der Linie ist eingebaut.

Bitte per update ziehen.

Gruß Constantin

Gesendet von meinem ONEPLUS A3003 mit Tapatalk