Neues FTUI Widget - Departure

Begonnen von setstate, 27 Januar 2016, 15:51:08

Vorheriges Thema - Nächstes Thema

kalle86

Zitat von: sbiermann am 05 Dezember 2018, 21:25:17
Als Lösung bleibt Euch also die Umstellung auf http anstelle von https oder euren FHEM Rechner auf ein aktuelles Betriebsystem zu bringen welches die aktuellen Sicherheitsstandards für https unterstützt.
Kann mich da auch nur anschließen. Vielen Dank, es funktioniert wieder  ;D

Gruß
Kalle

sinus61

Zitat von: namor am 07 Dezember 2018, 18:00:43
Man muss die alternative URL hinter dem Intervall angeben.

Ok, ich hatte die Adresse im Modul selber geändert.

GoldenAmerican

Servus zusammen,

habe das selbe Problem wie Marsupilami, dass die Anzeige im FTUI leer ist (nur die "Haltestelle" - Überschrift ist da, mit dem Icon davor). In der fhem-Oberfläche zeigt mir das Widget jedoch alles an (die nächsten 10 Abfahrten).

Kann uns da jemand helfen?

Danke Ralf


sbiermann

Hallo zusammen,
bei wem funktioniert die https URL nicht und er muss auf http gehen anstelle von https? Ich würde nämlich die HTTP Verbindung langsam mal abschalten wollen und nur noch HTTPS erlauben.

Ich hätte als Abschaltdatum den 31.01.2020 genommen, wenn bis dato keine Änderungswünsche kommen.

Bei HTTPS habe ich noch ein paar schwache Ciphern raus geworfen so das ältere Browser, sehr alte Browser, nicht mehr funktionieren.

Viele Grüße
Stefan

viegener

Bei mir funktioniert https seit heute wieder (ich hatte allerdings vorher ein internal server error und kein https/http-Problem).

Ich habe festgestellt, dass die Bahn inzwischen auch Verspätungsinformationen liefert (auch für Strasenbahnen/Busse - zumindest im Bereich des RMV im Bereich Rhein-Main). Deshalb habe ich ein httpmod gebaut, dass die Daten von der Bahn ausliest und per Regex in JSON umgewandelt.

Mit einer Modifikation im widget-departure lassen sich auch die Verspätungen anzeigen. Sollte es Interesse geben, kann ich die Infos auch hier posten.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

australien

Zitat von: viegener am 06 Januar 2020, 13:50:38
Bei mir funktioniert https seit heute wieder (ich hatte allerdings vorher ein internal server error und kein https/http-Problem).

Ich habe festgestellt, dass die Bahn inzwischen auch Verspätungsinformationen liefert (auch für Strasenbahnen/Busse - zumindest im Bereich des RMV im Bereich Rhein-Main). Deshalb habe ich ein httpmod gebaut, dass die Daten von der Bahn ausliest und per Regex in JSON umgewandelt.

Mit einer Modifikation im widget-departure lassen sich auch die Verspätungen anzeigen. Sollte es Interesse geben, kann ich die Infos auch hier posten.

Gerne, vielleicht geht das bei oebb auch.
raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"

sbiermann

Das es die letzten Tage nicht ging lag am Service selber. Keine Ahnung wieso sich das aufgehängt hat. Jetzt läuft er wieder und ich habe noch ein uptime Monitoring eingerichtet. Damit müsste ich es eher mit bekommen wenn es wieder nicht mehr geht.

MichaelT

Danke,
bei mir funktioniert's (https) auch wieder.

Gruß
Michael
Großes Mischmasch aus HM, Philips, WLAN und Eigenprojekte.
ABER alles mit FHEM.

viegener

Zitat von: viegener am 06 Januar 2020, 13:50:38
Bei mir funktioniert https seit heute wieder (ich hatte allerdings vorher ein internal server error und kein https/http-Problem).

Ich habe festgestellt, dass die Bahn inzwischen auch Verspätungsinformationen liefert (auch für Strasenbahnen/Busse - zumindest im Bereich des RMV im Bereich Rhein-Main). Deshalb habe ich ein httpmod gebaut, dass die Daten von der Bahn ausliest und per Regex in JSON umgewandelt.

Mit einer Modifikation im widget-departure lassen sich auch die Verspätungen anzeigen. Sollte es Interesse geben, kann ich die Infos auch hier posten.


Also kurze Anleitung hierfür:

1) Herausfinden der ID für den Bahnhof

z.B. über folgenden Link: https://reiseauskunft.bahn.de//bin/bhftafel.exe/dn?La=vs_java&start=yes&boardType=dep&time=actual im Browser
a) Dort im Feld "Bahnhof/Haltestelle" den richtigen Bahnhof über auto vervollständigen auswählen
b) Weiter clicken man eine Anzeige der Abfahrtszeiten hat (u.U. muss man noch Bus etc) auswählen
c) Dann noch einmal den Link früher auswählen
d) Der aktuelle URL im Browser sieht dann z.B. so aus (für den Bahnhof Merck-Stadion, Darmstadt)
https://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?ld=4392&protocol=https:&rt=1&input=Merck-Stadion,%20Darmstadt%23124661&boardType=dep&time=18:30%2D60&productsFilter=111111111&&&date=06.01.20&selectDate=&maxJourneys=&start=yes
e) In diesem URL findet sich ein Teil input=<name>%23<id>& - die Ziffern nach %23 sind die ID - also hier 124661

2) Daraus baut man ein HTTPMOD device wie dieses hier:

define departureTest HTTPMOD 
https://reiseauskunft.bahn.de//bin/bhftafel.exe/dn?L=vs_java2&start=yes&boardType=dep&time=actual&input=124661

Natürlich mit der eigenen ID von oben.

3) Dem HTTPMod-device sollte man noch einige Attribute hinzufügen (hier in der Form, dass die Zeilen einzeln in fhem Kommandozeile eingetragen werden können per copy paste (also ; sind bereits verdoppelt !):

attr departureTest enableControlSet 1
attr departureTest showMatched 1
attr departureTest reading01Name info
attr departureTest reading01Regex ^[0-9]+ [^;;]*(;;.*)$
attr departureTest reading01RegOpt m
attr departureTest reading01OExpr (sub($) { my ($v) = @_;; my $vo = $v;; use HTML::Entities;; $v = Encode::encode_utf8(decode_entities($v));; $v =~ s/;;([^|]+)\|([^|]+)\|\|([^|]+)\|([^|]+)\|([^|]+)\|/[\"$5\",\"$4\",\"$1\",\"$2\"],/g ;; $v =~ s/\s+/ /g  ;; $v =~ s/,;;$// ;; return "[".$v."]" })->($val);;


Im Prinzip sollte dann bereits alles konfiguriert sein. Am besten überprüft man das in dem man einmal set ... reread auf dem Device aufruft. Kurz danach sollte ein Reading namens info verfügbar sein und in MATCHED_READINGS sollte auch "info" stehen.





Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

sbiermann

Du nutzt den Service der Bahn direkt, nicht die REST-Schnittstelle die ich bereit gestellt habe. Die Daten die über die REST-Schnittstelle kommen enthalten bereits die Verspätungen inklusive. Sprich z.B. https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=6930306 liefert:
[["1","Landwasser","5"],["1","Littenweiler","7"],["1","Landwasser","15"],["1","Littenweiler","17"],["1","Landwasser","25"],["1","Littenweiler","27"],["1","Runzmattenweg","35"],["1","Littenweiler","42"],["1","Landwasser","45"],["1","Littenweiler","57"]]
Die erste Ziffer entspricht der Nummer der Linie und der zweite Wert den Namen der Richtung und der dritte Wert die Zeit bis zur Abfahrt an der Haltestelle. Dieser letzte Wert enthält bereits die aktuelle Verspätung.

viegener

Zitat von: sbiermann am 06 Januar 2020, 19:57:12
Du nutzt den Service der Bahn direkt, nicht die REST-Schnittstelle die ich bereit gestellt habe. Die Daten die über die REST-Schnittstelle kommen enthalten bereits die Verspätungen inklusive. Sprich z.B. https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=6930306 liefert:
[["1","Landwasser","5"],["1","Littenweiler","7"],["1","Landwasser","15"],["1","Littenweiler","17"],["1","Landwasser","25"],["1","Littenweiler","27"],["1","Runzmattenweg","35"],["1","Littenweiler","42"],["1","Landwasser","45"],["1","Littenweiler","57"]]
Die erste Ziffer entspricht der Nummer der Linie und der zweite Wert den Namen der Richtung und der dritte Wert die Zeit bis zur Abfahrt an der Haltestelle. Dieser letzte Wert enthält bereits die aktuelle Verspätung.

Ja, dass ich die Bahndaten direkt benutze war mir schon klar  ;)  Was mir nicht klar war, dass die Daten über Deinen Restservice die Verspätungsinformation enthalten. Vermutlich ist das eine persönliche Vorliener, aber die getrennte Information über geplante Abfahrtszeit und Verspätung ist für mich interessant, da

1) Verspätungen auch Informationen enthalten (bei der Bahn als Beispiel sind Züge mit 90 min Verspätung gerne mal Ausfallkandidaten / ähnliche Fälle kenne ich im Busverkehr)
2) Verspätungen ja dynamisch sind und zumindest in Darmstadt auch regelmässig abnehmen und dann kann man die Strassenbahn gelegentlich nur noch abfahren sehen...
3) Manche verkehrsverbünde (meines Wissens nach z.B. der KVV) keine Verspätungsinformationen austauschen

Vielleicht kann man das ja auch im Restservice etablieren?

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

sbiermann

#281
Sowas ist bereits enthalten, die REST-API hat verschiedene Endpunkte (die ich mal besser dokumentieren sollte..).
Siehe: https://transport.stefan-biermann.de/publictransportapi/rest/departure?from=6930306
[{"departureDelay":1,"departureTime":"2020-01-07T16:06+0100","departureTimeInMinutes":1,"departureTimestamp":1578409560000,"number":"1","product":"TRAM","to":"Littenweiler"},{"departureDelay":0,"departureTime":"2020-01-07T16:05+0100","departureTimeInMinutes":0,"departureTimestamp":1578409500000,"number":"1","product":"TRAM","to":"Landwasser"},{"departureDelay":0,"departureTime":"2020-01-07T16:11+0100","departureTimeInMinutes":6,"departureTimestamp":1578409860000,"number":"1","product":"TRAM","to":"Littenweiler"},{"departureDelay":0,"departureTime":"2020-01-07T16:11+0100","departureTimeInMinutes":6,"departureTimestamp":1578409860000,"number":"1","product":"TRAM","to":"Landwasser"},{"departureDelay":0,"departureTime":"2020-01-07T16:17+0100","departureTimeInMinutes":12,"departureTimestamp":1578410220000,"number":"1","product":"TRAM","to":"Littenweiler"},{"departureDelay":0,"departureTime":"2020-01-07T16:17+0100","departureTimeInMinutes":12,"departureTimestamp":1578410220000,"number":"1","product":"TRAM","to":"Landwasser"},{"departureDelay":0,"departureTime":"2020-01-07T16:23+0100","departureTimeInMinutes":18,"departureTimestamp":1578410580000,"number":"1","product":"TRAM","to":"Landwasser"},{"departureDelay":0,"departureTime":"2020-01-07T16:23+0100","departureTimeInMinutes":18,"departureTimestamp":1578410580000,"number":"1","product":"TRAM","to":"Littenweiler"},{"departureDelay":0,"departureTime":"2020-01-07T16:29+0100","departureTimeInMinutes":24,"departureTimestamp":1578410940000,"number":"1","product":"TRAM","to":"Littenweiler"},{"departureDelay":0,"departureTime":"2020-01-07T16:29+0100","departureTimeInMinutes":24,"departureTimestamp":1578410940000,"number":"1","product":"TRAM","to":"Landwasser"}]

Die andere URL ist extra für das departure Widget gemacht... Diese hier genannte ist universeller.

Die Verspätungen sind wirklich abhängig vom Anbieter. Soweit ich das bisher gesehen habe bieten mittlerweile die meisten Verkehrsbetriebe diese Information an.

viegener

Zitat von: sbiermann am 07 Januar 2020, 16:07:21
Sowas ist bereits enthalten, die REST-API hat verschiedene Endpunkte (die ich mal besser dokumentieren sollte..).
Siehe: https://transport.stefan-biermann.de/publictransportapi/rest/departure?from=6930306
[{"departureDelay":1,"departureTime":"2020-01-07T16:06+0100","departureTimeInMinutes":1,"departureTimestamp":1578409560000,"number":"1","product":"TRAM","to":"Littenweiler"},{"departureDelay":0,"departureTime":"2020-01-07T16:05+0100","departureTimeInMinutes":0,"departureTimestamp":1578409500000,"number":"1","product":"TRAM","to":"Landwasser"},{"departureDelay":0,"departureTime":"2020-01-07T16:11+0100","departureTimeInMinutes":6,"departureTimestamp":1578409860000,"number":"1","product":"TRAM","to":"Littenweiler"},{"departureDelay":0,"departureTime":"2020-01-07T16:11+0100","departureTimeInMinutes":6,"departureTimestamp":1578409860000,"number":"1","product":"TRAM","to":"Landwasser"},{"departureDelay":0,"departureTime":"2020-01-07T16:17+0100","departureTimeInMinutes":12,"departureTimestamp":1578410220000,"number":"1","product":"TRAM","to":"Littenweiler"},{"departureDelay":0,"departureTime":"2020-01-07T16:17+0100","departureTimeInMinutes":12,"departureTimestamp":1578410220000,"number":"1","product":"TRAM","to":"Landwasser"},{"departureDelay":0,"departureTime":"2020-01-07T16:23+0100","departureTimeInMinutes":18,"departureTimestamp":1578410580000,"number":"1","product":"TRAM","to":"Landwasser"},{"departureDelay":0,"departureTime":"2020-01-07T16:23+0100","departureTimeInMinutes":18,"departureTimestamp":1578410580000,"number":"1","product":"TRAM","to":"Littenweiler"},{"departureDelay":0,"departureTime":"2020-01-07T16:29+0100","departureTimeInMinutes":24,"departureTimestamp":1578410940000,"number":"1","product":"TRAM","to":"Littenweiler"},{"departureDelay":0,"departureTime":"2020-01-07T16:29+0100","departureTimeInMinutes":24,"departureTimestamp":1578410940000,"number":"1","product":"TRAM","to":"Landwasser"}]

Die andere URL ist extra für das departure Widget gemacht... Diese hier genannte ist universeller.

Die Verspätungen sind wirklich abhängig vom Anbieter. Soweit ich das bisher gesehen habe bieten mittlerweile die meisten Verkehrsbetriebe diese Information an.

Ja etwas Dokumentation wäre hilfreich.
Habe den URL mal ausprobiert, aber mit meiner Station id 124661 komme ich auch bei Angabe von "provider=Bahn" nur auf invalid station - einen spezifischen provider für RMV habe ich jetzt auch in der Liste nicht gefunden.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Ulm32b

Auch ich hatte zum Jahreswechsel ein wenig mit HTTPMOD über die Bahnanfrage experimentiert (weil, zumindest bei mir, die REST-Schnittstelle eine Zeitlang nicht mehr funktionierte). Dabei stellte ich fest, dass die in https://wiki.fhem.de/wiki/Departure genannte Regex leicht angepasst werden musste. Anscheinend gibt es da öfter mal Änderungen. Da ist die Datenquelle ,,Biermann" weit überlegen.

Und jetzt kommt natürlich gleich ein Feature-Wunsch: Es wäre sehr praktisch, wenn bei der Abfrage noch über ,,number", ,,product", ,,to" gefiltert werden könnte. Z.B. interessiert mich an einer Haltestelle nur die Abfahrt der Tram, Busse möchte ich in departure nicht sehen. Oder ich schließe die Fahrtziele in der falschen Richtung aus (besser als die ,,richtigen" Fahrtziele anzugeben, denn bei Änderungen dieser Ziele, z.B. bei Baumaßnahmen, würde man sich selbst ein Bein stellen).
Wenn das ginge (über Regex), würde ich auch gerne die Doku des Widgets departure entsprechend erweitern.

knopf_piano

#284
du kannst die verkehrsmittel über die bitmaske ändern, zusätzlich kannst du der url "dirInput" als Ziel mitgeben. mehr hier:

https://christoph-stoeber.de/bahnprojekt/dokumentation/bahndetafeldoku.php

zotac nano mit proxmox und ganz viel zeug drauf