Departure ist ein für die Auskunft der VVO/DVB optimiertes Widgets zur Anzeige der Abfahrtszeiten von Bahn, Bus, Zug und Fähre. Das Aussehen ist dem des offiziellen VVO/DVB Widgets nachempfunden.
Beispiel für FTUI
<div data-type="departure"
data-device="VVO"
data-get="Postplatz"
class="DVB">
</div>
Als Quelle dient im FHEM eine HTTPMOD Abfrage:
define VVO HTTPMOD none 0
attr VVO get02Name Postplatz
attr VVO get02URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&hst=Postplatz&vz=0&lim=10
attr VVO getRegex (\[\[.*\]\]).*
attr VVO timeout 30
Update der Daten erfolgt beim Öffnen der Seite und dann per default aller 2 Minuten. Mit data-interval="60" kann man auf 1 Minute erhöhen oder mit data-interval="0" das automatische Update abschalten. Dann kann man nur noch am Widget direkt per Refresh Button aktualisieren.
Das Beispiel aus dem Screenshot habe ich mit folgenden Codezeilen in FTUI bzw. in FHEM erzeugt.
FTUI
<li data-row="5" data-col="1" data-sizex="6" data-sizey="3">
<header>DEPARTURE</header>
<!-- place your widget here -->
<div class="large top-space"> </div>
<div class="col-1-3">
<div data-type="departure" data-device="VVO"
data-get="Hauptstrasse"
data-icon="fa-train"
data-interval="0">
</div>
<div class="medium top-space-2x">Default</div>
</div>
<div class="col-1-3">
<div data-type="departure" data-device="VVO"
data-get="Postplatz"
data-interval="0"
class="DVB">
</div>
<div class="medium top-space-2x">class='DVB'</div>
</div>
<div class="col-1-3">
<div data-type="departure" data-device="VVO"
data-get="Bahnhof-Meissen"
data-interval="0"
class="VVO">
</div>
<div class="medium top-space-2x">class='VVO'</div>
</div>
</li>
FHEM
define VVO HTTPMOD none 0
attr VVO get01Name Hauptstrasse
attr VVO get01URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&hst=Hauptstrasse&vz=0&lim=10
attr VVO get02Name Postplatz
attr VVO get02URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&hst=Postplatz&vz=0&lim=10
attr VVO get03Name Bahnhof-Meissen
attr VVO get03URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Meißen&hst=Bahnhof&vz=0&lim=10
attr VVO getRegex (\[\[.*\]\]).*
attr VVO room Fahrzeiten
attr VVO timeout 30
Eventuell geht das Widget auch für andere Verkehrsbetriebe zu nutzen, wenn deren Web-API auch das gleiche JSON-Array Format ausspuckt bzw. im HTTPMOD kann man mit get01Expr eine Konvertierung einfügen.
widgets.vvo-online.de Output:
Zitat[["6","Wölfnitz","1"],["65","Luga","3"],["65","Blasewitz","4"],["6","Niedersedlitz","4"],["2","Kleinzschachwitz","6"],["2","Gorbitz","8"],["6","Wölfnitz","11"],["65","Heidenau","13"],["6","Niedersedlitz","13"],["65","Blasewitz","14"]]
Sieht doch sehr gut aus!
Ich vermute, Du hast dich ein bissl mit der Technik dahinter beschäftigt... Ich mich erst seit 20 Minuten ;-)
Wie genau greifst Du auf die Daten zu? Läuft das über den JAVA "public-transport-enabler" oder was Proprietäres?
Oh, warum grade DD? Feine Sache :D
Zitat von: tomster am 27 Januar 2016, 16:25:58
Wie genau greifst Du auf die Daten zu? Läuft das über den JAVA "public-transport-enabler" oder was Proprietäres?
?What?
Nö, unsere Verkehrsbetriebe Oberelbe bieten die Web-API, die einfache JSON-Arrays ausspuckt.
http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&hst=Postplatz&vz=0&lim=10 (http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&hst=Postplatz&vz=0&lim=10)
Den Seitenaufruf mache ich im FHEM per HTTPMOD, wie oben im ersten Post beschrieben.
Zitat von: Astrofreak85 am 27 Januar 2016, 16:38:12
Oh, warum grade DD? Feine Sache :D
Siehe mein Profil! ;)
Nun ja, ich hab ein bissl gegoogled wie z.B. der MVV in München dieses Abfrage realisiert hat. Dabei bin ich draufgestossen, dass es wohl eine entsprechende Java-Klasse gibt, die (zumindest um 2010/2012) der Online-Abfrage des MVV zu Grunde liegt. Selbige ist wohl oben genannte und wurde von einer Fa. Mentz entwickelt und nennt sich EFA.
Es scheint jedoch, als gäbe es 2 "Platzhirsche", auf deren APIs die jeweiligen Online-Abfragen basieren.
https://www.administrator.de/wissen/hafas-fahrplanauskunft-api-sammlung-177145.html
Irgendwie gibt es dann noch etwas Namens DELFI http://www.delfi.de/nutzer (Mal auf die Karte rechts klicken), was beide Systeme irgendwie verbindet. Auf deren Seite muss auch irgendwo eine Schnittstellenbeschreibung sein. Könnte vielleicht ein Ansatz sein, um das Widget "deutschlandweit" mit Daten füllen zu lassen...
Alles natürlich ausgesprochen fundiertes Halbwissen, dass ich mir in der letzten Stunde angelesen habe ;-)
Zitat von: setstate am 27 Januar 2016, 15:51:08
Departure ist ein für die Auskunft der VVO/DVB optimiertes Widgets zur Anzeige der Abfahrtszeiten von Bahn, Bus, Zug und Fähre. Das Aussehen ist dem des offiziellen VVO/DVB Widgets
Sehr schön. Auf jeden Fall super Arbeit.
Es wäre evtl.besser gewesen, das widget für 98_DBPlan zu machen und die Abfrage nicht per HTTPMOD sondern per DBPlan.
Dann hätten evtl. mehr Leute was davon.
Vielleicht ist es aber auch mgl. das widget für DBPlan zu erweitern.
Schaut gut aus, mal sehen wie das bei der BVG funktioniert ;)
Zitat von: Risiko am 27 Januar 2016, 19:19:07
Sehr schön. Auf jeden Fall super Arbeit.
Es wäre evtl.besser gewesen, das widget für 98_DBPlan zu machen und die Abfrage nicht per HTTPMOD sondern per DBPlan.
Dann hätten evtl. mehr Leute was davon.
Vielleicht ist es aber auch mgl. das widget für DBPlan zu erweitern.
Das wäre schön aber dazu müsste man erstmal schauen ob diese Art der Information aus DBPlan heraus zubekommen ist. Aktuell muss ja immer Start und Ziel bei DBPlan angegeben werden. Somit muss man sich immer für eine oder mehrer Verbindungen entscheiden und dafür auch ggf. mehrere devices anlegen.
Gruß Constantin
Gesendet von meinem GT-N7100 mit Tapatalk
Für BVG:
<div data-type="departure" data-device="BVG"
data-get="Wilhelmsruher-Damm"
data-interval="0"
data-icon="fa-train"
data-width="380">
</div>
HTTPMOD Definition:
define BVG HTTPMOD none 0
attr BVG get01Expr BvgExpr($val)
attr BVG get01Name Wilhelmsruher-Damm
attr BVG get01Regex Abfahrtsplan([</\w>\n\s=";(:\.!\-+,)?%]*)<\/table>
attr BVG get01URL http://fahrinfo.bvg.de/Fahrinfo/bin/stboard.bin/dox?ld=0.1&input=9096307&boardType=dep&time=&productsFilter=1111111111111111&maxJourneys=10&date=&start=yes
attr BVG timeout 30
99_myUtils.pm Funktion für Expr:
sub
BvgExpr($)
{
my ($all) = @_;
my @time = ($all=~/<td><strong>(\d\d:\d\d)<\/strong><\/td>/g);
my @line = ($all=~/<strong>([^:][\w\d\s]*)<\/strong>/g);
my @dest = ($all=~/>\R([^:][+\.\-,\w\d\s]*)\R<\//g);
my $ret='[';
for my $i (0 .. $#line)
{
$ret=$ret.'["'.$line[$i].'",'.'"'.$dest[$i].'",'.'"'.$time[$i].'"]';
if ($i<$#line) {$ret=$ret.',';}
}
return $ret.']';
}
Hi setstate
danke , aber da hab ich im FTUI keine Daten...
ein get BVG Wilhelmsruher-Damm liefert .....
[["Bus 124","Abf.","17:38"],["Bus 120","Richtung","17:38"],["Bus 122","Buchholz-West, Aubertstr.","17:41"],["Bus 122","S+U Hauptbahnhof","17:42"],["Bus 124","Waidmannslust, Titiseestr.","17:43"],["Bus X33","U Kurt-Schumacher-Platz","17:46"],["Bus 122","S Heiligensee","17:51"],["Bus 122","S+U Rathaus Spandau","17:52"],["Bus 124","Waidmannslust, Titiseestr.","17:53"]]
da scheint hier
attr BVG get01Regex Abfahrtsplan([</\w>\n\s=";(:\.!\-+,)?%]*)<\/table>
was nicht zu passen !
Sieht doch gut aus. Das genau das Format, was das Widget braucht.
Zitat von: setstate am 28 Januar 2016, 18:05:07
Sieht doch gut aus. Das genau das Format, was das Widget braucht.
Man bin ich dooof , man sollte halt das widget - departure auch per update hollen :-[
jetzt klappt es ! ;)
Klaus
/EDIT/
klappt noch nicht ganz mit der formatierung
Abf. und
Richtung sind da falsch und somit verschiebt es da einiges
Hallo setstate
neben den beiden falschen Einträgen (Abf. und Richtung) ist mir noch etwas aufgefallen.
Bei mir ist hier die Abfahrtzeit und nicht die Zeit bis zur Abfahrt zu sehen, wobei ggf. beides sinnvoll wäre.
Das scheint aber eher an der Bereitstellung der Daten zu liegen !
Da muss man noch etwas optimieren an den RegEx'n, um nicht falsche Zeile zu erwischen. Gib mir mal deine Haltestellen ID, dann analysiere ich den Text nochmal.
Zitat von: setstate am 29 Januar 2016, 08:09:59
Da muss man noch etwas optimieren an den RegEx'n, um nicht falsche Zeile zu erwischen. Gib mir mal deine Haltestellen ID, dann analysiere ich den Text nochmal.
Haltestellen ID 9049206
damit sollte es gehen:
get01Regex tbody([</\w>\n\s="(:\.!\-+,)?%]*)<\/table>
Aber zur Warnung: Webseiten mit RegEx parsen ist eine unschöne Frickelei, die heute funktionieren kann und morgen schon nicht mehr. Ein eindeutiges API dafür wäre optimaler ...
Zitat von: setstate am 29 Januar 2016, 09:52:59
damit sollte es gehen:
get01Regex tbody([</\w>\n\s="(:\.!\-+,)?%]*)<\/table>
Aber zur Warnung: Webseiten mit RegEx parsen ist eine unschöne Frickelei, die heute funktionieren kann und morgen schon nicht mehr. Ein eindeutiges API dafür wäre optimaler ...
Ja geht, Danke !
Hallo setstate,
coole Sache !!
Ich hätte es gern etwas größer, aber bei big wird nur die Schrift innerhalb des widget groß.
Die Überschrift und das icon bleiben klein und der Tabellenkopf wird überdeckt.
<div data-type="departure"
data-device="VVO"
data-get="Possendorf"
data-width="400"
data-height="500"
class="DVB big"
</div>
habs etwas für 'big' optimiert
die neue ftui_departure.css ist hochgeladen
Zitat von: setstate am 30 Januar 2016, 01:33:22
habs etwas für 'big' optimiert
die neue ftui_departure.css ist hochgeladen
Bestens, Danke
Übrigens gibt es das von der Bahn auch inklusive der meisten Nahverkehrsunternehmen, sogar inklusive Verspätungen wenn das von dem Unternehmen schon angeboten wird.
http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn
Leider hat die Bahn wohl noch kein API dafür, aber bevor jeder anfängt die Webseiten der lokalen Unternehmen auszuwerten wäre das eine universellere Lösung.
Zitat von: sinus61 am 12 Februar 2016, 17:37:45
Übrigens gibt es das von der Bahn auch inklusive der meisten Nahverkehrsunternehmen, sogar inklusive Verspätungen wenn das von dem Unternehmen schon angeboten wird.
http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn
Leider hat die Bahn wohl noch kein API dafür, aber bevor jeder anfängt die Webseiten der lokalen Unternehmen auszuwerten wäre das eine universellere Lösung.
wird diese Seite auch von 98_DBPlan ausgewertet? Ist 98_DBPlan schon offiziell per Fhem update verfügbar?
Ja und ja
Ist das erste "ja" tatsächlich so? IMHO nutzt das 98_DBPlan eine andere Abfrage bei der man auch eine Ziel-Adresse abgeben muss, während der Link oben alle Abfahrten an einer beliebigen Haltestelle anzeigt.
Zitat von: sinus61 am 12 Februar 2016, 17:37:45
Übrigens gibt es das von der Bahn auch inklusive der meisten Nahverkehrsunternehmen, sogar inklusive Verspätungen wenn das von dem Unternehmen schon angeboten wird.
http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn
Habe es unter dem Livestream einer Bahnhofscam als iframe eingefügt. Das ist klasse.
<li class="halbTransparent" data-row="1" data-col="1" data-sizex="8" data-sizey="6" >
<div align="center"><iframe src="http://pgoedecke.selfhost.eu:60000/index.htm" width="1110" height="525" scrolling="yes" align="top"></iframe></div>
<div align="center"><iframe src="http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?ld=15055&rt=1&input=Rotenburg(W%FCmme)%238000321&boardType=dep&time=actual&productsFilter=11111&start=yes" width="1110" height="250" scrolling="yes" align="top"></iframe></div>
</li>
Hallo zusammen,
in dem Thread tauchte ja schon mal der Begriff "public-transport-enabler" auf. Dies ist eine sehr interessantes Projekt welches eine einheitliche Schnittstelle zu diversen Anbietern von ÖPNV anbietet unter anderem zum Beispiel die DB, BVG, SBB, MVV und viele weitere. Einige von euch kennen sicherlich die Android App "Öffi Fahrplanauskunft" (https://play.google.com/store/apps/details?id=de.schildbach.oeffi&hl=de) diese nutzt den "public-transport-enabler" (ist auch der gleiche Entwickler) um die Kommunikation zwischen App und ÖPNV Providern zu regeln. Mein Kollege hat diese "public-transport-enabler" Anwendung in einen Spring Boot REST-ähnlichen Wrapper gekapselt für ein Projekt mit dem ESP8266. Ich habe das Ganze erweitert um eine Schnittstelle für FHEM, genauer gesagt eine Schnittstelle direkt für dieses Departure Widget. Zusätzlich haben wir beide noch eingebaut das sämtliche im "public-transport-enabler" enthaltenen Provider genutzt werden können.
Dadurch das die Anwendung Spring Boot nutzt kann diese auf jeden Rechner mit Java 8 zum laufen gebracht werden. Alternativ kann man auch die Anwendung in einer Cloud hosten und somit für viele Leute bereit stellen. Ich hab die Anwendung bei Openshift gehostet, der Vorteil es ist dort kostenlos und vollkommen ausreichend, Nachteile sind, das Rechenzentrum liegt irgendwo an der Ostküste der USA (langer Weg für die Daten) und es kann sein das die Anwendung hin und wieder schläft, dann dauern die Requests ein paar Sekunden länger.
So lange Rede kurzer Sinn, wie kann man das Ganze nun mit diesem Departure Widget nutzen? Nachfolgend ein How-To am Beispiel der VAG Freiburg:
1. Ermitteln welche Provider gibt es und welcher ist für mich zuständig.
http://transportrest-sbiermann.rhcloud.com/provider
dieses liefert als Antwort im JSON Format:
[{"name":"Vmv","aClass":"VmvProvider"},{"name":"Vbb","aClass":"VbbProvider"},{"name":"Sf","aClass":"SfProvider"},{"name":"Gvh","aClass":"GvhProvider"},{"name":"Mvg","aClass":"MvgProvider"},{"name":"Oebb","aClass":"OebbProvider"},{"name":"Mersey","aClass":"MerseyProvider"},{"name":"Bvg","aClass":"BvgProvider"},{"name":"Vao","aClass":"VaoProvider"},{"name":"Vagfr","aClass":"VagfrProvider"},{"name":"Paris","aClass":"ParisProvider"},{"name":"Nasa","aClass":"NasaProvider"},{"name":"Linz","aClass":"LinzProvider"},{"name":"Lu","aClass":"LuProvider"},{"name":"Septa","aClass":"SeptaProvider"},{"name":"Vvs","aClass":"VvsProvider"},{"name":"Vvo","aClass":"VvoProvider"},{"name":"Met","aClass":"MetProvider"},{"name":"Nvv","aClass":"NvvProvider"},{"name":"Tfi","aClass":"TfiProvider"},{"name":"Sydney","aClass":"SydneyProvider"},{"name":"Zvv","aClass":"ZvvProvider"},{"name":"Vrr","aClass":"VrrProvider"},{"name":"Ding","aClass":"DingProvider"},{"name":"Nri","aClass":"NriProvider"},{"name":"Nvbw","aClass":"NvbwProvider"},{"name":"Vms","aClass":"VmsProvider"},{"name":"Stockholm","aClass":"StockholmProvider"},{"name":"Rt","aClass":"RtProvider"},{"name":"Se","aClass":"SeProvider"},{"name":"Jet","aClass":"JetProvider"},{"name":"Bsvag","aClass":"BsvagProvider"},{"name":"Bayern","aClass":"BayernProvider"},{"name":"Vbl","aClass":"VblProvider"},{"name":"Tlem","aClass":"TlemProvider"},{"name":"Vor","aClass":"VorProvider"},{"name":"Vgn","aClass":"VgnProvider"},{"name":"Bvb","aClass":"BvbProvider"},{"name":"Svv","aClass":"SvvProvider"},{"name":"Invg","aClass":"InvgProvider"},{"name":"Avv","aClass":"AvvProvider"},{"name":"Vvm","aClass":"VvmProvider"},{"name":"Pl","aClass":"PlProvider"},{"name":"Vvv","aClass":"VvvProvider"},{"name":"Sncb","aClass":"SncbProvider"},{"name":"Sbb","aClass":"SbbProvider"},{"name":"Dub","aClass":"DubProvider"},{"name":"Bahn","aClass":"BahnProvider"},{"name":"Vbn","aClass":"VbnProvider"},{"name":"Vrn","aClass":"VrnProvider"},{"name":"Vrs","aClass":"VrsProvider"},{"name":"Vgs","aClass":"VgsProvider"},{"name":"Wien","aClass":"WienProvider"},{"name":"Italy","aClass":"ItalyProvider"},{"name":"Ns","aClass":"NsProvider"},{"name":"Dsb","aClass":"DsbProvider"},{"name":"Mvv","aClass":"MvvProvider"},{"name":"Sh","aClass":"ShProvider"},{"name":"Kvv","aClass":"KvvProvider"},{"name":"Vvt","aClass":"VvtProvider"},{"name":"Atc","aClass":"AtcProvider"},{"name":"Paca","aClass":"PacaProvider"},{"name":"Eireann","aClass":"EireannProvider"},{"name":"FrenchSouthWest","aClass":"FrenchSouthWestProvider"},{"name":"Stv","aClass":"StvProvider"},{"name":"Ivb","aClass":"IvbProvider"}]
Das was bei Name steht wird verwendet, der Wert aClass ist intern und braucht hier nicht weiter verwendet werden. Im Beispiel hat die VAG Freiburg den Namen "Vagfr".
2. Ermitteln der StationId für die Haltestelle deren Abfahrtszeiten ich gerne haben möchte. In diesem Beispiel die Haltstelle "Maria-Hilf-Kirche".
http://transportrest-sbiermann.rhcloud.com/station/suggest?q=Maria-Hilf-Kirche&provider=Vagfr
dieses liefert als Antwort im JSON Format:
{"header":{"network":"VAGFR","serverProduct":"efa","serverVersion":null,"serverTime":0,"context":null},"status":"OK","locations":[{"type":"STATION","id":"6930306","lat":47988467,"lon":7863890,"place":"Freiburg im Breisgau","name":"Maria-Hilf-Kirche","products":null,"latAsDouble":47.988467,"lonAsDouble":7.86389,"identified":true},{"type":"POI","id":"poiID:4513:8311000:-1:Maria-Hilf-Kirche:Freiburg im Breisgau:Maria-Hilf-Kirche:ANY:POI:3415261:842766:NBWT:B_W","lat":47987611,"lon":7863721,"place":"Freiburg im Breisgau","name":"Maria-Hilf-Kirche","products":null,"latAsDouble":47.987611,"lonAsDouble":7.863721,"identified":true}]}
Wie man sehen kann gibt es mehrere Treffer für Maria-Hilf-Kirche. Es wird aber nur der Typ "STATION" benötigt und somit lautet die StationId "6930306".
3. Abfrage der Departure Zeiten für die Haltestelle "Maria-Hilf-Kirche" im passenden Format für dieses Widget.
http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=6930306&provider=Vagfr
dieses liefert als Antwort im passenden Format:
[["1","Littenweiler","3"],["1","Landwasser","3"],["1","Littenweiler","9"],["1","Landwasser","9"],["1","Littenweiler","15"],["1","Landwasser","15"],["1","Littenweiler","21"],["1","Landwasser","21"],["1","Landwasser","27"],["1","Littenweiler","27"],["1","Littenweiler","33"],["1","Landwasser","33"]]
An der Haltestelle fährt nur eine Line daher ist immer die Linie 1 hier abgebildet in dem Beispiel. Die Zeiten sind immer inklusive Verspätung angegeben, sofern der Provider (die VAG Freiburg tut dies) diese Daten mit sendet.
4. Einbindung in FHEM, siehe erstes Posting und als URL dann die verwenden die in 3. benutzt wird. In meinen Beispiel würde dies dann so aussehen:
define VAG HTTPMOD none 0
attr VAG get02Name Maria-Hilf-Kirche
attr VAG get02URL http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=6930306&provider=Vagfr
attr VAG getRegex (\[\[.*\]\]).*
attr VAG timeout 30
Wer den Code selber zum laufen bringen will, findet auf https://github.com/fewi/vagfr-rest-wrapper den Wrapper mit einer Anleitung wie er das Lokal auf seinen Rechner zum laufen kriegt, bzw. auf einen Server. Ebenso befindet sich dort auch eine Beschreibung des kompletten REST Service und wie man das Teil auf Openshift hostet.
Viele Grüße
Stefan
Hallo Stefan,
funktioniert wunderbar!
Anleitung gut nachvollziehbar. Dadurch geht jetzt das Widget auch im VRR-Gebiet.
Gruß Dirk
Von mir auch vielen Dank Stefan für den Service und die Unterstützung des vorhandenen Widget Interfaces.
Coole Sache!!!
hat schon jemand eine Möglichkeit für den MVV in München gefunden?
Zitat von: ulli am 21 Februar 2016, 21:33:47
hat schon jemand eine Möglichkeit für den MVV in München gefunden?
Guckst du meinen Beitrag vom 18. Februar. Laut Öffi sind die Provider MVV und MVG für München unterstützt. Dementsprechend musst du mit "Mvv" oder "Mvg" als Provider arbeiten.
Hab es auch gerade mal probiert, bekomme aber einige Fehler gemeldet.
http://transportrest-sbiermann.rhcloud.com/station/suggest?q=Domsheide&provider=Vbn
Geht nicht.
http://transportrest-sbiermann.rhcloud.com/station/suggest?q=Domsheide&provider=Bahn
Gleiche Haltestelle über die Bahn geht.
http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=775809&provider=Bahn
Aber die Abfrage zur Haltestelle geht dann nicht mehr.
Bekomme bei den Oebb auch einen Fehler wenn ich die Station abfrage.
Diese Abfrage funktioniert noch:
http://transportrest-sbiermann.rhcloud.com/station/suggest?q=Kapellerfeld&provider=Oebb
Bei der darauf folgenden Stationsabfrage:
http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=1132462&provider=Oebb
bekomme ich dann einen "Whitelabel Error Page"
LG
@sinus61: Manche Provider setzen für die Abfrage einen Key oder Passwort oder Lizenz voraus. Prinzipiell unterstützt die unter dem REST-Service liegende Anwendung das auch, aber mir fehlen schlicht und ergreifend diese Daten. Ich weiß nicht woher die Öffi App diese Daten hat. Vermutlich hat der Entwickler diese bei den entsprechenden Providern bekommen. Den Fehler mit der Bahn Abfrage habe ich behoben, die sollte nun funktionieren.
@mrfloppy: Bei der Stationsabfrage war das Problem das die Antwort die mir die OEBB schickt keine Station ID mehr enthält und noch zu dem weitere Abfahrten im Umkreis der Haltestelle Kapellerfeld. Ich hab das jetzt so umgebaut das wenn keine Station ID mehr vorhanden ist die kompletten Abfahrtszeiten zurück geliefert werden von allen Kapellerfeld Haltestellen. Kannst du mal prüfen ob das so ok oder das zuviel des Guten ist?
Zitat von: sbiermann am 22 Februar 2016, 21:46:43
Kannst du mal prüfen ob das so ok oder das zuviel des Guten ist?
Ja da kommen jede Menge Daten.
Aber schon fast zu viel Einträge und vor allem sind da auch die Buslinien dabei.
Denke 8 -10 Einträge würden reichen.
Weiters ist mein Problem das ich im Widget keine Einträge bekomme.
Eingerichtet habe ich es aber wie beschrieben hier im Thread.
Grüße
Mit der Ausgabe der Daten gab es ein kleines Formatierungsproblem. Daher wurde im Widget nichts angezeigt. Das ist nun korrigiert und zu dem sind nur noch die Werte Kapellerfeld Bahnhof drin. Oder allgemein gesagt, es wird bei sowas immer die erste Haltestelle verwendet die gefunden wurde.
Die Menge der Einträge kann ich irgendwie nicht wirklich beeinflussen. Es gibt zwar einen Parameter der das bewirken soll, aber der Verhält sich sehr mysteriös. Scheint aber an den Providern zu liegen warum das nicht klappt.
Danke funktioniert nun.Alle Anzeigen dei mehr sind werden eh unten rausgeschoben.
Frau hat sich das angeschaut und will nun doch auch gern die Buslinie angezeigt haben, weil auf der ÖBB Seite stehts ja auch.
Und gibt es wie bei der iframe Einbindung auch die Möglichkeit, im departure-widget die Abfahrtszeit anzuzeigen? Nicht die Minuten bis zur Abfahrt?
siehe http://fahrplan.oebb.at/bin/stboard.exe/
LG Thomas
Zitat von: sbiermann am 22 Februar 2016, 21:46:43
Den Fehler mit der Bahn Abfrage habe ich behoben, die sollte nun funktionieren.
Danke, geht jetzt. Da man ja über die Bahn Abfrage auch die meisten anderen Haltestellen abfragen kann macht es nichts wenn Vbn nicht geht.
Fehler vom Amt. Ist jetzt repariert.
btw: das Thema ist hier OT :-)
Zitat von: setstate am 24 Februar 2016, 09:40:03
Fehler vom Amt. Ist jetzt repariert.
btw: das Thema ist hier OT :-)
ouch! stimmt, sorry :) ist gelöscht
Danke!!
Moin.
Jetzt bin ich hier auch mal gelandet :D
Ist schon schick. Musste mich zwar etwas mit CSS rumärgern aber ich habe es large, gerade und schick bekommen. üstra in grün und DB in rot. s.u.
Wer von euch ist Regex-Profi? Ich hätte nämlich gern NUR den 370 Richtung Hannover An der.....
[["370","Mehrum Ortsmitte","11"],["370","Hannover An der Engesohde","15"],["370","Mehrum Ortsmitte","31"],["372","Sehnde Schulzentrum (B 65)","37"],["370","Hannover An der Engesohde","44"],["962","Sehnde Egestorffstraße","46"],["390","Sehnde Schulzentrum","47"]]
Die restlichen Interessieren mich kein Stück. Ich habe schon etwas rumprobiert es aber absolut nicht hinbekommen...
Grüße^^
Hallo!
Zitat von: roman1528 am 24 Februar 2016, 13:43:44
Wer von euch ist Regex-Profi? Ich hätte nämlich gern NUR den 370 Richtung Hannover An der.....
Wie sieht denn Deine HTTPMOD Abfrage aus?
Grüße
Sven
Moin.
Zitat von: SvenJust am 24 Februar 2016, 13:52:32
Wie sieht denn Deine HTTPMOD Abfrage aus?
Ähm... s.o.
[["370","Mehrum Ortsmitte","11"],["370","Hannover An der Engesohde","15"],["370","Mehrum Ortsmitte","31"],["372","Sehnde Schulzentrum (B 65)","37"],["370","Hannover An der Engesohde","44"],["962","Sehnde Egestorffstraße","46"],["390","Sehnde Schulzentrum","47"]]
Ansonsten wahrscheinlich nicht anders als bei allen anderen hier auch:
attr GVH get02Name Zuckerfabriksweg
attr GVH get02Regex (\[\[.*\]\])
attr GVH get02URL http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=25003781&provider=Gvh
attr GVH timeout 30
Grüße^^
EDITOder meintest du das hier?:
HTTP/1.1 200 OK Date: Wed, 24 Feb 2016 12:16:58 GMT Server: Apache-Coyote/1.1 Content-Type: application/json;charset=UTF-8 Content-Length: 231 Vary: Accept-Encoding Connection: close [["S3","Hannover Hbf","40"],["S3","Hildesheim Hbf","42"],["S3","Hannover Hbf","100"],["S3","Hildesheim Hbf","102"],["S3","Hannover Hbf","160"],["S3","Hildesheim Hbf","162"],["S3","Hannover Hbf","220"],["S3","Hildesheim Hbf","222"]]
Zitat von: mrfloppy am 23 Februar 2016, 16:28:21
Frau hat sich das angeschaut und will nun doch auch gern die Buslinie angezeigt haben, weil auf der ÖBB Seite stehts ja auch.
Ist umgesetzt, jetzt werden wieder alle Daten geliefert aber sortiert nach Abfahrt in Minuten.
Zitat von: mrfloppy am 23 Februar 2016, 16:28:21
Und gibt es wie bei der iframe Einbindung auch die Möglichkeit, im departure-widget die Abfahrtszeit anzuzeigen? Nicht die Minuten bis zur Abfahrt?
Werde ich im Widget per Parameter umschaltbar machen
Super danke.
Wahnsinn wie flott hier auch wünsche umgesetzt werden.
Danke LG
Da hätte ich noch einen Wunsch wenn möglich.
Wäre es möglich im Widget die einzelnen Einträge farblich zu unterscheiden.
Also jeder zweite Eintrag eine andere Farbe.
Wäre wegen der Übersichtlichkeit.
Es sind einige Einträge zweizeilig bei meinem Bahnhof, und da ist es auf den ersten Blick nicht
gleich zuzuordnen wo die Minuten hingehören.
LG
Zitat von: sinus61 am 12 Februar 2016, 17:37:45
Übrigens gibt es das von der Bahn auch inklusive der meisten Nahverkehrsunternehmen, sogar inklusive Verspätungen wenn das von dem Unternehmen schon angeboten wird.
http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn
Leider hat die Bahn wohl noch kein API dafür, aber bevor jeder anfängt die Webseiten der lokalen Unternehmen auszuwerten wäre das eine universellere Lösung.
Jetzt mit Rest-API: http://data.deutschebahn.com/apis/fahrplan/
Ja die REST-API enthält aber anscheinend (http://www.heise.de/newsticker/meldung/Open-Data-Deutsche-Bahn-gibt-Schnittstelle-fuer-Fahrplandaten-frei-3118919.html) im Moment nur den Fernverkehr. In naher Zukunft sicherlich eine gute Idee den public-transport-enabler und das DB_Plan Modul umzustellen auf die Schnittstelle.
Zitat von: mrfloppy am 24 Februar 2016, 18:22:36
Da hätte ich noch einen Wunsch wenn möglich.
Wäre es möglich im Widget die einzelnen Einträge farblich zu unterscheiden.
Also jeder zweite Eintrag eine andere Farbe.
Wäre wegen der Übersichtlichkeit.
Es sind einige Einträge zweizeilig bei meinem Bahnhof, und da ist es auf den ersten Blick nicht
gleich zuzuordnen wo die Minuten hingehören.
LG
Update ist da:
Alternierender Hintergrund per
class="alternate"
und Umschaltung zu genauen Abfahrtszeit statt der Minuten per
class="deptime"
Super
gleich kurz mal angetestet.
Das alternate funktioniert!
Wenn ich jedoch "deptime" verwende bleibt das Fenster leer !?!?
LG
Da sind bestimmt Werte dabei, die keine Zahl sind bzw. nicht implizit in eine Zahl umgewandelt werden können. Da muss ich etwas mehr Sicherheit einbauen. Gib mal deine cfg Definition und den HTML Teil, dann kann ich am schnellsten die Ursache finden.
Moin.
class="deptime" möchte tatsächlich nicht...
FTUI:
<div data-type="departure"
data-device="GVH"
data-get="Bahnhof"
data-width="475"
data-height="400"
data-interval="120"
data-icon="ma-directions_railway"
class="DB large inline alternate deptime">
</div>
CSS: nur zum klären der Klassen
.DB.departure {
background-color: #FF0100 !important;
}
.DB.departure .icon {
color: #000000 !important;
background-color: transparent !important;
}
.DB.departure .listText {
background-color: #FFFFFF !important;
color: #000000 !important;
}
.departure.large .listText {
top: 19% !important;
left: 4% !important;
height: 72% !important;
}
.departure.large .header{
font-size: 23px !important;
margin-top: 24px !important;
}
.departure.large .station{
font-size: 31px !important;
}
.departure.large .icon {
top: 16px !important;
left: 16px !important;
width: 45px !important;
height: 45px !important;
font-size: 32px !important;
}
.departure .line{
padding-right: 20px !important;
}
FHEM:
Internals:
BUSY 0
DEF none 0
GetSeq 0
HTTPHEADER
Interval 0
LASTSEND 1456565226.63686
MainURL
NAME GVH
NR 148
STATE ???
TRIGGERTIME 0
TRIGGERTIME_FMT
TYPE HTTPMOD
addr http://transportrest-sbiermann.rhcloud.com:80
buf HTTP/1.1 200 OK
Date: Sat, 27 Feb 2016 09:27:07 GMT
Server: Apache-Coyote/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 287
Vary: Accept-Encoding
Connection: close
[["S3","Hannover Hbf","29"],["S3","Hildesheim Hbf","31"],["S3","Hannover Hbf","89"],["S3","Hildesheim Hbf","91"],["S3","Hannover Hbf","149"],["S3","Hildesheim Hbf","151"],["S3","Hannover Hbf","209"],["S3","Hildesheim Hbf","211"],["S3","Hannover Hbf","269"],["S3","Hildesheim Hbf","271"]]
code 200
conn
data
displayurl http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=8005511&provider=Bahn
header
host transportrest-sbiermann.rhcloud.com
httpheader HTTP/1.1 200 OK
Date: Sat, 27 Feb 2016 09:27:07 GMT
Server: Apache-Coyote/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 287
Vary: Accept-Encoding
Connection: close
hu_blocking 0
hu_filecount 112
ignoreredirects 0
loglevel 4
path /departureFHEM?from=8005511&provider=Bahn
protocol http
redirects 0
timeout 30
url http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=8005511&provider=Bahn
QUEUE:
Readings:
2016-02-27 10:27:07 Bahnhof [["S3","Hannover Hbf","29"],["S3","Hildesheim Hbf","31"],["S3","Hannover Hbf","89"],["S3","Hildesheim Hbf","91"],["S3","Hannover Hbf","149"],["S3","Hildesheim Hbf","151"],["S3","Hannover Hbf","209"],["S3","Hildesheim Hbf","211"],["S3","Hannover Hbf","269"],["S3","Hildesheim Hbf","271"]]
2016-02-27 10:27:06 Zuckerfabriksweg [["370","Hannover An der Engesohde","4"],["370","Mehrum Ortsmitte","13"],["390","Sehnde Schulzentrum","16"],["372","Sehnde Schulzentrum (B 65)","15"],["370","Hannover An der Engesohde","34"],["370","Mehrum Ortsmitte","43"],["370","Hannover An der Engesohde","62"],["370","Mehrum Ortsmitte","73"],["390","Sehnde Schulzentrum","74"],["372","Sehnde Schulzentrum (B 65)","75"]]
Request:
data
header
ignoreredirects 0
retryCount 0
type Get01
url http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=8005511&provider=Bahn
Sslargs:
Attributes:
event-on-update-reading .*
get01Name Bahnhof
get01Regex (\[\[.*\]\])
get01URL http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=8005511&provider=Bahn
get02Name Zuckerfabriksweg
get02Regex (\[\[.*\]\])
get02URL http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=25003781&provider=Gvh
group Status
room Status
timeout 30
userattr event-on-update-reading get01Name get01Regex get01URL get02Name get02Regex get02URL timeout
Mit Fenster leer meinte der Kollege "mrfloppy" wahrscheinlich, dass .listText nicht angezeigt wird. also gar nicht.
Grüße^^
Bei mir sieht es eigentlich genauso aus wie bei roman1528.
CSS Classes habe ich noch alles Original belassen.
Internals:
BUSY 0
DEF none 0
GetSeq 0
HTTPHEADER
Interval 0
LASTSEND 1456567617.17839
MainURL
NAME OEBB
NR 767
STATE ???
TRIGGERTIME 0
TRIGGERTIME_FMT
TYPE HTTPMOD
addr http://transportrest-sbiermann.rhcloud.com:80
buf HTTP/1.1 200 OK
Date: Sat, 27 Feb 2016 10:07:10 GMT
Server: Apache-Coyote/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 2369
Vary: Accept-Encoding
Connection: close
[["S2","Wolkersdorf im Weinviertel Bahnhof","11"],["S7","Flughafen Wien Bahnhof","13"],["S2","Mistelbach/Zaya Bahnhof","41"],["S7","Flughafen Wien Bahnhof","43"],["S2","Wolkersdorf im Weinviertel Bahnhof","71"],["S7","Flughafen Wien Bahnhof","73"],["S2","Mistelbach/Zaya Bahnhof","101"],["S7","Wolfsthal Bahnhof","103"],["S2","Wolkersdorf im Weinviertel Bahnhof","131"],["S7","Flughafen Wien Bahnhof","133"],["S2","Mistelbach/Zaya Bahnhof","161"],["S7","Flughafen Wien Bahnhof","163"],["S2","Wolkersdorf im Weinviertel Bahnhof","191"],["S7","Flughafen Wien Bahnhof","193"],["S2","Mistelbach/Zaya Bahnhof","221"],["S7","Wolfsthal Bahnhof","223"],["S2","Wolkersdorf im Weinviertel Bahnhof","251"],["S7","Flughafen Wien Bahnhof","253"],["S2","Mistelbach/Zaya Bahnhof","281"],["S7","Flughafen Wien Bahnhof","283"],["S2","Wolkersdorf im Weinviertel Bahnhof","311"],["S7","Flughafen Wien Bahnhof","313"],["S2","Mistelbach/Zaya Bahnhof","341"],["S7","Wolfsthal Bahnhof","343"],["S2","Wolkersdorf im Weinviertel Bahnhof","371"],["S7","Flughafen Wien Bahnhof","373"],["S2","Mistelbach/Zaya Bahnhof","401"],["S7","Flughafen Wien Bahnhof","403"],["S2","Wolkersdorf im Weinviertel Bahnhof","431"],["S7","Flughafen Wien Bahnhof","433"],["S2","Mistelbach/Zaya Bahnhof","461"],["S7","Wolfsthal Bahnhof","463"],["S2","Wolkersdorf im Weinviertel Bahnhof","491"],["S7","Flughafen Wien Bahnhof","493"],["S2","Mistelbach/Zaya Bahnhof","521"],["S7","Flughafen Wien Bahnhof","523"],["S2","Wolkersdorf im Weinviertel Bahnhof","551"],["S7","Flughafen Wien Bahnhof","553"],["S2","Mistelbach/Zaya Bahnhof","581"],["S7","Wolfsthal Bahnhof","583"],["S2","Wolkersdorf im Weinviertel Bahnhof","611"],["S7","Flughafen Wien Bahnhof","613"],["S2","Mistelbach/Zaya Bahnhof","641"],["S7","Wolfsthal Bahnhof","643"],["S2","Wolkersdorf im Weinviertel Bahnhof","671"],["S7","Flughafen Wien Bahnhof","673"],["S2","Mistelbach/Zaya Bahnhof","701"],["S2","Meidling Bahnhof","703"],["S2","Wolkersdorf im Weinviertel Bahnhof","731"],["S7","Flughafen Wien Bahnhof","733"],["S2","Laa/Thaya Bahnhof","761"],["S2","Floridsdorf Bahnhof","763"],["S2","Mistelbach/Zaya Bahnhof","935"],["S2","Mödling Bahnhof","1138"],["S7","Wolkersdorf im Weinviertel Bahnhof","1142"],["S2","Mödling Bahnhof","1168"],["S7","Laa/Thaya Bahnhof","1172"],["S2","Mödling Bahnhof","1198"],["S7","Wolkersdorf im Weinviertel Bahnhof","1202"]]
code 200
conn
data
displayurl http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=1232411&provider=Oebb
header
host transportrest-sbiermann.rhcloud.com
httpheader HTTP/1.1 200 OK
Date: Sat, 27 Feb 2016 10:07:10 GMT
Server: Apache-Coyote/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 2369
Vary: Accept-Encoding
Connection: close
hu_blocking 0
hu_filecount 6
ignoreredirects 0
loglevel 4
path /departureFHEM?from=1232411&provider=Oebb
protocol http
redirects 0
timeout 30
url http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=1232411&provider=Oebb
QUEUE:
Readings:
2016-02-27 11:06:57 Kapellerfeld [["S2","Wolkersdorf im Weinviertel Bahnhof","11"],["S7","Flughafen Wien Bahnhof","13"],["S2","Mistelbach/Zaya Bahnhof","41"],["S7","Flughafen Wien Bahnhof","43"],["S2","Wolkersdorf im Weinviertel Bahnhof","71"],["S7","Flughafen Wien Bahnhof","73"],["S2","Mistelbach/Zaya Bahnhof","101"],["S7","Wolfsthal Bahnhof","103"],["S2","Wolkersdorf im Weinviertel Bahnhof","131"],["S7","Flughafen Wien Bahnhof","133"],["S2","Mistelbach/Zaya Bahnhof","161"],["S7","Flughafen Wien Bahnhof","163"],["S2","Wolkersdorf im Weinviertel Bahnhof","191"],["S7","Flughafen Wien Bahnhof","193"],["S2","Mistelbach/Zaya Bahnhof","221"],["S7","Wolfsthal Bahnhof","223"],["S2","Wolkersdorf im Weinviertel Bahnhof","251"],["S7","Flughafen Wien Bahnhof","253"],["S2","Mistelbach/Zaya Bahnhof","281"],["S7","Flughafen Wien Bahnhof","283"],["S2","Wolkersdorf im Weinviertel Bahnhof","311"],["S7","Flughafen Wien Bahnhof","313"],["S2","Mistelbach/Zaya Bahnhof","341"],["S7","Wolfsthal Bahnhof","343"],["S2","Wolkersdorf im Weinviertel Bahnhof","371"],["S7","Flughafen Wien Bahnhof","373"],["S2","Mistelbach/Zaya Bahnhof","401"],["S7","Flughafen Wien Bahnhof","403"],["S2","Wolkersdorf im Weinviertel Bahnhof","431"],["S7","Flughafen Wien Bahnhof","433"],["S2","Mistelbach/Zaya Bahnhof","461"],["S7","Wolfsthal Bahnhof","463"],["S2","Wolkersdorf im Weinviertel Bahnhof","491"],["S7","Flughafen Wien Bahnhof","493"],["S2","Mistelbach/Zaya Bahnhof","521"],["S7","Flughafen Wien Bahnhof","523"],["S2","Wolkersdorf im Weinviertel Bahnhof","551"],["S7","Flughafen Wien Bahnhof","553"],["S2","Mistelbach/Zaya Bahnhof","581"],["S7","Wolfsthal Bahnhof","583"],["S2","Wolkersdorf im Weinviertel Bahnhof","611"],["S7","Flughafen Wien Bahnhof","613"],["S2","Mistelbach/Zaya Bahnhof","641"],["S7","Wolfsthal Bahnhof","643"],["S2","Wolkersdorf im Weinviertel Bahnhof","671"],["S7","Flughafen Wien Bahnhof","673"],["S2","Mistelbach/Zaya Bahnhof","701"],["S2","Meidling Bahnhof","703"],["S2","Wolkersdorf im Weinviertel Bahnhof","731"],["S7","Flughafen Wien Bahnhof","733"],["S2","Laa/Thaya Bahnhof","761"],["S2","Floridsdorf Bahnhof","763"],["S2","Mistelbach/Zaya Bahnhof","935"],["S2","Mödling Bahnhof","1138"],["S7","Wolkersdorf im Weinviertel Bahnhof","1142"],["S2","Mödling Bahnhof","1168"],["S7","Laa/Thaya Bahnhof","1172"],["S2","Mödling Bahnhof","1198"],["S7","Wolkersdorf im Weinviertel Bahnhof","1202"]]
Request:
data
header
ignoreredirects 0
retryCount 0
type Get02
url http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=1232411&provider=Oebb
Sslargs:
Attributes:
event-on-update-reading .*
get02Name Kapellerfeld
get02URL http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=1232411&provider=Oebb
getRegex (\[\[.*\]\]).*
room OEBB
timeout 30
userattr event-on-update-reading get02Name get02URL getRegex timeout
[/
<li data-row="2" data-col="6" data-sizex="3" data-sizey="4">
<header>Fahrplan</header>
<div data-type="departure"
data-device="OEBB"
data-get="Kapellerfeld"
data-icon="fa-train"
data-interval="120"
data-width="300"
data-height="400"
class="alternate deptime"
</div>
</li>code]
Sorry, ich habe die geänderte fhem-tablet-ui.js vergessen auszuliefern. Kommt sofort ...
deptime funktioniert soweit gut, nur stimmt die Uhrzeit um eine Minute nicht, siehe Anhang.
Grüße
Thomas
besser als andersherum :-) So kommt immer pünktlich.
Nein, keine Ahnung. Rundunsfehler?
Ich nehme Abfragezeit+Minuten.
Zitat von: setstate am 28 Februar 2016, 10:21:45
besser als andersherum :-) So kommt immer pünktlich.
Nein, keine Ahnung. Rundunsfehler?
Ich nehme Abfragezeit+Minuten.
Das heißt ich muss mich damit Abfinden?
Oder schaust du da eventuell noch mal drüber.
Denk das wird ja nicht nur bei mir so sein oder?
LG
Das Problem lag im REST-Wrapper, da kamen zum Beispiel solche Werte wie 3,91 Minuten raus und durch die automatische Konvertierung wurde daraus dann 3 Minuten. Korrekter wäre allerdings 4 Minuten gewesen. Ich hab das nun umgestellt so das er immer aufrundet auf die nächste Minute.
Super, danke!!
Perfekt
Alle Zeiten stimmen jetzt.
Vielen Dank für die raschen Hilfen und Umsetzungen.
LG Thomas
Hi,
Da ich bisher die Bahn-Daten mit dem DB-Modul geholt habe, würde ich das gerne auch über dieses Widget erledigen. Ist einfach klasse geworden das Modul (Dickes Dankeschön an @setstate)
Da @sbiermann die VAG als Beispiel gewählt hatte, kam mir das sehr gelegen (@sbiermann bin auch ein Bobbele ;-)).
Nun würde ich gerne die Abfahrtszeiten vom HBF in nur eine bestimmte Richtung Filtern (sind sonst zu viel), gibt es dazu eine Möglichkeit? Oder habe ich was übersehen?
Habe es noch nicht eingerichtet, wollte das vorher klären.
Bin für jeden Hinweis dankbar.
Gruß
Roman
Hallo Roman,
die REST-Schnittstelle bietet neben der reinen Abfrage der Abfahrtszeiten auch eine Abfrage nach Strecken. Sprich man gibt Start und Zielpunkt an und bekommt dann entsprechend dann angezeigt wann die nächsten Abfahrten sind. Ist es das was du brauchst?
Einen Filter der Abfahrtszeiten sollten auch per Perl innerhalb des HTTPMOD möglich sein. Da kann man ja eigene Funktionen aufrufen mit denen die Daten bearbeitet werden können.
Viele Grüße aus Freiburg nach Freiburg ;-)
Stefan
Hallo sbiermann,
ja genau das suche ich.
Bin gerade dabei mein Tablet UI neu aufzubauen.
Leider sind meine Pearl- Kenntnisse relativ klein.
Ich schaue mir das mal an.
Vielen Dank für die Hilfe.
Gruß nach Freiburg
Hallo,
ich benutze das HTTPMOD für die BVG von setstate aus der 1. Seite.
Nun habe ich aber ein Problem, das meine Haltestelle Leerzeichen enthält und ein Komma:
Brandenburg, Am Rehhagen
Wie kann ich dieses nun bei HTTPMOD lösen das er das akzeptiert???
Oder wie bekomme ich die Haltestellen ID raus? Geht es damit auch?
[EDIT]
Jetzt habe ich es hin bekommen und im HTTPMOD buffer stehen Daten, aber leider bleibt das Reading leer,
da scheinbar der Regex nicht stimmt?
http://fahrinfo.bvg.de/Fahrinfo/bin/stboard.bin/dox?ld=0.1&input=+Brandenburg%2C+Am+Rehhagen&boardType=dep&time=&productsFilter=1111111111111111&maxJourneys=10&date=&start=yes
Wie müsste das Regex hierfür aussehen??
Hab leider keine Ahnung davon.
Danke und Gruß
Denny
Nimm die folgende URL für Brandenburg, Am Rehhagen.
http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=9275439&provider=Bvg
Zitat von: sbiermann am 07 März 2016, 14:24:00
Nimm die folgende URL für Brandenburg, Am Rehhagen.
http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=9275439&provider=Bvg
Vielen Dank, das geht ja noch viel einfacher.
Gruß
Denny
@ sbiermann: in setstate's Beispiel ganz zu beginn setzt er ein Limit auf 10 Einträge. Geht das in deinem Codebsipiel auch. Zwecks Übersicht interessieren mich immer nur die kommende 6 Einträge.
@roman1528: Bei dir sieht das Widget breiter aus. Kannst du mir sagen an welcher Stelle du welche Änderung vorgenommen hast Vielen Dank.
Zitat von: bjoernbo am 10 März 2016, 08:11:41
@roman1528: Bei dir sieht das Widget breiter aus. Kannst du mir sagen an welcher Stelle du welche Änderung vorgenommen hast Vielen Dank.
FTUI:
<div data-type="departure"
data-device="GVH"
data-get="Zuckerfabriksweg"
data-width="475"
data-height="400"
data-interval="120"
data-icon="ma-directions_bus"
class="GVH large inline alternate deptime">
</div>
Danach ist allerdings das Layout etwas verschoben. Deswegen:
*-user.css:
.departure.large .listText {
top: 19% !important;
left: 4% !important;
height: 72% !important;
}
.departure.large .header{
font-size: 23px !important;
margin-top: 24px !important;
}
.departure.large .station{
font-size: 31px !important;
}
.departure.large .icon {
top: 16px !important;
left: 16px !important;
width: 45px !important;
height: 45px !important;
font-size: 32px !important;
}
.departure .line{
padding-right: 20px !important;
}
Meine Farbanpassung .GVH:
.GVH.departure {
background-color: #96BE1B !important;
}
.GVH.departure .icon {
color: #000000 !important;
background-color: transparent !important;
}
.GVH.departure .listText {
background-color: #505559 !important;
}
Grüße^^
Vielen Dank!!! sauber :-D
Zitat von: bjoernbo am 10 März 2016, 08:03:33
@ sbiermann: in setstate's Beispiel ganz zu beginn setzt er ein Limit auf 10 Einträge. Geht das in deinem Codebsipiel auch. Zwecks Übersicht interessieren mich immer nur die kommende 6 Einträge.
Jetzt ja, es gibt einen Limit Parameter der Default auf 10 gesetzt ist, kann aber auch auf 6 gesetzt werden. Dies geht dann zum Beispiel so:
http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=6930306&provider=Vagfr&limit=6
In gut 3 Monaten werde ich wg. der Verlegung meines Arbeitsplatzes vom Kfz auf den ÖPNV umsteigen, da passt das mit dem Departure Widget wie die Faust auf's Auge! :)
Nun kämpfe ich schon einige Zeit damit, mir nur die Abfahrtszeiten der nächstgelegenen Bushaltestelle in Richtung Bahnhof, bzw. ZOB anzeigen zu lassen, scheitere aber kläglich... :(
Die Daten für die Haltestelle hole ich über die Url http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=461075&provider=Bahn (http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=461075&provider=Bahn). Damit bekomme ich dann logischerweise alle Abfahrten der Haltestelle. Ich möchte aber nur die mit "262","Forchheim (Oberfranken) ZOB","###" im Widget angezeigt bekommen.
Sofern ich alles richtig verstanden habe, sollte ich mit dem Attribut getRegex des HTTPMOD Objekts entsprechend filtern können. Wenn dem so ist, stehe ich bezüglich der Regex-Syntax mehr als nur auf dem Schlauch... :(
Any hints?
VG Stefan
Hi,
ich verzweifle gerade damit :'(
Habe in FHEM folgende HTTPMOD erzeugt:
define VAG HTTPMOD none 0
attr VAG get01Name Haslach-Bad
attr VAG get01URL http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=6930605&provider=Vagfr
attr VAG getRegex (\[\[.*\]\]).*
attr VAG room Fahrzeiten
attr VAG timeout 30
es kommen im Buffer (denke das ist der Buffer) Daten:
(http://unbenannt2.png)
Das Widget habe ich so FTUI angelegt:
<li data-row="2" data-col="2" data-sizex="6" data-sizey="3">
<header>DEPARTURE</header>
<div data-type="departure"
data-device="VAG"
data-get="Haslach-Bad"
class="DVB">
</div>
</li>
Leider bleibt mein Widget leer... :'(
Es werden keine Daten angezeigt.
Könnte mir jemand behilflich sein?
Ich wäre für jeden Tip dankbar.
Fehler gefunden!
in dem Beispiel von setstate ist ein Fehler.
Beispiel setstate:
define VVO HTTPMOD none 0
attr VVO get02Name Postplatz
attr VVO get02URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&hst=Postplatz&vz=0&lim=10
attr VVO getRegex (\[\[.*\]\]).*
attr VVO timeout 30
beim Atribut getRegex muss es get02Regex heißen.
ja ich weiß für einen Spezialisten ist das gleich klar, ich habe es beim CopyPaste immer übersehen.
Hallo,
wie kann ich die jeweilige Breite einer Spalte ändern? Meine Verbindung hat eine 8-stellige Bezeichnung der Linie. Dadurch überschreibt die Linienbezeichnung das nächste Feld Richtung.
Grüße Fritz
Bei mir läuft es eigentlich, bis auf 2 kleine Dinge. Ich rufe zwei BVG Haltestellen ab, bei reinen Bushaltestellen sieht alles recht gut aus, wobei die Abfahrtszeit angezeigt wird. Setze ich class deptime erhalte ich aber keine Abfahrtzeiten mehr. Bei kombinierten Haltestellen (U-Bahn/ Bus ) stimmt wohl leider was mit der RegEx nicht (siehe Anlage)
get02Expr BvgExpr ($val)
get02Name Grenzallee
get02Regex tbody([</\w>\n\s="(:\.!\-+,)?%]*)<\/table
get02URL http://fahrinfo.bvg.de/Fahrinfo/bin/stboard.bin/dox?ld=0.1&input=9080202&boardType=dep&time=&productsFilter=1111111111111111&maxJourneys=10&date=&start=yes
Vielleicht kann jemand helfen?
Zitat von: sbiermann am 18 Februar 2016, 12:31:02
3. Abfrage der Departure Zeiten für die Haltestelle "Maria-Hilf-Kirche" im passenden Format für dieses Widget.
http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=6930306&provider=Vagfr
dieses liefert als Antwort im passenden Format:
[["1","Littenweiler","3"],["1","Landwasser","3"],["1","Littenweiler","9"],["1","Landwasser","9"],["1","Littenweiler","15"],["1","Landwasser","15"],["1","Littenweiler","21"],["1","Landwasser","21"],["1","Landwasser","27"],["1","Littenweiler","27"],["1","Littenweiler","33"],["1","Landwasser","33"]]
An der Haltestelle fährt nur eine Line daher ist immer die Linie 1 hier abgebildet in dem Beispiel. Die Zeiten sind immer inklusive Verspätung angegeben, sofern der Provider (die VAG Freiburg tut dies) diese Daten mit sendet.
Bei meiner Haltestelle werden mehrere Linien abgebildet.
Ich suche nach einer Möglichkeit, daraus lediglich 1 Linie zu filtern. Ist das möglich?
Gruss
Chris
Ich würde auch gern einen Abfahrtenmonitor einbinden. Allerdings über unserer VRR Seite erhalte ich keine brauchbare URL.
http://abfahrtsmonitor.vrr.de/#/index
Hat eventuell jemand eine Idee ?
Hallo @en-trust,
Lies dir den Beitrag #26 in diesem Thema durch. So habe ich bei mir einen Abfahrtsmonitor im VRR-Gebiet erzeugt. Funktioniert wunderbar!
Gruß Photon68
So. Klappt. Nur wie kann ich das Layout dieses Widget anpassen ? Es gibt hier zwar einige class aber die passen nicht zu meiner ftui.
Posting #12 kommt dem nahe. Möchte die Spalten halt selber in Breite anpassen.
Wenn man die Gesamtbreite ändert, werden die 3 Spalten prozentual mit breiter.
Du kannst aber auch selbst in deiner user css etwas neues dafür definieren:
.departure .line{
display: inline-block;
width: 15%;
text-align: end;
padding-right: 3px;
}
.departure .destination{
display: inline-block;
width: 64%;
text-align: initial;
padding-left: 3px;
}
.departure .minutes{
display: inline-block;
width: 17%;
text-align: end;
Ich habe die css statements direkt in die htmlseite gepackt, was aber gar keinen Effekt erziehlt hat.
<style>
.departure .line{
display: inline-block;
width: 15%;
text-align: end;
padding-right: 3px;
}
.departure .destination{
display: inline-block;
width: 64%;
text-align: initial;
padding-left: 3px;
}
.departure .minutes{
display: inline-block;
width: 17%;
text-align: end;
}
</style>
<div class="container centered">
<table width="100%">
<tr>
<td style="text-align:center;vertical-align:middle">
<div data-type="departure" data-device="VRR"
data-get="Postplatz"
data-interval="0"
class="">
</div>
</td>
</tr>
</table>
</div>
Probiere mal ein .VRR.departure
Und ein class="VRR"
Wenn das nicht hilft ein !important dahinter
Sorry, schreibt sich gerade blöd auf dem Telefon und gut formatieren ist auch eher ein Krampf
.VRR.departure .VRR.line{
display: inline-block;
width: 15%;
text-align: end;
padding-right: 3px;
}
.VRR.departure .VRR.destination{
display: inline-block;
width: 64%;
text-align: initial;
padding-left: 3px;
}
.VRR.departure .VRR.minutes{
display: inline-block;
width: 17%;
text-align: end;
}
plus class="VRR" brachte keine Auswirkung
VRR nur vor departure, nicht vor line und destination usw.
Und dann muss natürlich VRR am Widget selbst gesetzt sein
<div data-type="departure" data-device="VRR"
data-get="Postplatz"
data-interval="0"
class="VRR">
Hallo,
bei mir kommt beim Widget immer ein kleiner Toast wenn aktualisiert wird!
Wie kann ich diesen unterdrücken???
Danke und Gruß
Denny
Du willst sicherlich Toast-Messages nicht grundsätzlich abschalten?
Machen die Messages beim Departure überhaupt Sinn? Eher nicht, außer für Debuggingzwecke.
Ich werde das nur bei debuglevel>1 anzeigen lassen.
Danke für das Feedback ...
Zitat von: setstate am 30 April 2016, 20:02:13
Du willst sicherlich Toast-Messages nicht grundsätzlich abschalten?
Machen die Messages beim Departure überhaupt Sinn? Eher nicht, außer für Debuggingzwecke.
Ich werde das nur bei debuglevel>1 anzeigen lassen.
Danke für das Feedback ...
Ich denke kann raus!
Man siehts ja, dass es aktualisiert wird.
Hallo,
ich teste ein wenig an der Formatierung.
Mein Wunsch wäre, die Abfahrtszeit in Minuten und per Uhrzeit anzuzeigen. Geht beides?
Weiterhin ist das Logo links ober bei mir in sich verschoben. Gibt es da ein alternatives Buslogo?
Das Widget funktioniert soweit, nimmt mir aber zuviel platz weg. Gibt es eine Möglichkeit, dass ich nur die nächste oder ggf. auch noch die übernächste Abfahrtzeit mir anzeigen lassen kann um diese dann in der ftui auszugeben ?
Hi,
wer ein eigenes Departure bauen möchte findet hier einen Ansatz.
https://forum.fhem.de/index.php/topic,58055.0.html
Danke nochmals an @setstate
Hallo @sbiermann
kann es sein das Deine Schnittstelle seit der Zeitumstellung etwas falsches ausgibt?
Seit der Zeitumstellung bekomme ich an allen Haltestellen unmögliche Minutenangaben.
Sieht so aus:
[["14","Freiburg Siegesdenkmal","-1039"],["5","Rieselfeld","-1036"],["5","Zähringen","-1029"],["14","Haid","-1028"],["5","Rieselfeld","-1006"],["14","Haid","-994"],["5","Freiburg Am Lindenwäldle","-987"],["5","Freiburg Am Lindenwäldle","-973"],["5","Freiburg Heinrich-von-Stephan-Straße","-686"],["14","Freiburg Siegesdenkmal","-679"]]
Gruß aus Freiburg
Hallo @sbiermann
ich denke Du hast es wieder bereinigt, Danke.
Zitat von: namor am 31 Oktober 2016, 07:22:06
Hallo @sbiermann
ich denke Du hast es wieder bereinigt, Danke.
Nein der Fehler lag bei den providern der Daten, nicht im Service vom sbiermann.
Ich hatte das auch nachgestellt und bei mir ist der Fehler auch aufgetretten, da ich aktuell an einem Departure Modul am basteln bin.
Gruß Constantin
Hallo, das sieht alles sehr sehr gut aus und ich würde das Widget gerne einsetzen. Leider finde ich beim RMV (Rhein-Main-Verkehrsverbund) keine URL die ich als Schnittstelle nutzen könnte. Gibt es jemanden der dieses Widget mit Daten aus dem RMV füttert ?
Ich bin für jeden Hinweis dankbar
Hallo zusammen,
da ich mich selbst auch fragte, wie man das Widget nutzen kann, um nur eine Linie und/oder Richtung anzuzeigen. Und da hier auch andere bereits Fragen dazu gestellt haben, möchte ich hier mal meine Umsetzung darstellen, da ich selbst auch immer über Codeschnipsel dankbar bin.
Vielleicht möchte es ja jemand nutzen. Danke auch an setstate und sbiermann - tolle Arbeit.
Meine Definition von HTTPMOD sieht zunächst wie folgt aus:
defmod Mobiel1 HTTPMOD none 0
attr Mobiel1 get01Name Ferdinandstr
attr Mobiel1 get01RegOpt g
attr Mobiel1 get01Regex (\["88","Haupt.*?"\])
attr Mobiel1 get01URL http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=920943&provider=Bahn&limit=10
attr Mobiel1 get02Name SteilerWeg
attr Mobiel1 get02RegOpt g
attr Mobiel1 get02Regex (\["\b(?>22|N14|N7)\b","\b(?>Heepen|Jahn)\b.*?"\])
attr Mobiel1 get02URL http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=921234&provider=Bahn&limit=10
attr Mobiel1 get03Name BrackwedeBhfStadtbahn
attr Mobiel1 get03RegOpt g
attr Mobiel1 get03Regex (\["STB1","Sch.*?"\])
attr Mobiel1 get03URL http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=930198&provider=Bahn&limit=10
attr Mobiel1 getCheckAllReadings 1
attr Mobiel1 getOExpr '['.$val.']'
attr Mobiel1 getRecombineExpr join ",", @matchlist
attr Mobiel1 showMatched 1
attr Mobiel1 timeout 30
Ich habe also hauptsächlich folgendes gemacht:
- Regex so definiert, dass entsprechend eine oder mehrere Linien und Richtungen rausgefiltert werden.
- Attribut get[0-9]+RegOpt, um alle matching groups ausgeben
- Attribut getOExpr, damit das gesamte Reading wieder in [] eingeschlossen wird
- Attribut getRecombineExpr, um die einzelnen Matches mit Komma getrennt im Reading auszugeben
Das Problem ist nun, dass durch die "strengere" Regex eventuell keine Matches mehr gefunden werden, was dann dazu führt, dass es einerseits natürlich einen Eintrag im Log gibt und andererseits erhält das Widget ein falsches oder kein aktuelles Reading für die Anzeige.
Das Reading habe ich dann per Notify und setreading überschrieben:
define NoConnection notify (Mobiel1:UNMATCHED_READINGS.*(SteilerWeg|BrackwedeBhf|Ferdinandstr).*) { \
if ($EVTPART1 eq "SteilerWeg" ) {\
fhem('setreading Mobiel1 SteilerWeg [["-","Keine aktuelle Verbindung",""]]');;;;\
}\
elsif ($EVTPART1 eq "BrackwedeBhf" ) {\
fhem('setreading Mobiel1 BrackwedeBhf [["-","Keine aktuelle Verbindung",""]]');;;;\
}\
elsif ($EVTPART1 eq "Ferdinandstr" ) {\
fhem('setreading Mobiel1 Ferdinandstr [["-","Keine aktuelle Verbindung",""]]');;;;\
}\
}
Damit wird mir dann auch im Widget direkt angezeigt, dass es keine aktuellen Verbindungen gibt.
Alternativ könnte man auch die Anzahl der Ergebnisse in der URL anpassen (&limit=xx). Dann hatte ich bei mir allerdings meist nur noch Abfahrtzeiten in mehreren Stunden. Eine weitere Idee ist, in der Regex eine Gruppe hinzuzufügen, die auf jeden Fall gefunden wird ("HTTP" oder so) und diese dann nachher im Reading wieder zu ersetzen.
Gruß Benjamin
Ich habe mir erlaubt, das Thema ins Wiki aufzunehmen und habe dabei hoffentlich nichts übersehen.
Interessant ist auch die Entwicklung eines entsprechenden Moduls.
Departure (http://www.fhemwiki.de/wiki/Departure)
FHEM Tablet UI - Departure (http://www.fhemwiki.de/wiki/FHEM_Tablet_UI#departure)
Modul 98_Departure: Bereitstellung von Abfahrtszeiten an einem Bahnhof (https://forum.fhem.de/index.php?topic=60046.0)
Danke für die vielen Inputs. Abgesehen davon, dass mir eine Haltestelle nicht angezeigt wird, würde ich die einzelnen Werte in ein vorhandenes "Widget" einfügen, in dem ich bereits Fahrtdauer via googleapi anzeigen lasse.
Nach Auswahl der Hatestelle und Filtern werden mir aktuell 3 Abfahrten angezeigt. Busnummer, Richtung und Abfahrt würde ich gerne separat hier mit hinzufügen.
Ich weiß nur noch nicht ob das Ganze sinvoll ist oder ob es doch das vorhandene Widget wird und ich die Fahrtdauer separat anzeigen lasse.
Hallo,
gibt es gerade "probleme" mit dem departure widget in der tabletUI ??
In der FHEM GUI habe ich das reading Kirche [["164","Bahnhof","1"],["SB55","Hauptbahnhof","3"]
<div data-type="departure"
data-device="VRS"
data-get="Kirche"
data-width="475"
data-height="400"
data-interval="120"
data-icon="ma-directions_railway"
class="VVO large inline alternate top-space-3x deptime">
</div>
Das widget bleibt "leer".
Auch wenn ich class=... lösche, bleibt das widget leer.
Jemand eine Idee, woran es liegen könnte?
Danke für Infos
Jörg
sorry, das war ein Bug im widget_departure drin. -> Update hilft
Zitat von: setstate am 11 Dezember 2016, 15:52:32
sorry, das war ein Bug im widget_departure drin. -> Update hilft
Hallo,
Danke
Update manuell einspielt und getestet.
==> GEHT
Danke Danke
Jörg
Hallo,
ich versuche derzeit beim Mobile-UI mit Fixed-Navigation den Footer mit einzubauen. Habt ihr da einen Tipp für mich, da der Footer ziemlich eigensinnig ist und entweder Widgets verdeckt oder mitscrollt.
Leider habe ich keine Doku zum Footer bzw. zur Tab-Bar gefunden.
Danke!
LG
Hi,
wenn ich Beitrag#18 richtig Interpretiere wird Hamburg und deren Verkehrsdienst (HVV) nicht bei http://transportrest-sbiermann.rhcloud.com/provider aufgelistet oder?
Scheinbar nicht. Wenn der eigene Anbieter nicht dabei ist oder nicht funktioniert hilft es aber oft einfach Bahn als Provider einzutragen.
Nach meinen Feststellungen erfolgt die selbständige Aktualisierung (data-interval=x) des Departure-Widgets nur, wenn das Widget sichtbar ist. Wenn ich es auf einer Pagebutton-Seite plaziere und diese Seite nicht angezeigt wird, unterbleibt diese Aktualisierung. Nach dem Aufruf der Seite wird dann, je nach eingestelltem data-interval, die Anzeige aktualisiert.
Das ist etwas unpraktisch, denn ein typisches Anwendungsszenario ist doch, dass man bei Bedarf auf der Unterseite nachschaut. Im Ist-Zustand müsste man dann etwas abwarten oder manuell die Aktualisierung auslösen. Das könnte Falschinterpretationen nach sich ziehen, insbesondere wenn die Restzeit bis zur Abfahrt und nicht die absolute Abfahrtszeit ausgegeben wird. Es wird zwar unten die Uhrzeit der letzten Aktualisierung angezeigt, aber narrensicher ist das nicht.
Eigentlich wundert mich, dass die Pagebuttonseite nicht im Hintergrund aktualisiert wird, denn bei anderen Widgets (z.B. Labels) funktioniert das.
Das habe ich extra so eingebaut, damit nicht 99,9% der Zeit die Server des Providers angefragt werden, obwohl niemand die Info braucht.
Wenn du Refresh im Hintergrund wieder aktivieren willst, musst du class="hiddenrefresh" angeben.
Guter Punkt, den wahrscheinlich noch viel zu Wenige im Blick haben.
Besser als hiddenrefresh wäre vielleicht, beim Aufruf/Einblenden der Seite einmalig den Refresh auszulösen. Siehst Du eine Möglichkeit, das einzubauen?
Zitat von: beni.s am 14 November 2016, 23:00:42
Vielleicht möchte es ja jemand nutzen. Danke auch an setstate und sbiermann - tolle Arbeit.
Das hat mir sehr geholfen, u.a. dabei, HTTPMOD und das Widget zu verstehen.
Warum sind bei der FHEM Version der Abfrage eig. keine Verspätungsangaben mehr drin? Habe schon überlegt, mir einfach eine Funktion in myUtils zu schreiben um die aus der "normalen" Abfrage per "/departuer?..." herauszuholen und dann in das Reading einzubauen.
Sehe ich das richtig, dass das Framework von sbiermann nicht die Abfrage nach einer Verbindung unterstützt, die keine Direktverbindung ist? Mein Arbeitsweg kann je nach Uhrzeit über verschiedene Stationen gehen also hätte ich im Optimalfall gerne eine Anzeige wie "wann ist die nächste Chance, zum Bahnhof loszulaufen und wie lange ist die Gesamtfahrzeit dann bzw. über welchen Weg"
Noch einen Schritt weiter könnte ich von meinem Handy die Position abrufen, wenn ich auf dem Rückweg bin, um dann zu ermitteln, welche Bahn ich genommen habe und somit in FHEM meine erwartete Ankunftszeit zu Hause einzuspeisen. Das geht jetzt allerdings über FTUI hinaus, führt aber dazu, dass ggf. das Essen dann schon fertig ist...
Hallo setstate,
erst einmal Danke das Du Dir diese Arbeit gemacht hast. Mein Sohn als Nutzer der öffentlichen Verkehrsmittel wird es Dir danken :-)
Ich bin der Wiki Anleitung (https://wiki.fhem.de/wiki/Departure) gefolgt und habe nun folgende Zeilen in der fhem.cfg
define myDeparture HTTPMOD none 0
attr myDeparture get01Name Freie-Scholle
attr myDeparture get01URL http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=9089458&provider=Bvg
attr myDeparture get01Regex (\[\[.*\]\]).*
attr VAG timeout 30
attr myDeparture room Kalender
Was ich jetzt noch nicht gefunden habe ist, wie ich das ganze zum Beispiel auf dem Dashboard anzeigen kann, habe ich da etwas übersehen ?
Gruß
Micha
P.S. Muss im wiki attr VAG timeout 30
nicht attr myDeparture timeout 30
lauten ?
Zitat von: unimatrix am 27 Januar 2017, 15:45:36
Sehe ich das richtig, dass das Framework von sbiermann nicht die Abfrage nach einer Verbindung unterstützt, die keine Direktverbindung ist? Mein Arbeitsweg kann je nach Uhrzeit über verschiedene Stationen gehen also hätte ich im Optimalfall gerne eine Anzeige wie "wann ist die nächste Chance, zum Bahnhof loszulaufen und wie lange ist die Gesamtfahrzeit dann bzw. über welchen Weg"
Die REST-API bietet eine solche Funktionalität. Das heißt man kann die entsprechend selber umsetzen und einbauen in FHEM. Die Doku ist im github Projekt von meinen Kollegen enthalten: https://github.com/fewi/public-transport-web-api
Irgendwie funktioniert meine Benachrichtigung nicht mehr. Wenn etwas ist mit dem Service oder Fragen, dann am besten private Mitteilung hier im Forum die bekomme ich mit...
Hallo!
Bis vor kurzem hat es bei mir einwandfrei funktioniert. Leider hat es jetzt einfach aufgehört.
Die Anfrage sieht so aus:
http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=9089458&provider=Bvg
und als Antwort erhalte ich:
Provider Bvg not found or can not instantiated...
Ja, der BvgProvider hat sich geändert. Im Hintergrund wird ja das Framework verwendet welches auch bei Öffi genutzt wird. Diese Framework wurde aktualisiert und der BvgProvider wurde vom alten HAFAS auf das neue HAFAS (JSON API) umgestellt und für den Zugriff braucht man einen API Key um Zugriff zu erhalten. Diesen habe ich derzeit leider nicht. Ich müsste mal schauen wo man einen her bekommt. Alternativ kannst du aber den VbbProvider nutzen. Der läuft noch über die alte Schnittstelle und sollte die selben Daten liefern wie der BvgProvider.
So Problem ist gelöst, der BVG Provider sollte auch wieder normal funktionieren.
Hallo Zusammen,
ich habe da ein seltsames Darstellungspoblem mit Safari und Fully Browser...Also die Bahnlinie hat 8 Zeichen bei uns. Dadurch überscheidetsich die Linie mit der Rcihtung. Ich hab dann ganz einfach data-width="240" gesetzt. Was auch zum Erfolg auf IE11 geführt hat.
Nur auf o.g. Browsern unter IOS und Android beleibt das Problem bestehen. Das heisst die Spalte Linie überschneidet sich weiterhin mit der Spalte Richtung..:-(
<div data-type="departure"
data-device="Bahn"
data-icon="fa-train"
data-width="240"
data-get="Bahnhof"
class="inline alternate">
</div>
Hat da einer eine Idee?
Gruß
Markus
Hi Zusammen,
und ich habe folgendes Problem...möchte geren das Widget in Ftui haben.
Folgende Infos:
Internals:
BASE_URL http://transportrest-sbiermann.rhcloud.com
CFGFN
DEF 60
Interval 60
NAME myDeparture
NR 1707
STATE active
TRIGGERTIME 1488022953.00811
TRIGGERTIME_FMT 2017-02-25 12:42:33
TYPE Departure
Readings:
2017-02-25 12:41:33 departure_0_delay 0
2017-02-25 12:41:33 departure_0_number RNV5
2017-02-25 12:41:33 departure_0_text Weinheim
2017-02-25 12:41:33 departure_0_time 2017-02-25T12:44+0100
2017-02-25 12:41:33 departure_0_time2Go -2
2017-02-25 12:41:33 departure_0_timeInMinutes 3
2017-02-25 12:41:33 departure_1_delay 0
2017-02-25 12:41:33 departure_1_number RNV5
2017-02-25 12:41:33 departure_1_text Heidelberg
2017-02-25 12:41:33 departure_1_time 2017-02-25T12:53+0100
2017-02-25 12:41:33 departure_1_time2Go 7
2017-02-25 12:41:33 departure_1_timeInMinutes 12
2017-02-25 12:41:33 departure_2_delay 0
2017-02-25 12:41:33 departure_2_number RNV5
2017-02-25 12:41:33 departure_2_text Heidelberg
2017-02-25 12:41:33 departure_2_time 2017-02-25T12:53+0100
2017-02-25 12:41:33 departure_2_time2Go 7
2017-02-25 12:41:33 departure_2_timeInMinutes 12
2017-02-25 12:41:33 departure_3_delay 0
2017-02-25 12:41:33 departure_3_number RNV5
2017-02-25 12:41:33 departure_3_text Heidelberg
2017-02-25 12:41:33 departure_3_time 2017-02-25T12:53+0100
2017-02-25 12:41:33 departure_3_time2Go 7
2017-02-25 12:41:33 departure_3_timeInMinutes 12
2017-02-25 12:41:33 departure_4_delay 0
2017-02-25 12:41:33 departure_4_number RNV5
2017-02-25 12:41:33 departure_4_text Weinheim
2017-02-25 12:41:33 departure_4_time 2017-02-25T13:04+0100
2017-02-25 12:41:33 departure_4_time2Go 18
2017-02-25 12:41:33 departure_4_timeInMinutes 23
2017-02-25 12:41:33 departure_5_delay 0
2017-02-25 12:41:33 departure_5_number RNV5
2017-02-25 12:41:33 departure_5_text Heidelberg
2017-02-25 12:41:33 departure_5_time 2017-02-25T13:13+0100
2017-02-25 12:41:33 departure_5_time2Go 27
2017-02-25 12:41:33 departure_5_timeInMinutes 32
2017-02-25 12:41:33 departure_6_delay 0
2017-02-25 12:41:33 departure_6_number RNV5
2017-02-25 12:41:33 departure_6_text Heidelberg
2017-02-25 12:41:33 departure_6_time 2017-02-25T13:13+0100
2017-02-25 12:41:33 departure_6_time2Go 27
2017-02-25 12:41:33 departure_6_timeInMinutes 32
2017-02-25 12:41:33 departure_7_delay 0
2017-02-25 12:41:33 departure_7_number RNV5
2017-02-25 12:41:33 departure_7_text Heidelberg
2017-02-25 12:41:33 departure_7_time 2017-02-25T13:13+0100
2017-02-25 12:41:33 departure_7_time2Go 27
2017-02-25 12:41:33 departure_7_timeInMinutes 32
2017-02-25 12:41:33 departure_8_delay 0
2017-02-25 12:41:33 departure_8_number RNV5
2017-02-25 12:41:33 departure_8_text Weinheim
2017-02-25 12:41:33 departure_8_time 2017-02-25T13:24+0100
2017-02-25 12:41:33 departure_8_time2Go 38
2017-02-25 12:41:33 departure_8_timeInMinutes 43
2017-02-25 12:41:33 departure_9_delay 0
2017-02-25 12:41:33 departure_9_number RNV5
2017-02-25 12:41:33 departure_9_text Heidelberg
2017-02-25 12:41:33 departure_9_time 2017-02-25T13:33+0100
2017-02-25 12:41:33 departure_9_time2Go 47
2017-02-25 12:41:33 departure_9_timeInMinutes 52
2017-02-25 12:41:33 departure_next_time2Go 7
Attributes:
departure_departure 507896
departure_provider Bahn
departure_time_to_go_to_station 05
FTUI:
<html>
<head>
<title>Controll</title>
</head>
<body>
<div class="gridster">
<ul>
<!-- Menü -->
<li data-col="1" data-row="1" data-sizex="1" data-sizey="8" data-template="menu.html"></li>
<li data-row="5" data-col="1" data-sizex="6" data-sizey="3">
<header>DEPARTURE</header>
<!-- place your widget here -->
<div class="large top-space"> </div>
<div class="col-1-3">
<div data-type="departure" data-device="Bahn"
data-get="Bhf-Hirschberg"
data-icon="fa-train"
data-interval="0">
</div>
</div>
</li>
</ul>
</div>
</body>
</html>
Bekomme nix angezeigt in FTUI.
Gruss
Du versuchst ja hier anscheinend das Modul Departure zusammen mit dem Widget Departure zu nutzen.Das geht so nicht.
Du kannst in Ftui einfach die Readings aus dem Departure Modul mit Label Widgets nutzen.
Zitat von: sinus61 am 25 Februar 2017, 12:54:04
Du kannst in Ftui einfach die Readings aus dem Departure Modul mit Label Widgets nutzen.
Könnest du das bitte kurz so erklären damit es auch ich verstehe ::)
bzw. könntest du mir den entsprechenden HTML Code zur Verfügung stellen?
Das wäre nett
Gruss
Table soll man ja eigentlich benutzen, aber irgendwie hab ich es damals mit inline usw. nicht so richtig hinbekommen.
Hier mal ein Beispiel, ich hab Deine Namen von oben eingefügt, müsste eigentlich so bei Dir funktionieren und zeigt dann die beiden nächsten Abfahrten an, die Zeit wechselt von Grün nach Rot wenn eine Verspätung vorliegt. Für weitere Abfahrten müsstest Du dann entsprechend die Blöcke runterkopieren und die Zahl anpassen.
<table width="100%">
<tr><td colspan="4">Bhf-Hirschberg</td>
</tr>
<tr>
<td><div data-type="label" data-device="myDeparture" data-get="departure_0_number" class="darker bigger"></div></td>
<td><div data-type="label" data-device="myDeparture" data-get="departure_0_time" data-substitution="s/.*T(\d\d\:\d\d)+.*/$1/g" data-limits-get="myDeparture:departure_0_delay" data-limits='[0,1]' data-colors='["green","red"]' class="darker bigger"></div></td>
<td><div data-type="label" data-device="myDeparture" data-pre-text="in " data-unit=" min%0A" data-get="departure_0_timeInMinutes" class="darker bigger"></div></td>
<td><div data-type="label" data-device="myDeparture" data-get="departure_0_text" class="darker bigger"></div></td>
</tr>
<tr>
<td><div data-type="label" data-device="myDeparture" data-get="departure_1_number" class="darker bigger"></div></td>
<td><div data-type="label" data-device="myDeparture" data-get="departure_1_time" data-substitution="s/.*T(\d\d\:\d\d)+.*/$1/g" data-limits-get="myDeparture:departure_1_delay" data-limits='[0,1]' data-colors='["green","red"]' class="darker bigger"></div></td>
<td><div data-type="label" data-device="myDeparture" data-pre-text="in " data-unit=" min%0A" data-get="departure_1_timeInMinutes" class="darker bigger"></div></td>
<td><div data-type="label" data-device="myDeparture" data-get="departure_1_text" class="darker bigger"></div></td>
</tr>
</table>
Zitat von: Kusselin am 25 Februar 2017, 12:44:19
Hi Zusammen,
und ich habe folgendes Problem...möchte geren das Widget in Ftui haben.
Guggst Du hier: https://wiki.fhem.de/wiki/FTUI_Widget_Departure (https://wiki.fhem.de/wiki/FTUI_Widget_Departure)
Wenn es nach dieser Anleitung nicht geht, bitte melden. Ein paar Leute haben sich jüngst große Mühe gegeben, es so zu erklären, dass es out of the Box läuft.
Zitat von: sinus61 am 25 Februar 2017, 15:04:29
Table soll man ja eigentlich benutzen, aber irgendwie hab ich es damals mit inline usw. nicht so richtig hinbekommen.
Hier mal ein Beispiel, ich hab Deine Namen von oben eingefügt, müsste eigentlich so bei Dir funktionieren und zeigt dann die beiden nächsten Abfahrten an, die Zeit wechselt von Grün nach Rot wenn eine Verspätung vorliegt. Für weitere Abfahrten müsstest Du dann entsprechend die Blöcke runterkopieren und die Zahl anpassen.
<table width="100%">
<tr><td colspan="4">Bhf-Hirschberg</td>
</tr>
<tr>
<td><div data-type="label" data-device="myDeparture" data-get="departure_0_number" class="darker bigger"></div></td>
<td><div data-type="label" data-device="myDeparture" data-get="departure_0_time" data-substitution="s/.*T(\d\d\:\d\d)+.*/$1/g" data-limits-get="myDeparture:departure_0_delay" data-limits='[0,1]' data-colors='["green","red"]' class="darker bigger"></div></td>
<td><div data-type="label" data-device="myDeparture" data-pre-text="in " data-unit=" min%0A" data-get="departure_0_timeInMinutes" class="darker bigger"></div></td>
<td><div data-type="label" data-device="myDeparture" data-get="departure_0_text" class="darker bigger"></div></td>
</tr>
<tr>
<td><div data-type="label" data-device="myDeparture" data-get="departure_1_number" class="darker bigger"></div></td>
<td><div data-type="label" data-device="myDeparture" data-get="departure_1_time" data-substitution="s/.*T(\d\d\:\d\d)+.*/$1/g" data-limits-get="myDeparture:departure_1_delay" data-limits='[0,1]' data-colors='["green","red"]' class="darker bigger"></div></td>
<td><div data-type="label" data-device="myDeparture" data-pre-text="in " data-unit=" min%0A" data-get="departure_1_timeInMinutes" class="darker bigger"></div></td>
<td><div data-type="label" data-device="myDeparture" data-get="departure_1_text" class="darker bigger"></div></td>
</tr>
</table>
Hallo Sinus61,
vielen herzlichen Dank!! Jetzt klappts..hat halt nicht diesen rahmen ausenrum aber das ist schon gut so mit der grünen schrift usw.
Danke dir nochmals!!!
Markus
Zitat von: Ulm32b am 25 Februar 2017, 16:16:37
Guggst Du hier: https://wiki.fhem.de/wiki/FTUI_Widget_Departure (https://wiki.fhem.de/wiki/FTUI_Widget_Departure)
Wenn es nach dieser Anleitung nicht geht, bitte melden. Ein paar Leute haben sich jüngst große Mühe gegeben, es so zu erklären, dass es out of the Box läuft.
und testweise mal lt. wiki probiert...es liest zwar die Readings aber der "State" steht auf ???
Internals:
DEF none 0
Interval 0
MainURL
ModuleVersion 3.3.5 - 29.9.2016
NAME Departure_Hirschberg_Bhf
NR 80
STATE ???
TRIGGERTIME 0
TRIGGERTIME_FMT
TYPE HTTPMOD
Readings:
2017-02-26 10:05:11 Leutershausen_Bahnhof [["RNV5","Heidelberg","19"],["RNV5","Weinheim","29"],["ALT6926","Bahnhof (RNV)","35"],["ALT6928","Großsachsen Talsiedlung","35"],["RNV5","Heidelberg","49"],["RNV5","Weinheim","59"],["RNV5","Heidelberg","79"],["RNV5","Weinheim","89"],["ALT6926","Bahnhof (RNV)","95"],["ALT6928","Leutershausen Gewerbegebiet Hirschberg","95"]]
Attributes:
get01Name Leutershausen_Bahnhof
get01Regex (\[\[.*\]\]).*
get01URL http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=507896&provider=Bahn
timeout 30
userattr get01Name get01Regex get01URL
Zitat von: Kusselin am 26 Februar 2017, 10:11:45
und testweise mal lt. wiki probiert...es liest zwar die Readings aber der "State" steht auf ???
[...]
Readings:
2017-02-26 10:05:11 Leutershausen_Bahnhof [["RNV5","Heidelberg","19"],["RNV5","Weinheim","29"],["ALT6926","Bahnhof (RNV)","35"],["ALT6928","Großsachsen Talsiedlung","35"],["RNV5","Heidelberg","49"],["RNV5","Weinheim","59"],["RNV5","Heidelberg","79"],["RNV5","Weinheim","89"],["ALT6926","Bahnhof (RNV)","95"],["ALT6928","Leutershausen Gewerbegebiet Hirschberg","95"]]
Das Reading sieht doch gar nicht schlecht aus. Was macht denn das FTUI-Widget damit?
Hallo! Freue mich, hier zufällig auf einen Dresdner FHEM Profi gestoßen zu sein! :) Wollte natürlich prompt die Fahrplananzeige ausprobieren, wenn man es schon so fix und fertig vorgesetzt bekommt. Klasse!
Scheitere aber bereits im ersten Schritt.
Erster Versuch: Den Code aus dem WIKI-Beitrag 1:1 per cut & paste zu übernehmen. Und wenn das klappt, dann Postplatz durch meine Haltestelle ersetzen. Klappt aber nicht.
define VVO HTTPMOD none 0
attr VVO get02Name Postplatz
attr VVO get02URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&hst=Postplatz&vz=0&lim=10
attr VVO getRegex (\[\[.*\]\]).*
attr VVO timeout 30
erzeugt die Meldung "VVO: unknown attribute getRegex. Type 'attr VVO ?' for a detailed list.".
Das kann ja nun eigentlich nicht sein, hat sich da was geändert?
Vielen Dank für eure Unterstützung!
Zitat von: Ulm32b am 26 Februar 2017, 12:21:05
Das Reading sieht doch gar nicht schlecht aus. Was macht denn das FTUI-Widget damit?
Hi,
soweit bin ich noch nicht....mein STATE ist immer noch ???
da sollte doch aktiv stehen!
Zitat von: McElch am 26 Februar 2017, 12:33:31
Hallo! Freue mich, hier zufällig auf einen Dresdner FHEM Profi gestoßen zu sein! :) Wollte natürlich prompt die Fahrplananzeige ausprobieren, wenn man es schon so fix und fertig vorgesetzt bekommt. Klasse!
Scheitere aber bereits im ersten Schritt.
Erster Versuch: Den Code aus dem WIKI-Beitrag 1:1 per cut & paste zu übernehmen. Und wenn das klappt, dann Postplatz durch meine Haltestelle ersetzen. Klappt aber nicht.
define VVO HTTPMOD none 0
attr VVO get02Name Postplatz
attr VVO get02URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&hst=Postplatz&vz=0&lim=10
attr VVO getRegex (\[\[.*\]\]).*
attr VVO timeout 30
erzeugt die Meldung "VVO: unknown attribute getRegex. Type 'attr VVO ?' for a detailed list.".
Das kann ja nun eigentlich nicht sein, hat sich da was geändert?
Vielen Dank für eure Unterstützung!
Vielen Dank für diese Nachricht. Wenn man den kompletten Thread nachliest, findet sich die Lösung: Es muss heißen:
attr VVO get02Regex ...
Das muss in der Doku noch korrigiert werden.
Edit: Done
klappt immer noch nicht...
Internals:
DEF none 0
Interval 0
MainURL
ModuleVersion 3.3.5 - 29.9.2016
NAME Departure_Hirschberg_Bhf
NR 80
STATE ???
TRIGGERTIME 0
TRIGGERTIME_FMT
TYPE HTTPMOD
Readings:
2017-02-26 10:05:11 Leutershausen_Bahnhof [["RNV5","Heidelberg","19"],["RNV5","Weinheim","29"],["ALT6926","Bahnhof (RNV)","35"],["ALT6928","Großsachsen Talsiedlung","35"],["RNV5","Heidelberg","49"],["RNV5","Weinheim","59"],["RNV5","Heidelberg","79"],["RNV5","Weinheim","89"],["ALT6926","Bahnhof (RNV)","95"],["ALT6928","Leutershausen Gewerbegebiet Hirschberg","95"]]
Attributes:
get01Name Leutershausen_Bahnhof
get01URL http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=507896&provider=Bahn
get02Regex (\[\[.*\]\]).*
timeout 30
userattr get01Name get01Regex get01URL get02Regex
get01Regex, das muss schon zu Name und URL passen
Dh das das get01 durch das get02regex ersetzt werden muss auch das get01Url durch get02url ersetzt werden muss.. Ist das so richtig verstanden?
Gruss
Zitat von: Kusselin am 26 Februar 2017, 21:16:43
Dh das das get01 durch das get02regex ersetzt werden muss auch das get01Url durch get02url ersetzt werden muss.. Ist das so richtig verstanden?
Gruss
Die Nummern bei get müssen alle gleich sein, z.B.
define VVO HTTPMOD none 0
attr VVO get02Name Postplatz
attr VVO get02URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&hst=Postplatz&vz=0&lim=10
attr VVO get02Regex (\[\[.*\]\]).*
attr VVO timeout 30
oder
define VVO HTTPMOD none 0
attr VVO get01Name Postplatz
attr VVO get01URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&hst=Postplatz&vz=0&lim=10
attr VVO get01Regex (\[\[.*\]\]).*
attr VVO timeout 30
Wenn regex ohne Nummer, dann gilt es für alle. So habe ich es aus der CommandRef interpretiert.
ok danke...dann probiere ich es einfach mal mit "02" bei allen Attributen. dann sollte es ja funktionieren....
kann ja als Vorlage das von Ulm32b verwenden (natürlich mit geändertem Provider...
Gruss
Ist jetzt schon eine Weile her, aber bist Du Dir hier sicher
Zitat von: setstate am 28 Januar 2016, 16:08:31
99_myUtils.pm Funktion für Expr:
sub BvgExpr($)
...
my @line = ($all=~/<strong>([^:][\w\d\s]*)<\/strong>/g);
...
Die Busse sehe ich da nur zum Teil, die X-er beispielsweise tauchen nicht auf. Normalerweise sind die so eingefasst:
<tr class="ivu_table_bg1">
<td><strong>22:09</strong></td>
<td>
<a href="/Fahrinfo/bin/usw.">
<strong>Bus 115</strong>
</a>
</td>
<td>
Düppel-Süd, Neuruppiner Str.
</td>
</tr>
Also
<strong>( )<\/strong> passt schon mal. Aber der Wert innen nicht. Dort steht
[^:][\w\d\s]* und ich bin nicht der Regex-Experte, aber bedeutet das nicht: Kein :, aber word character oder digital oder space und das beliebig oft? Wieso wird dann Bus X10 nicht gefiltert?! Und da nur Busse und Zeiten in strong gesetzt werden, würde dann nicht <Laienmodus>
<strong>([A-Z]\w*)<\/strong>
</Laienmodus> genügen?
Hallo zusammen,
jetzt habe ich auch einmal eine Frage...so wie der HTTPMOD im wiki (https://wiki.fhem.de/wiki/FTUI_Widget_Departure) definiert ist, werden ja keine automatischen Updates gezogen...wenn ich in FHEM im HTTPMOD den entsprechenden GET Befehl ausführe, werden die Zeiten allerdings aktualisiert, jedoch eben nur dann und nicht von allein.
Ist das so gewollt?
Denn wenn ich nun spaßeshalber den HTTPMOD anders definiere, wie in meinem Beispiel:
define MVB HTTPMOD http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=7389&provider=Nasa 60
attr MVB get01Name Olvenstedter-Platz
attr MVB get01Regex (\[\[.*\]\]).*
attr MVB get01URL http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=7389&provider=Nasa
erhalte ich jede Minute die Fehlermeldung:
Read response to update didn't match any Reading
...d.h ja für mich, dass der RegEx nicht passt, oder? Dagegen spricht ja aber, dass es bei einem manuellen Aktualisieren über den GET-Befehl wunderbar klappt und auch der JSON String einwandfrei zurückkommt:
[["1","Klinikum Olvenstedt","3"],["73","Wissenschaftshafen","4"],["52","Porsestr.","5"],["1","Lerchenwuhne","16"],["72","Diesdorf","26"],["1","Klinikum Olvenstedt","30"],["52","Porsestr.","34"],["1","Lerchenwuhne","36"],["73","Wissenschaftshafen","43"],["1","Klinikum Olvenstedt","50"]]
Was mache ich falsch? Werden die Readings später nur manuell über das Widget aktualisiert?
Grüße!
Könnte es sein, dass mit dem Regex irgendwas nicht stimmt? Ich kann mich dunkel erinnern (mein Netz geht derzeit nur sehr selektiv, Störungsmeldung läuft schon) dass es da die Varianten greedy und nicht greedy gab. Wenn Du jetzt intern .* nimmst, werden da alle Zeichen erfasst - unter Umständen auch die Klammern ] und [, die du anscheinend explizit außen haben willst. Was genau soll denn da erfasst werden? Alle Inhalte? Die in den Klammern sind dann \w und ein paar Anführungsstriche, mehr nicht. .* wäre da überdimensioniert.
Hi andies,
hat sich schon erledigt, danke dir aber trotzdem - ich hab im wiki das Attribut data-interval übersehen...jetzt läufts super 8)
Viele Grüße!
Hallo zusammen,
hätte auch mal eine Frage zu dem Widget.
Bei mir werden über der Refreshbutton (und auch alle 2 Minuten automatisch) die HTTPMOD Reading korrekt aktualisiert. Allerdings aktualisiert das Widget selbst nicht. Hier hilft nur ein Reload der Seite.
Hat jemand eine Idee, woran das liegen könnte?
schau mal unter "longpoll" nach, daran könnte es liegen. Das muss mW auf 1 (oder 0?) gesetzt sein. Oder hast Du https? Dann wird es etwas komplexer, auch da gibt es hier Lösungen.
Hi,
danke für deine Antwort.
Ich benutze kein HTTPS für den Zugriff auf die Tablet UI. Longpoll steht beim entsprechenden FHEMWEB auf 1. Alles andere (also Buttons oder das Wetter) aktualisieren auch im Tablet UI korrekt.
Ich habe folgende Longpoll Kommandos zusätzlich im Header der index.html vom Tablet UI eingefügt, da ich sonst Fehlermeldungen hatte:
<meta name="longpoll_type" content="ajax" />
<meta name="longpoll_filter" content=".*" />
<meta name="longpoll" content="1">
Kann das damit zusammenhängen?
Servus
erstmal ein dickes Lob an setstate und sbiermann. Echt klasse Umsetzung.
Nun habe ich noch eine Frage.
Ist es möglich einen Zeitoffset einzuführen? Ich habe an meiner Haltestelle viele Linien und häufige Abfahrtszeiten. Allerdings brauche ich ca 5 Minuten zur Haltestelle. Wenn ich also an meiner Haustür wo das Tablet verbaut ist auf die Zeiten schaue sehe ich die Abfahrten der nächsten ca 0-6 Minuten. Also alles Fahrten die ich nicht mehr erreichen werde.
Ich würde also gerne einen Time-Offset haben.
Ist das möglich? :)
Grüße Jochen
Bei der VVO API ist das der vz Parameter. Siehe erster Post. Da steht in der Abfrage &vz=0. Du müsstest da &vz=5 für eine Vorlaufzeit von 5 Minuten eintragen. Dann werden nur die Abfahrten, die in größer als 5 Minuten stattfinden, angezeigt.
Hi setstate,
danke für deine Antwort, nur leider hilft sie mir nicht :(
Mein Aufruf ist:
get01URL http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=1001170&provider=Mvv
Da finde ich kein vz0
Ich habe sonst keinen Weg gefunden den Münchner Verkehrs Verbund einzubinden.
Grüße Jochen
Hoi Jochen,
schau dir mal die Doku von dem REST-Service unter https://github.com/fewi/public-transport-web-api an. Darin gibt es ein connection und connectionESP Endpoint. Diese liefern genau das was du brauchst. Allerdings musst du dann noch das JSON entsprechend für das Departure TabletUI Modul aufbereiten.
Mein Kollege hat genau das gleiche "First World" Problem gehabt und gelöst. Der REST-Service für das Departure TabletUI Modul ist quasi ein Nebenprodukt davon. Er hat mit einen ESP8266 und einen Lautsprecher sowie Display und 2 Knöpfen ein System entwickelt welches einen rechtzeitig informiert damit man das Haus genau so passend verlassen kann das man keine Wartezeit an der Haltestelle hat. Details zu dem sehr coolen Projekt findet du hier: https://github.com/fewi/esp8266-departure-notify.
Viele Grüße
Stefan
Hallo zusammen,
vor ein paar Tagen kam eine End of Service Mail von Redhat. Die Plattform Openshift V2, auf der derzeit der REST-Service für das Widget läuft wird zum 30.9 eingestellt. Das heißt der Service muss wo anders hin umziehen. Derzeit sind es etwa 48000 Requests in 24 Stunden auf dem Service. Dementsprechend ist der gut genutzt und ich würde ihn ungern einstellen wollen. Die Frage ist also wohin umziehen? Technisch gesehen handelt es sich um eine Springboot Anwendung (Java mit Tomcat inklusive). Eine Möglichkeit wäre auf die Version 3 von Openshift zu migrieren. Diese bietet ebenfalls einen kostenfreien Plan an, der hat aber die Einschränkung der Service muss in 72 Stunden 18 Stunden schlafen, sprich er nimmt dann keine Request entgegen. Der kostenpflichte Service hat diese Einschränkung nicht, kostet dafür aber 50$ pro Monat. Ist also nicht wirklich eine Alternative.
Hat jemand Ideen wohin der Service möglichst kostenfrei umziehen kann? Es ist ohne größere Probleme möglich daraus ein Docker Image zu machen und ein solches Hosting zu nutzen. Zeit ist noch bis 30.9. In jeden Fall wird sich aber die URL des Service ändern. Mein Plan wäre spätestens am 15.9 die Migration/Umzug fertig geplant zu haben um dann in den folgenden Tagen den Umzug zu machen.
Viele Grüße
Stefan
Hallo Stefan
weisst du wie die 18h pro 72h Schlaf verteilt werden? Lässt sich das steuern, zb. 15 Minuten jede Stunde? So etwas würde ich als ohne Probleme verkraftbar ansehen. Im MagicMirror-Modul polle ich per default alle 30 Minuten, damit würde es gut mit einer solchen Restriktion kooperieren, mit allfälliger Anpassung an solche Off-Zeiten.
Gruss
Ben
@sbiermann: Wäre es möglich 2 images laufen zu lassen und diese wechselweise aktiv zu haben? Wenn noch ein Mechanismus zum automatischen umbiegen des URLs auf die richtige Maschine dazukommt (Dyndns ?) hätte man ja fast etwas wie HA mit Active/Passive ;)
Die meisten anderen offerings die ich kenne (z.B. AWS) sind leider auch nur für begrenzte Zeit umsonst (meist 1 Jahr)
Naja, es läuft ja ein Kubernetes unten drunter als Basis von Openshift V3. Dementsprechend wäre das von Haus aus sogar ohne Schwierigkeiten machbar (Kubernetes nutzen wir in der Firma für das Hosting, ist echt klasse). Allerdings umfasst der Free Plan nur 1 Projekt. Man müsste dann 2 Accounts haben. Das Problem ist aber der Loadbalancer davor der entsprechend der Verfügbarkeit dann umleiten müsste. Der dürfte dann nicht bei Openshift gehostet sein, sonst muss der ja auch schlafen. Ist also nicht ganz so einfach.
Ich habe leider bisher keine Informationen gefunden wie sich diese 18 Stunden auf die 72 verteilen. Steuern lässt sich das von extern anscheinend auch nicht.
Hinweis auf abgekündigten Service wurde im Wiki hinterlegt.
https://wiki.fhem.de/wiki/FTUI_Widget_Departure (https://wiki.fhem.de/wiki/FTUI_Widget_Departure)
Hoffen wir, dass sich eine Lösung findet.
Hallo,
seit dem letzten update läuft das departure widget nicht mehr bei mir.
Ich habe schon gelesen, dass der Service wohl Ende September eingestellt werden soll. Oder ist dies eventuell schon seit den letzten Tagen geschehen?
Danke und Grüße,
Ingo
Hallo,
nachdem ich das widget erneut aus dem repository gezogen habe und den browser cache gelöscht habe, funktioniert das widget wieder.
Ich muss meine Aussage leider wieder revidieren ... heute funktioniert das departure widget wieder nicht mehr :-(
Angeblich kommt er mit der "match" Methode in der Funktion 'update' im widget nicht klar.
Grüße,
Ingo
Update:
Es scheint so, als ob beim Aufruf des widgets mit der Datenaktualisierung stattfindet.
Erst nachdem die page reloaded wurde, wird das widget korrekt angezeigt und aktualisiert.
Problem besteht bei FF, Chrome & Fully.
@ setstate:
Könntest du dir das bitte mal anschauen? Was benötigst du da von mir?
Grüße,
Ingo
Servus,
ich habe den Service umgezogen auf einen Server von mir, war mein Plan B wenn sich keine bessere Lösung findet. Dazu musste ich die Anwendung von SpringBoot auf JavaEE umstellen. Dadurch ergeben sich ein paar Änderungen in der URL. Der Rest sollte so wie bisher auch funktionieren. Nach meinen Tests tut es das auch. Dennoch bitte testen, es bleiben ja noch 12 Tage Zeit, bis der alte Dienst abgeschaltet wird. Ich habe das noch nicht nach Github commited, da ich noch die Doku überarbeiten muss.
Hier nun die neue URL um die möglichen Provider abzufragen:
https://transport.stefan-biermann.de/publictransportapi/rest/provider
Dies ist die alte URL am Beispiel der Münchner Verkehrsgedöhns:
http://transportrest-sbiermann.rhcloud.com/departureFHEM?from=1001170&provider=Mvv
Neu sieht diese URL dann so aus:
https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=1001170&provider=Mvv
Der neue Service ist nur noch über https erreichbar, http wird automatisch redirected auf https.
Viele Grüße
Stefan
Läuft einwandfrei! Danke!
Die Änderungen sind jetzt im Wiki dokumentiert. :)
https://wiki.fhem.de/wiki/FTUI_Widget_Departure (https://wiki.fhem.de/wiki/FTUI_Widget_Departure)
Vielen Dank für den reibungslosen Übergang.
Viele Grüße
Ulm32b
Kurze Frage, wenn ich das attr departure_base_url auf den neuen URL änder, warum übernimmt er das nicht und fragt nach wie vor den alten URL ab?
https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=9175007&provider=Bvg
geht übrigens nicht
/Daniel
Hallo Daniel,
woher nimmst du das attr "departure_base_url" bei dem Modul HTTPMOD?
In FHEM sollte dies in etwa so aussehen:
define VVO HTTPMOD none 300
attr VVO event-on-update-reading .*
attr VVO userattr get01Name get01Regex get01URL
attr VVO get01Name Haltestellen-Name
attr VVO get01Regex (\[\[.*\]\]).*
attr VVO get01URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=$ID$&provider=Bvg
attr VVO room Fahrplan
attr VVO timeout 30
attr VVO verbose 0
anpassen:
Haltestellen-Name
$ID$: ID der Haltestelle (zu finden in https://transport.stefan-biermann.de/publictransportapi/rest/station/suggest?q=Haltestellen-Name&provider=Bvg)
Grüße,
Ingo
hi,
das widget läuft super.
Wollte mal fragen, ob man es so konfiguriert bekommt, dass man nur eine bestimmte Richtung angezeigt bekommt. Ich wohne eine Station von der Endhaltestelle entfernt, daher interessiert mich eigentlich nur die andere Richtung.
Gruß und Danke
Christian
Zitat von: erotikbaer am 26 September 2017, 15:18:37
hi,
das widget läuft super.
Wollte mal fragen, ob man es so konfiguriert bekommt, dass man nur eine bestimmte Richtung angezeigt bekommt. Ich wohne eine Station von der Endhaltestelle entfernt, daher interessiert mich eigentlich nur die andere Richtung.
Sehr gute Frage, das würde mich durchaus auch interessieren,
Johannes
Das geht schon lange, allerdings nicht in dem JSON welches von dem TabletUI Departure Widget genutzt wird, ist ein anderer Endpunkt der REST-API. Wenn es an so etwas Bedarf gibt, kann ich einen weiteren Endpunkt machen welcher solche Anfragen berücksichtigt und passendes JSON für das Widget liefert. Also wer möchte alles so eine Möglichkeit nur eine Richtung abzufragen im passenden Widget Format?
Danke für die schnelle Antwort, ich gebe zu, ich habe mir das Rest-API nicht angeschaut. Aber zu Deiner Frage ich wäre interessiert, bei mir ist es auch genau eine Haltestelle bis zum Ende und die kann man in 3 min laufen...
Zitat von: ext23 am 23 September 2017, 09:47:07
Kurze Frage, wenn ich das attr departure_base_url auf den neuen URL änder, warum übernimmt er das nicht und fragt nach wie vor den alten URL
Das attr gibt es ja bei dem Modul 98_Departure
https://forum.fhem.de/index.php/topic,60046.90.html
Dort dürfte das wohl so nicht funktionieren da Teile der URL fest im Modul drin stehen.
Zitat von: sbiermann am 26 September 2017, 15:54:43
Das geht schon lange, allerdings nicht in dem JSON welches von dem TabletUI Departure Widget genutzt wird, ist ein anderer Endpunkt der REST-API. Wenn es an so etwas Bedarf gibt, kann ich einen weiteren Endpunkt machen welcher solche Anfragen berücksichtigt und passendes JSON für das Widget liefert. Also wer möchte alles so eine Möglichkeit nur eine Richtung abzufragen im passenden Widget Format?
Hm, schade :-) scheint wohl nicht ganz so begehrt zu sein solch ein Feature :-)
Aber trotzdem danke dass du angeboten hast es umzusetzen @sbiermann
Hier meldet sich der selbsternannte Repräsentant der schweigenden Mehrheit. 8)
Die Möglichkeit zur Filterung nach Zielpunkten halte ich für sehr erstrebenswert. Auch bei mir ist letztlich nur eine Richtung von Interesse. Es gibt sicher auch Gabelstrecken mit unterschiedlichen Endpunkten, von denen ggf. nur eine relevant ist.
Deshalb möchte ich diese Option hier noch einmal auf die Tagesordnung setzen. Elegant wäre ein Parameter im Widget, mit dem ein oder mehrere Endpunkte angegeben werden können.
Viele Grüße
Ulm32b
Sind insgesamt so 5-7 Leute die eine Filterung wollen, wenn ich mich richtig entsinne. Kann man also mal machen. Nach mehreren Endpunkten wird aber wohl nicht möglich sein. Es geht im Prinzip alles das was in der Android App Öffi bzw. Transportr auch möglich ist. Beide Apps nutzen das gleiche Framework wie die REST-Schnittstelle für das Abfragen der Daten von den Providern. Ich schaue mal wann ich die Erweiterung in meinen Zeitplan untergeschoben bekomme, sollte relativ einfach sein.
Die alte Schnittstelle ist planmäßig zum 1.10 abgeschaltet worden. Man sieht es deutlich an den Zugriffsstatistiken. Die sind von 160 Zugriff pro 15 Minuten auf 30-60 abgestürzt. Wundert mich aber das hier noch keiner gefragt hat warum es nicht mehr geht...
Zitat von: sbiermann am 03 Oktober 2017, 08:22:57
Sind insgesamt so 5-7 Leute die eine Filterung wollen, wenn ich mich richtig entsinne. Kann man also mal machen. Nach mehreren Endpunkten wird aber wohl nicht möglich sein. Es geht im Prinzip alles das was in der Android App Öffi bzw. Transportr auch möglich ist. Beide Apps nutzen das gleiche Framework wie die REST-Schnittstelle für das Abfragen der Daten von den Providern. Ich schaue mal wann ich die Erweiterung in meinen Zeitplan untergeschoben bekomme, sollte relativ einfach sein.
Die alte Schnittstelle ist planmäßig zum 1.10 abgeschaltet worden. Man sieht es deutlich an den Zugriffsstatistiken. Die sind von 160 Zugriff pro 15 Minuten auf 30-60 abgestürzt. Wundert mich aber das hier noch keiner gefragt hat warum es nicht mehr geht...
würde ich dann auch wieder in das modul integrieren.
Hast du meine Änderungen wieder rausgeschmissen, oder existiert die v2 des enpunkts noch?
gruß constantin
Zitat von: sbiermann am 03 Oktober 2017, 08:22:57
Die alte Schnittstelle ist planmäßig zum 1.10 abgeschaltet worden. Man sieht es deutlich an den Zugriffsstatistiken. Die sind von 160 Zugriff pro 15 Minuten auf 30-60 abgestürzt. Wundert mich aber das hier noch keiner gefragt hat warum es nicht mehr geht...
Die stehen vermutlich alle noch an der Haltestelle und warten auf die Züge, die von vorgestern da noch stehen
Die v2 der Schnittstelle existiert noch, ich habe sie allerdings nicht getestet, daher weiß ich nicht ob sie funktioniert.
Ich möchte ja hier nicht den Spielverderber abgeben, aber folgendes zu bedenken geben:
Nehmen wir mal an, dass jemand in Köln regelmäßig mit der U-Bahn vom Heumarkt nach Messe Deutz fährt. Dann kann er die Linien 1 (Endpunkt Brück, Refrath oder Bensberg) oder 9 (Endpunkt Deutz oder Königsforst) benutzen. Eine Filterung nach nur einem Endpunkt ist hier nicht sinnvoll. Das ist keineswegs ein Einzelfall: Verkürzte Linien an Abend finden sich in vielen Netzplänen. Hinzu kommen ggf. auch Nachtbuslinien. Eine weitere Komplikation sind (z.B. bei Bauarbeiten) temporäre alternative Endpunkte. Von Zeit zu Zeit wird man deshalb einen Filter anpassen müssen.
Sehen wir es positiv: Großartig ist die bereits gelöste robuste Bereitstellung aktueller Abfahrtszeiten einer Haltestelle. Cool fände ich, wenn man nach mehreren Zielpunkten (positiv und negativ) filtern könnte; und wenn man schon dabei ist, vielleicht auch nach Linien. Damit dürfte die Mehrzahl realer Konstellationen abgedeckt sein. Die Filterung sollte erst am Frontend erfolgen und nutzerfreundlich transparent gestaltet sein. Hier bietet sich das FTUI-Widget Departure an. Wenn ich js könnte ...
Mein Vorschlag lautet, dass zunächst die Anforderungen betrachtet werden, bevor Hand an den Code gelegt wird.
Beste Grüße
Ulm32b
In dem Framework welches genutzt wird gibt es nur die Möglichkeit einen Endpunkt anzugeben bei einer Verbindungsabfrage. Hier liegt aber glaube ich eher ein sprachliches Missverständnis vor. Endpunkt im Sinne von Öffi/Transportr bzw. dieser REST-Schnittstelle bedeutet nicht Endhaltestelle sondern die Zielhaltestelle. Sprich in dem Beispiel vom Heumarkt nach Messe Deutz ist der Endpunkt Messe Deutz und nicht die Endhaltestellen der einzelnen Linien 1 oder 9.
o.k.
Gut, dass wir darüber geredet haben. ;D
Es werden also alle Relationen zwischen Anfangs- und Endpunkt geliefert. Damit erledigen sich meine Bedenken. :)
Gleichzeitig kommen neue Gedanken auf: Werden dann auch Relationen mit Umstiegen ausgewiesen? Kannst Du bitte mal ein Beispiel für den gelieferten Datensatz aufzeigen? Ggf. wäre dann über ein passendes Frontend in FTUI nachzudenken.
Beste Grüße
Ulm32b
Umgesetzt ist das die direkten Verbindungen zwischen den beiden Haltestellen genommen werden.
Mal ein Bespiel aus Freiburg: Hauptbahnhof zum Friedrich Ebert Platz: https://transport.stefan-biermann.de/publictransportapi/rest/connection?from=6906508&to=6930811&product=T
Als Ergebnis kommt ein JSON welches nicht für das Departure Modul nutzbar ist. Meine Änderung ist nun das ich die Antwort so anpasse das es nur noch die Abfahrtzeiten für diese Verbindung anzeigt im passenden Format für das Departure Modul. Ist wie schon geschrieben eher eine kleine Anpassung.
Ich glaube, Ulm32b ist etwas auf dem Holzweg. Was du willst ist eigentlich Aufgabe einer Automation.
Diese Funktion einen Frontend zu überlassen wird immer unflexibel sein.
Ich denke, dass ein Redesign des Widgets das beste wäre. Holt doch einfach die Daten mit FHEM, berechnet sie, wie ihr sie benötigt und nutzt das Widget nur zur Anzeige
Hi,
das Modul und Widget funktioniert super. Danke.
Ich wollte gerade das from to ausprobieren...Ich erhalte aber folgende Rückmeldung: EFA error status: UNKNOWN_FROM
Ich benutze den Provider Bahn, funktioniert dieser nicht mit dem from to?
Welche Provider können das denn?
Ist es eigentlich auch möglich die Abfahrtszeit und die Minuten bis zur Abfahrt gleichzeitig anzuzeigen?
Viele Grüße
zobi
Hmm, also in meinen Tests hat es funktioniert, siehe URL weiter oben. Wie sieht denn die URL aus? Möglicherweise ist die StationId falsch.
hi,
habe soeben festgestellt, dass die statis von devices nicht aktualisiert werden, wenn ich ein departure widget auf der seite habe.
ist auch reproduzierbar:
-departure widget aktiv
-in fhem eine lampe schalten
status in ftui wird nicht aktualisiert. schalten kann ich aus ftui noch.
deaktiviere ich das widget, funktioniert alles wunderbar.
hat jemand eine idee?
gruß christian
Habe das gleiche bei mir, aber leider keine Idee. In der Webkonsole steht auch nichts was mich weiterbringt (keineFehler)
Und hier (https://forum.fhem.de/index.php/topic,77179.msg694271.html#msg694271) haben die User viegener und ToM_ToM das gleiche Problem.
Grüße Fritz
OK, ich habe das mal eingrenzen können, es liegt wohl daran, dass beim Initialisieren ein Aufruf von requestUpdate erfolgt, der wiederum setFhemStatus aufruft. Dabei wird irgendwie der shortpoll beeinflusst (verzögert).
Wenn man diesen Aufruf durch sendFhemCommand ersetzt geht es bei mir wieder. Also
Zeile 28 in widget_departure.js statt
ftui.setFhemStatus(cmdl);
ändern in:
ftui.sendFhemCommand(cmdl);
Neuladen geht zumindest bei mir, macht aber wieder klar, dass in FTUI etwas gebraucht wird um sicherzustellen, dass widgets nicht grundlegende Elemente des updates aus dem Tritt bringen können. Ich vermute neben initwidgetsdone wird noch mehr Mechanismus gebraucht um sicherzustellen, dass zumindest am Anfang alle Daten abgerufen werden (denn das scheint heir das Problem zu sein).
habe mir nach einigem Einlesen auch das Widget drauf gemacht, schaut echt super aus! Danke!!!!
allerdings zeigt es bei mir unter den "Tafeln" die "class" an? wie bringe ich dieses weg?
Zitat von: australien am 06 Oktober 2017, 13:07:24
habe mir nach einigem Einlesen auch das Widget drauf gemacht, schaut echt super aus! Danke!!!!
allerdings zeigt es bei mir unter den "Tafeln" die "class" an? wie bringe ich dieses weg?
Poste doch mal Deinen Code, ich wüsste nicht, dass bei mir ein text darunter angezeigt wird
sorry, und danke!
hab gerade den Code gecheckt, war als <div> verbaut :(
Kein Problem - Gern geschehen - dafür sind ja viele hier im Forum da
Zitat von: Standarduser am 04 Oktober 2017, 20:36:37
Ich glaube, Ulm32b ist etwas auf dem Holzweg. Was du willst ist eigentlich Aufgabe einer Automation.
Diese Funktion einen Frontend zu überlassen wird immer unflexibel sein.
Ich denke, dass ein Redesign des Widgets das beste wäre. Holt doch einfach die Daten mit FHEM, berechnet sie, wie ihr sie benötigt und nutzt das Widget nur zur Anzeige
Vielleicht bin ich etwas egoistisch. Mein Szenario ist, dass der mit gesundem Halbwissen ausgestattete Endanwender :D auch mal ein Vierteljahr nicht den Code anfasst. Dann kommt eine notwendige Änderung. Und sofort danach die Frage: Wie war das noch? :-\
Sich dann in HTTPMOD o.ä. wieder zurechtzufinden dauert und erhöht die Hemmschwelle. Ein Parameter im FTUI-Widget erscheint mir demgegenüber transparenter.
Nachdem sich geklärt hat, dass zukünftig Relationen zwischen beliebigen (direkt verbundenen) Haltestellen geliefert werden, ist der Pflegeaufwand wohl auch viel geringer als zunächst vermutet. Wenn es unterschiedliche Relationen von Interesse gibt, könnte man ja parallel mehrere Departure-Widgets nutzen.
Also haben wir schon einen ziemlich guten Stand, wofür ich den Knowhowträgern sehr dankbar bin. Dass es, gerade im Departure-Widget, noch ein paar Ecken und Kanten gibt, glaube ich auch zu beobachten. Die Aktualisierung beim Aufruf der Seite (Pagebutton) scheint nicht mehr zu klappen, man wartet dann bis zum nächsten Longpoll. Die Spurensicherung ist ja auch schon am Werk. :) https://forum.fhem.de/index.php?action=post;quote=694600;topic=48255.165#postmodify (https://forum.fhem.de/index.php?action=post;quote=694600;topic=48255.165#postmodify)
So, ich habe mal eine erste Version des Endpunktes bereit gestellt.
Die URL sieht so aus:
https://transport.stefan-biermann.de/publictransportapi/rest/connection/FHEM?from=6906508&to=6930100&product=T&provider=Vagfr&limit=10
und liefert als Ergebnis:
[["4","Bertoldsbrunnen","1"],["1","Bertoldsbrunnen","4"],["3","Bertoldsbrunnen","5"],["1","Bertoldsbrunnen","10"],["4","Bertoldsbrunnen","11"]]
In meinen Beispiel habe ich vom Freiburger Hauptbahnhof zum Bertoldsbrunnen gewählt. Die Zeiten sollten die Abfahrtszeiten inklusive möglicher Verspätung sein. Zu der URL, die Parameter provider und limit sind optional, wenn man die nicht angibt wird automatisch der Freiburger EFA Server genutzt und die Anzahl der Verbindungen ist auf 10 begrenzt. Der Parameter product kann T=Tram oder B=Bus sein, keine Ahnung ob es da noch andere gibt, hängt wohl vom Provider ab.
Die Anfragen sind sehr teuer (dauern lange) da die angesprochenen Provider die Strecken erst berechnen und dann das Ergebnis zurück liefern und anschließend noch weitere Ergebnisse nachgefordert werden, weil es sonst in der Regel zu wenige sind.
Zitat von: sbiermann am 05 Oktober 2017, 20:29:11
Hmm, also in meinen Tests hat es funktioniert, siehe URL weiter oben. Wie sieht denn die URL aus? Möglicherweise ist die StationId falsch.
Hi,
die Station IDs funktionieren einzeln...
hier ist mein Link:
https://transport.stefan-biermann.de/publictransportapi/rest/connection?from=129069&to=8000240&product=T
Edit: Muss bei dem from to Link kein eigentlich kein Provider angegeben werden? Oder funktioniert das nur mit einem bestimmten?
Hi,
ich muss zwei Fragen, die hier bereits gestellt wurden, aufgreifen.
Als erstes habe ich ein Problem mit dem Provider Bahn. Leider wird mein Verkehrsbetrieb nicht unterstützt, kann jedoch ("theoretisch") auf den Provider Bahn ausweichen. Nachdem ich meine Station herausgesucht habe, kommt die Fehlermeldung: EFA error status: INVALID_STATION.
Der Fehler ist reproduzierbar für verschiedene Stationen der Bahn. An dem Beispiel des Hauptknotenpunktes in der niedersächsischen Hauptstadt:
https://transport.stefan-biermann.de/publictransportapi/rest/station/suggest?q=Kr%C3%B6pcke&provider=Bahn (https://transport.stefan-biermann.de/publictransportapi/rest/station/suggest?q=Kr%C3%B6pcke&provider=Bahn)
Die Stations-ID ist 614046
Mit diesen Informationen die Seite https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=614046&provider=Bahn (https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=614046&provider=Bahn) aufgerufen und der o.g. Fehler erscheint.
Scheint ein ähnlicher Fehler zu sein, den Zobi in Post #173 bereits geschrieben hat.
Wie kann ich das Problem lösen?
Als zweites ist mir aufgefallen, dass meine anderen Devices- wie u.a. von Viegener am 06.10.2017 geschrieben - nicht aktualisieren wenn ein Departure-Widget eingebunden ist. Gibt es hierfür schon eine Lösung?
Gruß
Mahlzeit, ich habe gerade noch einen Fehler im Wiki (https://wiki.fhem.de/wiki/Departure)entdeckt:
Dort steht als Beispiellink:
https://transport.stefan-biermann.de/publictransportapi/rest/departureFHEM?from=6930306&provider=Vvs
es müsste allerdings mit einem zusätzlichen Slash zwischen departure und FHEM sein:
https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=6930306&provider=Vvs
Ansonsten wirft der HTTPMOD 404.
Kann das evtl im Wiki noch angepasst werden?
PS: Ich als "Neuling" finde es irgendwie merkwürdig, dass ich mich mit meinen Foren-Daten nicht im wiki anmelden kann ???
Ist korrigiert (auch wenn ich mich bisher nur um das Departure im FTUI-Wiki gekümmert hatte). Die Station-ID war offenbar auch falsch gewesen.
Den Account zur Bearbeitung bekommt man schnell bei einem Moderator, siehe Impressum.
Hallo zusammen,
mir ist seit ein paar Tagen aufgefallen, dass die Updatefunktion des widgets nicht korrekt bei zwei gleichzeitig angezeigten Departure Widgets funktioniert.
Ich benutze die class "DVB" und lasse mir in FTUI zwei Haltestellen auf dem TAB anziegen. Beim ersten load werden manchmal beide widgets korrekt aktualisiert. Jedoch greift bei einem der widgets immer das auto reload / update nach 60sec nicht. Nun habe ich schon zusätzlich zum FF den Chrome ausprobiert - gleiches Ergebnis, ganz zu schweigen von Fully. Auch ein manuelles Auslösen des widget updates über den refresh buttin widget bringt keine neuen Daten zur Anzeige. Auch ein refresh der gesamten FTUI page bringt keine neuen Daten ins widget. Prinzipiell funktioniert das widget ja. Jedoch nicht mit Updates über einen längeren Zeitraum. In FHEM selbst ist mi aufgefallen, dass die nicht funktionierende HS ebenfalls nach den 60sec keine neuen Daten holt. Jedoch wird bei einem gesamten reload der FHEM page ein update ebenfalls von dieser HS durchgeführt.
Weiterhin habe ich mal beide widgets vertauscht - es wird immer das gleiche widget nicht korrekt aktualiesiert. Hat also nix mit der Position in FTUI zu tun. Auch ein Vertausch in der DEF von FHEM hat das gleiche Ergebnis gebracht. Ich bin etwas ratlos, wovon diese nicht durchgeführte Aktualisierung herkommt.
Der einzige Anhaltspunkt für mich ist, dass die nicht funktionierende HS Umlaute im Namen beinhaltet.
Kann dieses Phänomen jemand nachvollziehen? Bzw. gibt es bereits bekannte Probleme mit dem widget, sofern es auf einer page zwei Mal aufgerufen wird?
Update:
Ich habe bemerkt, dass das widget neue Daten von FHEM anzeigt, sobald in FHEM neue Daten reinkommen. Demnach muss es an FHEM selbst liegen und nicht am widget. Meine config habe ich mal mit angehangen.
Update 2:
Ich habe seit der widget v.1.53 in Fully ein Problem mit der Anzeige der Daten im widget - es bleibt leer. In allen anderen browsern funktioniert die Datenanzeige korrekt.
Danke und beste Grüße,
Ingo
Ich kann bzw. muss dieses Verhalten bestätigen. Bei mir sind es 4 Departure-Widgets, von denen 2 beim Aufruf der Seite aktualisiert werden, die beiden anderen erst beim nächsten longpoll.
(Nur) Eines der beiden Widgets trägt einen Umlaut im Namen.
:-\
Hallo FHEM´ler =)
Respekt für die Arbeit, die ihr in dieses Widget steckt!
Leider funktioniert es bei mir nicht.
Die Datenquelle schein richtig zu funktionieren. Die Readings erscheinen und sehen auch richtig aus.
Im Widget erscheint jedoch nur der Stationsname...
Hier mein html Teil:
<div data-type="departure"
data-device="VierGrenzen"
data-get="Vier Grenzen"
data-icon="fa-bus"
data-interval="60">
</div>
Mein get01name: Vier Grenzen
Mein Device heißt VierGrenzen
Ist mit Sicherheit nicht die beste Bezeichnung aber sollte doch dennoch funktionieren oder nicht?
Das Leerzeichen habe ich testweise mal nur einen Bindestrich ersetzt - jedoch ohne Erfolg.
Hat da jemand einen Tipp für mich?
LG Matze
Zitat von: Ulm32b am 01 November 2017, 00:01:09
Ich kann bzw. muss dieses Verhalten bestätigen. Bei mir sind es 4 Departure-Widgets, von denen 2 beim Aufruf der Seite aktualisiert werden, die beiden anderen erst beim nächsten longpoll.
(Nur) Eines der beiden Widgets trägt einen Umlaut im Namen.
:-\
Bei mir funktionierten nur 2 von 3. Es lag an "Straße". Mit "Strasse" funktioniert es.
Hallo zusammen,
ich denke ich habe das Problem bei mir gelöst. Meine nicht funktionierende HS hatte ein Umlaut (ä) im Namen. Diesen habe ich im attr get02Name in "ae" umgeändert. Demzufolge habe ich ebenfalls das data-get im widget ebenso angepasst.
=> auf einmal funktioniert das Update wie gewollt aller 60sec in fhem und im FTUI. Getestet im FF & Chrome. Im Fully wird das auto-update immer nur einmalig nach einem kompletten page reload ausgeführt. Danach bleibt es stumm :-(
Zum Thema "ss" anstatt "ß":
Dies habe ich bei mir schon immer überall mit "ss" geschrieben. Dies löste jedoch nicht das auto update Problem. Es lag definitiv am Umlaut.
Grüße,
Ingo
Ich konnte nun eindeutig nachvollziehen, dass sowohl ein Umlaut als auch ein ß im Namen des readings den refresh bei Aufrufen der Seite (pagebutton) verhinderten.
Eine entsprechende Empfehlung wurde in die Doku aufgenommen.
Gleichzeitig möchte ich hier anregen, dass die Identität des angezeigten Widgettitels und des Readings aufgehoben wird, d.h. dass der Titel im Frontend unabhängig festgelegt werden kann, z.B. durch das Attribut data-title. Damit werden Verrenkungen bei der Rechtschreibung vermieden.
Anregung übernommen:
data-title für den Station-Name. Wenn nicht angegeben, wird data-get angezeigt.
Zitat von: setstate am 04 November 2017, 08:47:22
Anregung übernommen:
data-title für den Station-Name. Wenn nicht angegeben, wird data-get angezeigt.
Sehr schön. Änderungen sind nun auch in der Doku nachgeführt.
Hallo. Seit einigen Wochen erscheint nach der (korrekten) Liste der Abfahrten ein "undefined" bei Linie, Ziel und Minuten, siehe Screenshot. Außerdem fällt auf, dass die Spaltenüberschriften nicht mehr ausgegeben werden.
Die Datenquelle ist unauffällig:
Ulmer_Str.
[["208","Rheinallee","1"],["208","Wilmersdorfer Str.","12"],["208","Rheinallee","30"],["208","Wilmersdorfer Str.","43"],["208","Rheinallee","60"],["208","Wilmersdorfer Str.","72"],["208","Rheinallee","90"],["208","Wilmersdorfer Str.","102"],["208","Rheinallee","120"],["208","Wilmersdorfer Str.","132"]]
2017-12-09 15:41:11
<div data-type="departure"
data-device="Nahverkehr_xyz"
data-get="Ulmer_Str."
data-title="Ulmer Straße"
data-icon="fa-bus"
data-width="220"
data-interval="60"
class="alternate top-space-2x centered">
</div>
Es gibt wohl ein Problem im aktuellen departure widget:
zeile 162:
for (var idx in collection) {
n++;
var line = collection[idx];
...
funktioniert so nicht, idx nimmt bei mir die Werte 1 bis 9 und dann "clone" an --> wobei clone eine an Array() hinzugefügte Funktion ist.
Lösung normales for über die Indices:
Zeile 162:
for ( var idx = 0; idx < collection.length; idx++) {
Prima. Vielen Dank.
Mit Priorität C bleibt noch offen: Fehlende Spaltenüberschriften.
Im Wiki habe ich übrigens ein Beispiel zur Umschaltung zwischen relativer und absoluter Abfahrtszeit eingefügt: https://wiki.fhem.de/wiki/FTUI_Widget_Departure (https://wiki.fhem.de/wiki/FTUI_Widget_Departure).
Und dann noch eine weitere Beobachtung (Fully; schon seit einigen Wochen): Der Autorefresh nach dem Einblenden der Pagebutton-Seite führt lt. Toast-Message zum einmaligen Abholen neuer Daten (=korrekt); die Tabelle im Widget wird anchließend aber 9 mal ab- und wieder aufgeblendet. Dieses Flackern beeinträchtigt das Nutzererlebnis ...
Hallo,
ich habe das Departure Widget neu im Einsatz (2 Stück auf einer Seite mit einem Pagebuttonmenü) und habe das Problem, dass die Widgets nicht regelmäßig aktualisiert werden. Die Abfahrtszeiten in FHEM werden regelmäßig bzw bei Anforderung (manueller Refresh) abgeholt, aber die Widgets aktualisieren sich unterschiedlich.
Unterschiedlich bedeutet: Auf meinem PC (auf dem das Bild entstanden ist) wird ein Widget aktualisiert, das andere ist bei der Uhrzeit des ersten Starts hängen geblieben, auf meiner Anzeige im Flur (Raspi mit Display, auf diesem läuft FHEM und der Webserver) habe ich ein ähnlichen Phänomen, das rechte Widget ist ebenfalls seit dem letzten Neustart des Browser (Chromium) hängen geblieben, das linke macht sporadische Updates.
Der Screenshot anbei zeigt zum einen diese Situation mit den unterschiedlichen Aktualisierungszeiten und ein zweites Phänomen, das ein bisschen dem von Ulm32b entgegenspricht.
Der Autorefresh ergibt bei mir je Widget 3 Toastmessages, der manuelle Abruf per Refresh Klick im Widget ergibt nur eine Message.
Das Flackern hatte ich interessanterweise gestern nach dem Einrichten auch, heute ist es verschwunden.
Nachtrag:
Mit wiederhergestellter Original Java Datei (ohne die Änderungen von viegener) ist das mehrmalige Aufflackern wieder da, das scheint also mit dieser Änderung behoben zu sein.
Die mehrmaligen Taostmessages bleiben.
Beide Widgets haben sich richtig aktualisiert bei einem KOmplettrefresh im Browser, aber das rechte wieder nur beim Start)
Ich habe nun eine Optimierung des Refreshs eingebaut. Mind. 15 Sek. bis zum nächsten Refresh müssen vergehen. Das verhindert das Flackern durch zu häufiges Update.
Hallo, noch ein Nachtrag: Das nichtaktualieseren des Widgets kommt doch definitiv aus FHEM und nicht aus dem Java Applet. Dieser Eintrag wurde dort seltsamerweise nur teilweise aktualisiert. Nachdem ich testweise eine andere Adresse angelegt hatte wurde das klar. Sorry für die Aufregung an dieser Stelle.
Zitat von: setstate am 17 Dezember 2017, 10:16:36
Ich habe nun eine Optimierung des Refreshs eingebaut. Mind. 15 Sek. bis zum nächsten Refresh müssen vergehen. Das verhindert das Flackern durch zu häufiges Update.
Habe gerade das Update gemacht. Er aktualisiert immer noch mehrmals beim Wechsel auf die Seite. Ich habe immer noch drei Toast Messages je Widget.
ZitatHallo, noch ein Nachtrag: Das nichtaktualieseren des Widgets kommt doch definitiv aus FHEM und nicht aus dem Java Applet. Dieser Eintrag wurde dort seltsamerweise nur teilweise aktualisiert. Nachdem ich testweise eine andere Adresse angelegt hatte wurde das klar. Sorry für die Aufregung an dieser Stelle.
Umlaute sollten im Namen der Haltestelle vermeiden werden. Man kann im Widget data-title definieren, dort kann man dann wieder die richtige Schreibweise benutzen.
Hallo setstate,
ich habe bereits auch schon gedacht dass es am "ß" in Straße liegt, aber ich habe das ganze jetzt in FHEM mit dem Namen Pommernstrasse angelegt, trotzdem sieht es so aus für die drei Haltestellen:
Braunfeld
[["30","Hauptbahnhof","1"],["31","Hauptbahnhof","44"],["9","HBF/Albertstraße","50"],["30","Hauptbahnhof","81"],["9","HBF/Albertstraße","110"],["31","Hauptbahnhof","124"],["30","Hauptbahnhof","161"],["9","HBF/Albertstraße","170"],["31","Hauptbahnhof","204"],["9","HBF/Albertstraße","230"]]
2017-12-17 11:06:47
Heising
[["31","Hauptbahnhof","47"],["30","Hauptbahnhof","78"],["31","Hauptbahnhof","127"],["30","Hauptbahnhof","158"],["31","Hauptbahnhof","207"],["30","Hauptbahnhof","238"],["31","Hauptbahnhof","287"],["30","Hauptbahnhof","318"],["31","Hauptbahnhof","367"],["30","Hauptbahnhof","398"]]
2017-12-17 11:06:48
Pommernstrasse
[["9","Haidauer Straße","7"],["30","Hauptbahnhof","10"],["31","Hauptbahnhof","42"],["9","HBF/Albertstraße","58"],["9","Haidauer Straße","67"],["30","Hauptbahnhof","90"],["9","HBF/Albertstraße","118"],["31","Hauptbahnhof","122"],["9","Haidauer Straße","127"],["30","Hauptbahnhof","170"]]
2017-12-17 11:02:35
Interessant ist auch, FHEM aktualisiert wenn ich manuell "get Abfahrt Pommernstrasse" eingebe oder das ganze in FHEM über den Button mache. Nur die automatische Aktualisierung funktioniert nicht.
Keine Ahnung was da falsch ist
Hallo, ich habe mir das Departure Widget heruntergeladen und installiert. Bei mir werden nun die Abfahrtzeiten für beide Fahrtrichtungen in einer Box angezeigt. Kann man das irgendwie trennen? So dass ich 2 Boxen haben, für jede Fahrtrichtung eine Box?
Ich habe mich an die Wiki-Anleitung https://wiki.fhem.de/wiki/FTUI_Widget_Departure gehalten.
ZitatHallo, ich habe mir das Departure Widget heruntergeladen und installiert. Bei mir werden nun die Abfahrtzeiten für beide Fahrtrichtungen in einer Box angezeigt. Kann man das irgendwie trennen? So dass ich 2 Boxen haben, für jede Fahrtrichtung eine Box?
Ich habe mich an die Wiki-Anleitung https://wiki.fhem.de/wiki/FTUI_Widget_Departure gehalten.
Eine Filterung nach Richtung (hierzu gibt es auch keine Daten) bzw. Endpunkten ist im Departure-Widget nicht vorgesehen. Das Thema wurde im Herbst bereits diskutiert, vgl. weiter oben. Es gibt Bestrebungen, bei der Datenbereitstellung Direktrelationen zwischen zwei Haltestellen herauszufiltern.
https://forum.fhem.de/index.php/topic,48255.msg696810.html#msg696810 (https://forum.fhem.de/index.php/topic,48255.msg696810.html#msg696810)
Ist wohl noch in der Beta-Phase.
Habe ich gestern abend gefunden. Habe meine get01URL wie in Post #183 von sbiermann angepasst. Funktioniert soweit, nur das die 1. 3 Einträge doppelt angezeigt werden (Fahrt 1, 2, 3, 1, 2, 3, 4, 5, 6, 7)
Zitat von: setstate am 17 Dezember 2017, 10:16:36
Ich habe nun eine Optimierung des Refreshs eingebaut. Mind. 15 Sek. bis zum nächsten Refresh müssen vergehen. Das verhindert das Flackern durch zu häufiges Update.
Kann es sein, dass dieses Update noch gar nicht verteilt wurde?
Mein LOG sagt: "nothing to do..."
;D stimmt, da fehlte noch der push
Zitat von: setstate am 17 Dezember 2017, 10:16:36
Ich habe nun eine Optimierung des Refreshs eingebaut. Mind. 15 Sek. bis zum nächsten Refresh müssen vergehen. Das verhindert das Flackern durch zu häufiges Update.
So, nach dem Update ist das Feuerwerk weitestgehend abgestellt. Weitestgehend, weil von meinen 4 Widgets eines zweimal ab- und wieder aufblendet.
Mal grundsätzlich: Ist das Ab- und Aufblenden technich bedingt oder ein Feature? Vergleichbares gibt es bei der Aktualisierung anderer Anzeigen m.E. nicht.
Bei mir gibt es nach dem Update nur noch eine Toastmessage und auch kein Blinken mehr. Danke setstate.
Guten Morgen!
Ich versuche mich schon eine weile aber leider fehlt mir das letzte Teil denn ich komme nicht weiter, wie bekommnt man die Abstände zwischen den Widgets in der Row"4" größer???
<!DOCTYPE html>
<html>
<head></head>
<body>
<div class="gridster">
<ul>
<li data-row="1" data-col="1" data-sizex="1" data-sizey="6" data-template="menu.html"></li>
<li data-row="1" data-col="3" data-sizex="7" data-sizey="3" class="top-space-2x">
<div data-type="image" class="newline"
data-url="xxxxxxxxxxxxxxxxx"
data-width="900" data-height="400"></div>
</li>
<!-- WohnBox -->
<li data-row="4" data-col="2" data-sizex="2" data-sizey="2" class="top-space-3x left-space">
<table class="calls">
<div data-type="image" class="cell"
data-url="xxxxxxxxxxxxxxxxxxxx"
data-width="200" data-height="200"></div>
<div data-type="link"
class="center nocache round"
data-width="200" data-height="50"
data-color="white"
data-background-color="green"
data-text-align="center"
data-url="#homebox.html">GO HomeBox</div>
</li>
<!-- PoolBox -->
<li data-row="4" data-col="3" data-sizex="2" data-sizey="2" class="top-space-3x left-space">
<div data-type="image" class="cell"
data-url="xxxxxxxxxxxxxxxxxxxxxxx"
data-width="200" data-height="200"></div>
<div data-type="link"
class="center nocache round"
data-width="200" data-height="50"
data-color="white"
data-background-color="blue"
data-text-align="center"
data-url="#poolbox.html">GO PoolBox</div>
</li>
<!-- OfficeBox -->
<li data-row="4" data-col="4" data-sizex="2" data-sizey="2" class="top-space-3x left-space">
<div data-type="image" class="cell"
data-url="xxxxxxxxxxxxxxxxxxxxxxxxx"
data-width="200" data-height="200"></div>
<div data-type="link"
class="center nocache round"
data-width="200" data-height="50"
data-color="white"
data-background-color="#aa6900"
data-text-align="center"
data-url="#homebox.html">GO OfficeBox</div>
</li>
<!-- PopUpBox -->
<li data-row="4" data-col="5" data-sizex="2" data-sizey="2" class="top-space-3x left-space">
<div data-type="image" class="cell"
data-url="xxxxxxxxxxxxxxxxxxxxxxx"
data-width="200" data-height="200"></div>
<div data-type="link"
class="center nocache round"
data-width="200" data-height="50"
data-color="white"
data-background-color="#8600B3"
data-text-align="center"
data-url="#poolbox.html">GO PopUpBox</div>
</li>
</ul>
</div>
</body>
</html>
Mfg Steffen
Das <table class="calls"> ist da falsch drin
und wenn data-sizex="2" ist, kann es nicht data-col="4" und data-col="5" sein. Der Abstand muss dann auch 2 sein, sonst überlappt sich das. Überlappung wird aber nicht gemacht, also erscheinen die Boxen irgendwo, wo man es nicht erwartet.
Zitat von: setstate am 20 Dezember 2017, 08:04:25
Das <table class="calls"> ist da falsch drin
und wenn data-sizex="2" ist, kann es nicht data-col="4" und data-col="5" sein. Der Abstand muss dann auch 2 sein, sonst überlappt sich das. Überlappung wird aber nicht gemacht, also erscheinen die Boxen irgendwo, wo man es nicht erwartet.
Ok habe alles nach deinen Hinweisen geändert, aber bleibt trotzdem ohne Abstand???
Mfg Steffen
Hi,
habe gerade das departure-Widget in mein FTUI eingebunden.
Ich habe mal 4 Screenshots angehängt, die ich kurz beschreiben möchte:
1) Widget ohne Größenangabe. Passt sich nicht an die gridster-Kachel an, sondern ist zu schmal, aber zu hoch.
2) Widget mit data-width="100%". Passt jetzt von der Breite perfekt in die Kachel.
3) Widget mit (zusätzlich) data-height="100%" -> Das Widget wird nur noch sehr zerstört angezeigt
4) Widget mit data-height="10%"-> auch hier wird das Widget nicht richtig angezeigt.
Ich habe nur zwei, max. 3 Abfahrtszeiten, die ich anzeigen will, deshalb würde ich mich freuen, wenn das Widget in die Kachel reinpassen würde.
Kann mir jemand einen Tipp geben, was ich falsch mache?
Grüße,
Stephan
data-width und data-height funktioniert hier nur mit px Angaben
Hi,
das bedeutet dann aber, dass es nicht mehr skaliert, wenn ich es auf unterschiedlichen Displays (PC, Handy, Tablet) ansehe, oder?
Grüße,
Stephan
Hallo,
ich möchte gerne die Afahrzeiten von dem Bahnhof Baden-Baden anzeigen lassen.
Im Oktober hat es noch funktioniert, aber jetzt kommt immer "Internal Server Error".
Folgende URL rufe ich auf: https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=723537&provider=Bahn
Was mache ich falsch?
Grüße!
Zitat von: kaufi88 am 28 Dezember 2017, 23:02:40
Was mache ich falsch?
Die Seite, die du nutzt, ist offline
Zitat von: MKeY am 28 Dezember 2017, 23:11:12
Die Seite, die du nutzt, ist offline
Verrätst Du mir die richtige URL? ;-)
Wenn ich nach der ID von Baden-Baden schauen und die eingebe, bekomme ich einen Fehler. Da muss derjenige ran, der das Modul schreibt oder sich mit den ID's auskennt, sorry
Zitat von: MKeY am 29 Dezember 2017, 00:06:44
Wenn ich nach der ID von Baden-Baden schauen und die eingebe, bekomme ich einen Fehler. Da muss derjenige ran, der das Modul schreibt oder sich mit den ID's auskennt, sorry
OK, Danke trotzdem.
Weißt Du zufällig, wie ich die Textlänge der "Linie" auf max. 3 Zeichen kürzen kann?
Habe mir nun ein Perl Skript geschrieben, welches die Zugdaten kürzt.
Als Quelle habe ich von DB auf KVV umgestellt, da DB in Verbindung mit meiner Station keine Daten mehr liefert.
Doch jetzt habe ich gerade festgestellt, dass auch die Abfrage mittels KVV fehlschlägt.
Das ist die URL: https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=7001847&provider=Kvv
Wisst ihr, an wen man sich da wenden kan bzw. auf den Fehler hinweisen kann?
Grüße!
https://forum.fhem.de/index.php?action=profile;u=5250
denke er hat des fabriziert :-)
Hmpf, gut das die E-Mailbenachrichtigung nicht funktioniert. So habe ich gar nicht mitbekommen das es hier Anfragen gab. Bitte am besten auch noch eine PN schicken mit Hinweis auf den Thread hier, die PN Mails kommen wenigstens bisher immer an...
Also zum Problem. Das mit den Bahn Provider muss ich selber mal prüfen. Die KVV funktioniert derzeit nicht weil die deren Webseite bzw. die URL zur Abfrage der Daten geändert haben. Es gibt bereits einen Pullrequest (https://github.com/schildbach/public-transport-enabler/pull/185) bei dem "public-transport-enabler" Projekt, welches von mir genutzt wird um die Anfragen an die einzelnen Provider zu machen. Wenn dieser Pullrequest akzeptiert ist, kann ich eine neue Version der REST-Schnittstelle bauen und deployen. Dann sollte auch wieder die KVV funktionieren. Ich vermute mal es dauert ein paar Tage bis der Pullrequest durch ist.
Zitat von: setstate am 21 Dezember 2017, 20:45:18
data-width und data-height funktioniert hier nur mit px Angaben
Hallo,
das stimmt so leider nicht. "data-height" funktioniert bei mir gar nicht. Sobald es gesetzt wird, hat das Element gar keine Höhe mehr.
Meine BeispieleAusgabe OK, aber mit falscher HöheHTML code ohne data-height
<div class="small alternate" data-type="departure" data-device="Reise.Abfahrt.Westkreuz.MVV" data-get="Westkreuz" data-icon="fa-subway" data-title="Westkreuz" data-width="100%" data-interval="30"></div>Gerenderter Code im Browser
<div class="departure" style="height: 250px; color: rgb(221, 221, 221); background-color: rgb(192, 192, 192);"><div class="icon fa fa-subway fa-lg fa-fw" style="color: rgb(170, 105, 0);">
... restlicher code des departure Widgets ...
</div>Fehlerhafte AusgabeHTML Code
<div class="small alternate" data-type="departure" data-device="Reise.Abfahrt.Westkreuz.MVV" data-get="Westkreuz" data-icon="fa-subway" data-title="Westkreuz" data-width="140px" data-height="250px" data-interval="30"></div>Gerenderter Code im Browser
<div class="departure" style="color: rgb(221, 221, 221); background-color: rgb(192, 192, 192);">
... restlicher code des departure Widgets ...
</div>Bei "style=..." fehlt die benötigte height Angabe komplett.
Dasselbe Verhalten kann man übrigens bei data-width auch beobachten.
Und wenn ich schon dabei bin.
- Die Spaltenüberschriften fehlen bei mir komplett. Die sind im Browser nicht angekommen.
- Der Abstand zwischen Überschrift und Liste ist viel zu groß. Normalerweise sind hier die Überschriften, aber es wäre toll diese ausschaltbar zu machen, da die Liste aus meiner Sicht selbsterklärend ist.
Kannst Du das nachvollziehen und gibt es eine Chance, dass das noch angepasst wird?
@sbiermann: Zwischenzeitlich ging der KVV ja wieder, aber seit einigen Tagen gibt es nur noch "internal server error"
Ist da was bekannt
Neue Version ist hoch geladen, bitte mal prüfen ob jetzt alle KVV Sachen wieder funktionieren. In der verwendeten Bibliothek wurden mittlerweile ein paar Änderungen am KVV Provider gemacht.
@sbiermann: Ja bei mir geht der KVV jetzt wieder problemlos seit ein paar Stunden
Servus Zusammen,
habe myDeparture gerade neu angelegt..... State bleibt aber auf ??? stehen....
Hier mal ein List:
Internals:
BUSY 0
CFGFN
DEF none 0
Interval 0
LASTSEND 1520533995.06138
MainURL
ModuleVersion 3.4.2 - 10.2.2018
NAME myDeparture
NR 115
STATE ???
TRIGGERTIME 0
TRIGGERTIME_FMT
TYPE HTTPMOD
addr https://transport.stefan-biermann.de:443
auth 0
buf
code 200
compress 1
conn
data
displayurl https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=6001585&provider=Vrn
header
host transport.stefan-biermann.de
httpheader HTTP/1.1 200 OK
Date: Thu, 08 Mar 2018 18:33:16 GMT
Server: WildFly/8
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Powered-By: Undertow/1
Content-Type: application/json
Content-Length: 351
Strict-Transport-Security: max-age=15768000
Connection: close
httpversion 1.0
hu_blocking 0
hu_filecount 3
hu_port 443
hu_portSfx
ignoreredirects 0
loglevel 4
path /publictransportapi/rest/departure/FHEM?from=6001585&provider=Vrn
protocol https
redirects 0
timeout 2
url https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=6001585&provider=Vrn
value 0
QUEUE:
READINGS:
2018-03-08 19:33:16 Bahnhof [["5","Weinheim","2"],["6928","Leutershausen, Sportzentrum","7"],["5","Heidelberg Bismarckplatz - Mannheim","20"],["5","Weinheim","31"],["5","Heidelberg Bismarckplatz - Mannheim","51"],["5","Weinheim","61"],["5","Heidelberg Bismarckplatz - Mannheim","81"],["5","Weinheim","91"],["5","Heidelberg Bismarckplatz - Mannheim","111"],["5","Weinheim","121"]]
2018-03-08 19:33:01 West [["629","Heddesheim, Bahnhof (RNV)","12"],["630","Heddesheim, Bahnhof (RNV)","46"],["630","Heddesheim, Bahnhof (RNV)","586"],["629","Heddesheim, Bahnhof (RNV)","599"],["629","Heddesheim, Bahnhof (RNV)","608"],["630","Heddesheim, Bahnhof (RNV)","642"]]
REQUEST:
data
header
ignoreredirects 0
retryCount 0
type get01
url https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=6001585&provider=Vrn
value 0
defptr:
readingBase:
Bahnhof get
West get
readingNum:
Bahnhof 01
West 02
readingOutdated:
requestReadings:
get01:
Bahnhof get 01
get02:
West get 02
sslargs:
Attributes:
get01Name Bahnhof
get01Regex (\[\[.*\]\]).*
get01URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=6001585&provider=Vrn
get02Name West
get02Regex (\[\[.*\]\]).*
get02URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=6001586&provider=Vrn
userattr get01Name get01Regex get01URL get02Name get02Regex get02URL
Habe zwei Stationen eingebunden.
Kann mir jemand sagen warum das Dtate nicht auf aktiv geht?
Vielen Dank
@Kusselin: Meines Wissens wird der state bei httpmod nur dann gesetzt, wenn Du ein stateFormat angibst, bei mir steht der Status auch auf 3 mal ?
Danke..mit dem Attr hats geklappt!!
Gesendet von iPad mit Tapatalk Pro
Hallo Zusammen,
ich würde mich hier gerne mal einklinken. Ich bin Aktuell daran auch den Departure Widget mit in meine FHEM bzw. FTUI zu integrieren da ich aber aus dem Rhein Main gebiet komme, ist für mich der rmv zuständig. Die haben auch wohl einen API zugang habe auch von denen den API Key bekommen merke nun aber doch das es meine Kentnisse noch weit überschreitet.
Gibt es eventuell Interesse daran mir etwas unter die arme zu greiffen.
Sehr geehrter Herr .....,
der API-Key für Ihren Zugang lautet: a2e3ac56-485f-46e5-a7a6-baf4b8749bc9
Ein Beispiel Aufruf Haltestellensuche:
https://www.rmv.de/hapi/location.name?accessId=a2e3ac56-485f-46e5-a7a6-baf4b8749bc9&input=frankfurt%20hauptbahnhof
Eine Liste der möglichen Aufrufe finden sie unter https://www.rmv.de/hapi/
Eine Beschreibung der Ausgabe finden Sie unter https://www.rmv.de/hapi/xsd
Hinweis:
Es stehen nicht alle in der Dokumentation aufgeführten Funktionen zur Verfügung, da es sich hierbei um eine Standard-Dokumentation handelt.
Mit freundlichen Grüßen
Ihr OpenData Team
____________________
Ich würde mir gerne eine Haltestelle Anzeigen lassen und alle Busse die in eine Richtung fahren.
danke euch schon mal.
Kev
rmv gibt es derzeit als Provider nicht in der benutzten Bibliothek (https://github.com/schildbach/public-transport-enabler). Damit rmv funktioniert muss jemand bei dem Github Projekt einen entsprechenden Provider schreiben und ein Pullrequest machen. Anschließend kann ich dann meinen REST-Service updaten auf die neuste Version des public-transport-enabler um dann den rmv Provider für das FTUI Widget zur Verfügung stellen zu können. Es gibt auch schon ein Issue zu dem Problem. Denn der von der rmv verwendete Hafas REST API wird derzeit gar nicht von dem Projekt unterstützt. Allerdings ist das Issue von 2015 und bisher hat noch niemand die Zeit oder Lust gefunden dies umzusetzen.
Das einfachste ist, Du findest einen alternativen Provider der ebenfalls die Haltestellen beinhaltet. Dann kannst du direkt das Widget nutzen ohne API Keys, Programmieraufwand usw..
Hallo Danke für die Info.
Dann schaue ich mal weiter. Ob die Mainer Stadtbusse noch irgendwo stehen.
Mir würde es ja auch genügen das in die FTUI zu integrieren aber mit Iframe klappt das net
https://www.rmv.de/auskunft/bin/jp/stboard.exe/dn?L=vs_anzeigetafel&cfgfile=ZornheimKo_3029145_376651254&start=1
Hi,
eventuell könntest du es mit dem DBPlan Modul mal probieren...habe jetzt aber noch nicht geschaut.
https://wiki.fhem.de/wiki/DBPlan
d. h. Du gehst einfach mal hier drauf:
https://www.bahn.de/p/view/index.shtml?dbkanal_032=1&dbkanal_001=L01_S01_D001_KSE0001_Brand-AdWords-ADG-Brand_LZ01&gclid=EAIaIQobChMIztT_3frm2QIVhDgbCh2vbA4PEAAYASAAEgJ6P_D_BwE
und schaust ob es deine Abfahrts und Ankunft gibt.
Wenn Deine Abfahrtsstellen dabei sind und du Schwierigkeiten hast, melde Dich wieder.
Gruss
Kussel
Hallo Kussel,
hat wunderar funktioniert auch meine Haltestellen sind drin und via Label im FTUI wird es mir auch angezeigt. jetzt habe ich nur noch ein -none im readings
travel_destination_1 Hechtsheim Mühldreieck P+R, Mainz - none
da stehen gibt es da eine möglichkeit das weg zu bekommen?
Im FTUI sieht das beim auslesen dann nicht so schön aus siehe jpg anhang.
Danke schon mal
Kev
Hi,
schön das ich Dir habe helfen können...und ich noch :D
Warum da jetzt "none" kommt bei den readings weiß ich so auf Anhieb auch nicht ?? hast mal ein get update gemacht?
Ansonsten denke ich wird hier einer der Fhem Experten dir schon weiterhelefen können... einfach abwarten.
Gruss
Hallo zusammen,
bei mir erscheint die Überschrift (Linie, Richtung, Zeit/in Min) nicht? Im JS des Widgets (widget_departure.js) werden die Element aufgebaut, aber nicht ausgegeben.
// prepare list header
var text = ' <div class="header">';
text += '<div class="line">Linie</div>';
text += '<div class="destination">Richtung</div>';
text += elem.hasClass('deptime') ? '<div class="minutes">Zeit</div></div>' : '<div class="minutes">in Min</div></div>';
elem.append(text);
Ist das ein Bug oder muss ich die Ausgabe per Attribut aktivieren?
Hallo zusammen,
bei mir aktualisiert sich das Widget nicht, nachdem es zum 1. mal geladen wurde (ich nutze den Fully-Browser).
Nach dem 1. Laden des Widgets werden die Daten in Fhem per HTTPMOD Modul regelmäßig neu geladen, aber das Widget aktualisiert sich nicht. Auch wenn ich auf den Reload-Button des Widgets klicke, werden die Daten neu geladen, allerdings aktualisiert sich das Widget nicht. Nach einem manuellen Laden der Daten im HTTPMOD Modul aktualisiert sich das Widget ebenso nicht.
Wenn ich aber auf eine andere Seite wechsele und wieder zurück, funktioniert alles einwandfrei. Ich verwende index_nav_footer.html, kann es daran liegen (vgl. hier: https://github.com/knowthelist/fhem-tablet-ui/blob/master/examples/mobil/index_nav_footer.html) ?
Ich nutze das neueste FHEM und FTUI und habe auch keine Umlaute im Haltestelle-Namen. Habt ihr irgendeine Idee?
Edit:
Ich habe eben gemerkt, dass auf der Startseite überhaupt kein Widget aktualisiert wird. Also hat es nichts mit dem Departure-Widget zu tun...
Viele Grüße,
Alex
Ein herzerfrischendes "MoinMoin" vom hintern Deich vorweg
Ich habe ein kleines Problem mit der Darstellung im Widget.
Unsere lokale Verkehrsgesellschaft hat in Spezialfällen das Anruf Sammeltaxi - AST mit einer Nummer versehen.
Dies bedeutet bis zu 7 Stellen für die Liniennumer.
Und die wird mitunter gequetscht dargestellt.
Kann ich die Spalte irgendwie "erweitern" oder besser flexibel nach Anzahl der Nummernstellen darstellen?
Danke für eure Tipps!
Gruss
Sailor
Moin,
ich glaube der BVG Provider ist seit längerem Down.
Anfangs fiel es mir nicht auf jedoch gibt es seit Sept keine Aktualisierung mehr bei meinen Haltestellen.
Auch ein manuelles Abrufen der Daten schlägt fehl.
Gibt es eine Möglichkeit das zu fixen ?
Viele Grüße
Leech0r
Hallo zusammen,
mal eine blöde Frage. Wie bekomme ich das 98_Departuere-Modul dazu mit dem FTUI-Widget Departure zu kommunizieren, bzw. was muss ich im Widget den bei "data-get=??" eintragen, dass die Einträge aus den Readings im Widget ankommen? Ich habe bisher keine Lösung gefunden :'(
Vielen Dank und viele Grüße
wolf
In https://wiki.fhem.de/wiki/FTUI_Widget_Departure (https://wiki.fhem.de/wiki/FTUI_Widget_Departure) ist doch vollständig beschrieben, wie man das Widget zum Laufen bringt. Stimmt da irgend etwas nicht?
Danke Ulm, für Deine Antwort, allerdings verwende ich nicht das HTTPMOD Modul, sondern das noch nicht offizielle Modul 98_Departuere-Modul aus diesem Threat https://forum.fhem.de/index.php/topic,60046.msg532447.html#msg532447 (https://forum.fhem.de/index.php/topic,60046.msg532447.html#msg532447) und da sehen die Readings anders aus - deshalb die Frage.
Schönen Abend
wolf
Zitat von: Ulm32b am 13 Oktober 2018, 22:08:40
In https://wiki.fhem.de/wiki/FTUI_Widget_Departure (https://wiki.fhem.de/wiki/FTUI_Widget_Departure) ist doch vollständig beschrieben, wie man das Widget zum Laufen bringt. Stimmt da irgend etwas nicht?
Auch damit geht die BVG nicht
Zitat von: Paul am 13 Oktober 2018, 23:13:47
Auch damit geht die BVG nicht
nimm mal den Provider "Bahn" da habe ich eigentlich alles gefunden und mit diesem Modul lässt sich auch gut die gewünschte Haltestelle suchen. Vorteil an diesem Modul ist, dass du dich nicht mit den RegExp "rumschlagen" musst.
Holas,
am Sonntag werde ich den Public Transport REST Service zu einen neuen Provider umziehen. Das bedeutet, ich muss einen Domaintransfer machen mit DNS Update. Dadurch kommt es sehr wahrscheinlich zu einen längeren Ausfall (max 24 Stunden) bis der Service wieder für komplett erreichbar ist.
Dann gibt es auch gleich eine neue Version der Öffi Libs, sprich es gibt mehr Provider und Fehlerbehebungen.
Viele Grüße
Stefan
So Umzug ist erledigt. Kann sein das noch einige DNS Server die alte Adresse im Cache haben, das sollte sich hoffentlich innerhalb der nächsten 24 Stunden erledigt haben. Im Log sehe ich schon einen großen Schwung erfolgreicher Zugriffe, dementsprechend sind die neuen Daten bei einigen schon aktiv.
Hallo Stefan,
Kann es sein, dass sich der Provider KVV geändert hat.
Ich bekomme einen ,,Internal Server Error".
Meine URL: https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=Xxxxxxx&provider=Kvv
Viele Grüße
Kaufi
Hoi Kaufi,
die URL tut wieder, es gab in der verwendeten Lib ein Update für den Kvv Provider. Die REST-Schnittstelle ist aktualisiert mit der neuen Lib. Es gibt jetzt auch einen weiteren Schwung neue Provider, z.B. AVV für Aachen oder Ghana...
Viele Grüße
Stefan
Klasse,
Vielen Dank!
Hallo Stefan,
bei mir funktioniert dieser Link nicht mehr
https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=XXXXXXX&provider=Oebb
im explorer
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
--> json aufgelöst
Provider Oebb not found or can not instantiated...
obwohl es vorhanden sein sollte?!
bzw in fhem
httpheader
HTTP/1.1 404 Not Found
Date: Mon, 19 Nov 2018 15:51:49 GMT
Server: Apache/2.4.29 (Ubuntu)
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Type: application/json
Content-Length: 50
Strict-Transport-Security: max-age=15768000
Connection: close
Hi,
jetzt funktioniert er wieder. Der ÖBB Provider wurde umgestellt auf eine andere Technologie innerhalb der Lib. Daher musste ich den erst anders ansprechen damit es wieder funktioniert. In dem Zuge habe ich auch gleich geschaut welche anderen Provider noch eine Sonderbehandlung benötigen und habe dieses ergänzt. Hoffentlich ändert sich da jetzt nicht so schnell wieder was. Wer von euch die Öffi App auf dem Handy hat, wird vermutlich die vielen Updates der letzten Tage erlebt haben...
Zum Abschluss noch eine kleine Bitte, in Zukunft die URLs nur vollständig angeben. Ich musste eben erst eine ganze Weile suchen bis ich eine gültige Id für den ÖBB Provider gefunden hatte mit der ich testen konnte.
Viele Grüße
Stefan
Super, danke dir!
Hi Stefan,
seit dem 11.11 funktioniert der link bei mir auch nicht mehr. Ich vermute mal das dort auch was umgestellt wurde!?
https://transport.stefan-biermann.de/publictransportapi/rest/station/suggest?q=Berliner-Platz&provider=Gvh
--> Provider Gvh not found or can not instantiated...
und hier mit der id:
https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=25006000&provider=Gvh
--> SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
wäre toll wenn du das kurzt mal checken könntest ;D
Danke und VG
Kalle
Hi Kalle,
ja der Provider hat auch eine neue Sonderbehandlung bekommen. Clevererweise habe ich da in der Behandlung noch einen kleinen Bug eingebaut gehabt. Der ist jetzt behoben und eine neue Version der REST-Schnittstelle läuft.
Die beiden Links funktionieren nun wieder.
Viele Grüße
Stefan
Hi Stefan,
Vielen Dank das du soviel Arbeit in dieses Modul investierst :-)
Leider kann ich die Daten über FHEM immer noch nicht abrufen. Die JSON verlinkung klappt aber wieder!
Hat sich in der Formatierung der JSON irgendwas geändert?
Das bekomme ich in der Logfile nun ausgegeben:
2018.11.23 21:29:54 5: myDeparture: get called with Berliner-Platz
2018.11.23 21:29:54 5: myDeparture: get found option Berliner-Platz in attribute get01Name
2018.11.23 21:29:54 4: myDeparture: get will now request Berliner-Platz, no optional value
2018.11.23 21:29:54 4: myDeparture: AddToQueue adds get01, initial queue len: 0
2018.11.23 21:29:54 5: myDeparture: AddToQueue adds type get01 to URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=25006000&provider=Gvh, no data, no headers, retry 0
2018.11.23 21:29:54 5: myDeparture: HandleSendQueue called, qlen = 1
2018.11.23 21:29:54 4: myDeparture: HandleSendQueue sends request type get01 to URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=25006000&provider=Gvh, No Data, No Header
timeout 30
2018.11.23 21:29:54 5: HttpUtils url=https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=25006000&provider=Gvh
2018.11.23 21:29:54 5: HttpUtils request header:
GET /publictransportapi/rest/departure/FHEM?from=25006000&provider=Gvh HTTP/1.0
Host: transport.stefan-biermann.de
User-Agent: fhem
Accept-Encoding: gzip,deflate
Content-Length: 0
Content-Type: application/x-www-form-urlencoded
2018.11.23 21:29:55 3: myDeparture: Read callback: Error: https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=25006000&provider=Gvh: empty answer received
2018.11.23 21:29:55 4: myDeparture: Read callback: request type was get01 retry 0, body empty
2018.11.23 21:29:55 5: myDeparture: ExtractSid called, context get, num 01
2018.11.23 21:29:55 4: myDeparture: CheckAuth decided no authentication required
Hast du eine Idee woran das liegen könnte?
VG
Kalle
Hallo Kalle,
ich habe noch 2 Fehler gefunden gehabt. Und zwar zum einen das wenn der Provider nicht innerhalb von 15 Sekunden antwortet es einen 500 Fehlercode gab, korrekt ist da aber 504 weil ja das Fremdsystem und nicht die REST-Schnittstelle zu lange gebraucht hat. Der andere Bug war das wenn der Provider keine Daten gesendet hat, ebenfalls ein 500 Fehler gesendet wurde. Richtiger ist aber wenn ein leeres Ergebnis kommt, da die Anfrage ja korrekt war und auch erfolgreich durch geführt wurde. Dementsprechend liefert nun die Schnittstelle ein leeres Ergebnis aus. Ich vermute mal das dies bei dir den Fehler in Logfile erklärt, denn wenn ich jetzt (24.11.18 08:22) die URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=25006000&provider=Gvh aufrufe erhalte ich folgende Daten:
[["1","Langenhagen","7"],["1","Sarstedt","8"],["1","Langenhagen","22"],["1","Laatzen, Laatzen","23"],["1","Langenhagen","37"],["1","Sarstedt","38"],["1","Langenhagen","52"],["1","Laatzen, Laatzen","53"],["1","Langenhagen","67"],["1","Sarstedt","68"]
Kann es sein das Nachts keine Linien fahren und daher der Provider nichts liefert?
Viele Grüße
Stefan
Hi Stefan,
leider bekomme ich immer noch die gleichen Einträge im Logfile ausggegeben wie im vorherigen Beitrag und FHEM bekommt keine neuen Readings. Um auszuschließen das es nicht an meinem System liegt, bin Ich auf ein vorheriges Backup gegangen wo es noch lief. Leider bekomme ich aber auch dort die gleiche Fehlermeldungen :-/
Die JSON lässt sich aber im Browser öffenen. Habe mal zum Testen die Url aus dem Wiki-Depature genommen. Dort auch das gleiche!! :(
Hast du noch eine idee?
VG
Kalle
Ich bekomme seit dem Serverumzug auch immer "empty answer received", egal ob ich es über HTTPMOD oder das Departure Modul mache.
Oder so:
{ HttpUtils_NonblockingGet({url=>"https://transport.stefan-biermann.de/publictransportapi/rest/departure?from=900175007&provider=Bvg&limit=10",callback=>sub($$$){ Log 1,"ERR:$_[1] DATA:".length($_[2]) }})}
ergibt:
2018.11.24 17:22:23 1: ERR:https://transport.stefan-biermann.de/publictransportapi/rest/departure?from=900175007&provider=Bvg&limit=10: empty answer received DATA:0
Wenn ich den gleichen URL im Browser eingebe geht es, auch auf dem Pi direkt über curl kommen Daten. Aus FHEM heraus kommt aber nichts.
Das FHEM ist aktuell, der Pi läuft noch auf Wheezy, ist soweit es geht aber aktuell.
Eine Idee woran das liegen kann?
Hi,
habe exakt das gleiche Problem wie Sinus61!
Holas,
weil schon Rückfragen kamen, ich habe mich nicht gemeldet weil es, meiner Meinung nach, ein Problem von FHEM ist.
Da ich selber das Departure Modul nicht nutze, ist mir selber kein Fehler aufgefallen. Ich habe allerdings die Datenquelle (HTTPMOD) noch eingerichtet. Wenn ich die über FHEM Oberfläche abrufe dann bekomme ich auch den selben Fehler wie Ihr alle. Das Problem ist, mit dem Umzug habe ich den Apache, den ich als Reverse Proxy nutze, so eingestellt, dass er den aktuellen (soweit das mit Ubuntu 18.04 LTS möglich ist) empfohlenen Sicherheitsstandard entspricht (https://www.ssllabs.com/ssltest/analyze.html?d=transport.stefan-biermann.de). Das heißt, es ist nur TLS 1.2 aktiv, alles andere darunter (TLS 1.0, TLS 1.1, SSLv3, usw.) nicht. Anscheinend hat dies zur Folge das HTTPMOD keine Verbindung mehr aufbauen kann, leider wird auch keine Warnung oder sowas geloggt. Ich vermute mal bei mir liegt es daran das ich einen sehr alte Debian Version (Wheezy) als Betriebsystem auf dem Raspi wo FHEM läuft verwende und damit auch eine sehr alte Perl Version. Lange Rede kurzer Sinn, ich habe den Apache so konfiguriert das er nun ebenfalls http unterstützt und nicht mehr nur https. Sprich die Url: http://transport.stefan-biermann.de/publictransportapi/rest/departure?from=900175007&provider=Bvg&limit=10 funktioniert nun und leitet nicht auf: https://transport.stefan-biermann.de/publictransportapi/rest/departure?from=900175007&provider=Bvg&limit=10 um.
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.
Holas Stefan,
danke für Deine Mühe. Es geht bei mir leider nicht.
Habe zwar die BASE_URL auf http: umgestellt, das Modul nimmt dennoch die https: Variante.
Über eine reine HTTPMOD Abfrage geht es.
Liegt wohl am Modul bzw. an meinem Wheezy.
Hallo zusammen,
bin am Verzweifeln.
Problem:
define KVV HTTPMOD none 0
attr KVV get01Name Siemens
attr KVV get01Regex (\[\[.*\]\]).*
attr KVV get01URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=7000104&provider=Kvv
attr KVV timeout 30
liefert folgendes reading für Siemens zurück:
[["S5","S5 Pforzheim Hbf","0"],["S5","S5 Wörth Badepark","5"],["S5","S5 Söllingen","7"],["S52","S52 Karlsruhe Europaplatz EILZUG","10"],["S5","S5 Karlsruhe Rheinbergstraße","13"],["S5","S5 Söllingen","17"],["S5","S5 Wörth Badepark","23"],["S5","S5 Pforzheim Hbf","27"],["S5","S5 Karlsruhe Rheinbergstraße","33"],["S5","S5 Söllingen","37"]]
mit dem Widget departure möchte ich mir das mittels FTUI anzeigen lassen, das Widget auf dem Tablet ist aber immer leer.
<div data-type="departure" data-device=KVV" data-get="Siemens" data-icon="fa-train" class="DVB"></div>
Wo könnte mein Fehler sein, ich finde bisher keinen ?
Gruß
Siggi
Zitat von: sbiermann am 05 Dezember 2018, 21:25:17
Als Lösung bleibt Euch also die Umstellung auf http anstelle von https
Danke, funktioniert wieder. Sowohl mit dem Modul als auch per Httpmod.
Hallo Sinus61
wie geht das bei Dir mit dem Modul???
Bei mir kann ich die URL nicht wirklich ändern.
Erledigt, geht wieder.
unique hatte es mal erwähnt, das Atribut BASE_URL geht nicht.
Man muss die alternative URL hinter dem Intervall angeben.
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
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.
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
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
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.
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.
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.
Danke,
bei mir funktioniert's (https) auch wieder.
Gruß
Michael
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 (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.
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.
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?
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.
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.
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 (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.
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
(https://christoph-stoeber.de/bahnprojekt/dokumentation/bahndetafeldoku.php)
@knopf_piano: Das ist sehr interessant - Danke für den Link! - Bei meinen Versuchen ist mir noch ein Parameter untergekommen:
L=
Bekannte Werte
vs_java2 --> liefert die Daten im Textformat getrennt durch "|" (auch mit Verspätungen etc)
vs_java --> liefert die Daten im Textformat aber nur Linieninfo (z.B. ohne Zielangabe oder separate Verspätungsinfo)
vs_java3 --> liefert Informationen als XML-Fragment
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.
was brauche ich dazu, um diese Informationen in ein reading zu bekommen?
das regex aus dem Depature Modul
(\[\[.*]\]).*
passt da ja nicht und in regex kenn ich mich überhaut nicht aus.
Ich habe nun einen Weg gefunden, um mit Bordmitteln einzelne Ziele aus der für departure bereitgestellten Liste zu entfernen:
Für <devicename> und get01* ist einzugeben:
attr <devicename> get01Expr {$val=~s/\[[^\[]*("Parkstraße",|"Schlossallee",)[^\]]*\],?//g;; $val =~ s/\],\]/]]/;; return $val;;}
In diesem Beispiel werden alle Ziele entfernt, die "Parkstraße" oder "Schlossallee" enthalten. Kann das bitte weiter getestet werden?
Frage an die Kundigen: Geht das auch eleganter? Und wie kann ich ,,Positivlisten", z.B. anzuzeigende Linien filtern?
Etwas benutzerfreundlicher fände ich schon, wenn die REST-API direkt Filteroptionen bereitstellt.
So ich habe mal die Doku aktualisiert, sie ist zu finden unter: https://github.com/sbiermann/public-transport-web-api-javaee/blob/master/README.md
So als kurze Zusammenfassung, es gibt für das FTUI Depature Widget 2 Endpunkte die wichtig sind. Beide enden mit FHEM am Ende. Einmal ist es der hier schon sehr bekannte Endpunkt für die Abfahrtstafel einer bestimmten Haltestelle /departure/fhem?... und dann noch der zweite der auf Anfrage eines Users von hier vor 1 oder 2 Jahren hinzu gekommen ist. Dieser Endpunkt stellt die Abfahrtstafel einer bestimmten Haltestelle dar und zwar gefiltert auf das Endziel, sprich man sag ich will von A nach B und es werden nur noch alle Abfahren von A angezeigt die auch nach B führen. Andere Abfahrten die zum Beispiel von A nach D führen ohne das B auf dem Weg liegt, werden dann nicht mehr angezeigt. Der Endpunkt ist lautet /connectin/fhem?..., die genauen Parameter sind der Anleitung zu entnehmen.
Beispiel: https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=6906508 zeigt die Abfahrten vom Freiburger HBF an.
[["1","Littenweiler","2"],["RE17019","Basel, Badischer Bahnhof","1"],["ICE451","Milano Centrale","5"],["4","Messe","5"],["4","Zähringen","5"],["S9911","Seebrugg Bahnhof","7"],["2","Hornusstraße","7"],["S9961","Neustadt (Schwarzw) Bahnhof","7"],["S8556","Gottenheim Bahnhof","7"],["1","Landwasser","9"]]
Da mich aber zum Beispiel nur die Linie zwei Richtung Friedrich-Ebert-Platz interessiert, ist diese just in diesem Moment nicht auf der Anzeige, weil erst in 10 Minuten oder später die Fahrt ist. Daher kann man mit: https://transport.stefan-biermann.de/publictransportapi/rest/connection/FHEM?from=6906508&to=6930811&product=T eine Fahrt angeben zwischen zwei Haltestelle und das Resultat ist dann:
[["2","Friedrich-Ebert-Platz","16"],["2","Friedrich-Ebert-Platz","31"],["2","Friedrich-Ebert-Platz","46"],["2","Friedrich-Ebert-Platz","61"]]
Mit dem 30.1 werde ich nicht nur HTTP abschalten sondern auch die Schnittstelle updaten. Dadurch ergeben sich ein paar Änderungen an den Providern. Zum Beispiel gibt es dann keinen einzelnen Anbieter mehr in Baden-Württemberg (außer Karlsruhe), sondern einen zentralen Nahverkehr Baden-Württemberg (Nvbw). Die Bahn heißt jetzt DbProvider anstelle von Bahnprovider. Es kommen auch ein paar neue hinzu, hauptsächlich im Ausland wie in San Francisco oder Australien. Nachfolgend die aktuelle Liste der Provider:
[{"aClass":"FinlandProvider","name":"Finland"},{"aClass":"WienProvider","name":"Wien"},{"aClass":"NasaProvider","name":"Nasa"},
{"aClass":"BsvagProvider","name":"Bsvag"},{"aClass":"CzechRepublicProvider","name":"CzechRepublic"},{"aClass":"BartProvider","name":"Bart"},
{"aClass":"NvbwProvider","name":"Nvbw"},{"aClass":"PlNavitiaProvider","name":"PlNavitia"},{"aClass":"VrnProvider","name":"Vrn"},{"aClass":"ZvvProvider","name":"Zvv"},
{"aClass":"VmtProvider","name":"Vmt"},{"aClass":"AvvAachenProvider","name":"AvvAachen"},{"aClass":"OoevvProvider","name":"Ooevv"},
{"aClass":"VvsProvider","name":"Vvs"},{"aClass":"FranceSouthWestProvider","name":"FranceSouthWest"},{"aClass":"DingProvider","name":"Ding"},
{"aClass":"StvProvider","name":"Stv"},{"aClass":"BayernProvider","name":"Bayern"},{"aClass":"SncbProvider","name":"Sncb"},{"aClass":"SvvProvider","name":"Svv"},
{"aClass":"DsbProvider","name":"Dsb"},{"aClass":"MvvProvider","name":"Mvv"},{"aClass":"KvvProvider","name":"Kvv"},{"aClass":"MvgProvider","name":"Mvg"},
{"aClass":"SbbProvider","name":"Sbb"},{"aClass":"SeProvider","name":"Se"},{"aClass":"VvmProvider","name":"Vvm"},{"aClass":"VmobilProvider","name":"Vmobil"},
{"aClass":"ItalyProvider","name":"Italy"},{"aClass":"VmvProvider","name":"Vmv"},{"aClass":"VgnProvider","name":"Vgn"},
{"aClass":"FranceSouthEastProvider","name":"FranceSouthEast"},{"aClass":"NegentweeProvider","name":"Negentwee"},{"aClass":"GhanaProvider","name":"Ghana"},
{"aClass":"EireannProvider","name":"Eireann"},{"aClass":"RtProvider","name":"Rt"},{"aClass":"LuProvider","name":"Lu"},{"aClass":"RtaChicagoProvider","name":"RtaChicago"},
{"aClass":"OntarioProvider","name":"Ontario"},{"aClass":"TfiProvider","name":"Tfi"},{"aClass":"VvoProvider","name":"Vvo"},{"aClass":"LinzProvider","name":"Linz"},
{"aClass":"MerseyProvider","name":"Mersey"},{"aClass":"OebbProvider","name":"Oebb"},{"aClass":"AvvProvider","name":"Avv"},{"aClass":"SpainProvider","name":"Spain"},
{"aClass":"GvhProvider","name":"Gvh"},{"aClass":"VblProvider","name":"Vbl"},{"aClass":"TlemProvider","name":"Tlem"},
{"aClass":"FranceNorthEastProvider","name":"FranceNorthEast"},{"aClass":"OregonProvider","name":"Oregon"},{"aClass":"SydneyProvider","name":"Sydney"},
{"aClass":"DbProvider","name":"Db"},{"aClass":"QuebecProvider","name":"Quebec"},{"aClass":"DubProvider","name":"Dub"},
{"aClass":"AvvAugsburgProvider","name":"AvvAugsburg"},{"aClass":"NvvProvider","name":"Nvv"},{"aClass":"VaoProvider","name":"Vao"},
{"aClass":"ParisProvider","name":"Paris"},{"aClass":"FranceNorthWestProvider","name":"FranceNorthWest"},{"aClass":"AustraliaProvider","name":"Australia"},
{"aClass":"CmtaProvider","name":"Cmta"},{"aClass":"ShProvider","name":"Sh"},{"aClass":"BritishColumbiaProvider","name":"BritishColumbia"},
{"aClass":"MassachusettsProvider","name":"Massachusetts"},{"aClass":"NicaraguaProvider","name":"Nicaragua"},{"aClass":"VvtProvider","name":"Vvt"},
{"aClass":"VgsProvider","name":"Vgs"},{"aClass":"PlProvider","name":"Pl"},{"aClass":"VbbProvider","name":"Vbb"},{"aClass":"NzProvider","name":"Nz"},
{"aClass":"VvvProvider","name":"Vvv"},{"aClass":"VrrProvider","name":"Vrr"},{"aClass":"NsProvider","name":"Ns"},{"aClass":"VbnProvider","name":"Vbn"},
{"aClass":"BvgProvider","name":"Bvg"},{"aClass":"InvgProvider","name":"Invg"},{"aClass":"VmsProvider","name":"Vms"},{"aClass":"VorProvider","name":"Vor"},
{"aClass":"VrsProvider","name":"Vrs"}]
Falls jemand hier einen Provider vermisst, bitte melden, ich schaue dann welcher neue alternative Provider die Funktion übernommen hat.
Hallo Stefan
leider bringe ich die Abfrage mit den connection nicht zum Laufen.
https://transport.stefan-biermann.de/publictransportapi/rest/connection?from=1192101&to=921177&product=B&provider=Oebb
bie der Abfrage
https://transport.stefan-biermann.de/publictransportapi/rest/departure?from=1192101&provider=Oebb
steht im product BUS. Wenn ich das in der ersten Abfrage ändere, kommt auch keine Lösung, sondern nur "no Trip found", was aber nicht stimmt.
gibt es da einen Lösungsansatz?
Zitat
Ich habe nun einen Weg gefunden, um mit Bordmitteln einzelne Ziele aus der für departure bereitgestellten Liste zu entfernen:
Für <devicename> und get01* ist einzugeben:
Code: [Auswählen]
attr <devicename> get01Expr {$val=~s/\[[^\[]*("Parkstraße",|"Schlossallee",)[^\]]*\],?//g;; $val =~ s/\],\]/]]/;; return $val;;}
In diesem Beispiel werden alle Ziele entfernt, die "Parkstraße" oder "Schlossallee" enthalten. Kann das bitte weiter getestet werden?
Frage an die Kundigen: Geht das auch eleganter? Und wie kann ich ,,Positivlisten", z.B. anzuzeigende Linien filtern?
Etwas benutzerfreundlicher fände ich schon, wenn die REST-API direkt Filteroptionen bereitstellt.
Wenn ich da die Ausschließungsorte eingebe und es unter get02Expr (bei mir ist das regex und die URL unter 02 angelegt, 01 ist nichts) ist alles beim alten.
Zitat von: australien am 17 Januar 2020, 08:17:28
Wenn ich da die Ausschließungsorte eingebe und es unter get02Expr (bei mir ist das regex und die URL unter 02 angelegt, 01 ist nichts) ist alles beim alten.
Kannst Du bitte einmal die Antwort der URL-Abfrage, ähnlich wie
[["U8","Vaihingen","3"],["U12","Dürrlewang","6"],["U8","Ostfildern","5"],["U3","Vaihingen","6"],["U12","Hallschlag","7"],["U3","Plieningen","9"],["U8","Vaihingen","12"],["U12","Dürrlewang","17"],["U8","Waldau","15"],["U3","Vaihingen","16"]]
hier posten und zusätzlich Deine
Get02Expr ?
gerne
[["280","Neusiedl am See Hauptplatz","31"],["280","Eisenstadt Busbahnhof (Domplatz)","41"],["280","Neusiedl am See Hauptplatz","101"],["280","Eisenstadt Busbahnhof (Domplatz)","120"],["280","Neusiedl am See Hauptplatz","151"]]
und
get02OExpr {$val=~s/\[[^\[]*("Neusiedl",|"Purbach",)[^\]]*\],?//g; $val =~ s/\],\]/]]/; return $val;}
Zitat von: australien am 17 Januar 2020, 16:55:45
[["280","Neusiedl am See Hauptplatz","31"],["280","Eisenstadt Busbahnhof (Domplatz)","41"],["280","Neusiedl am See Hauptplatz","101"],["280","Eisenstadt Busbahnhof (Domplatz)","120"],["280","Neusiedl am See Hauptplatz","151"]]
und
get02OExpr {$val=~s/\[[^\[]*("Neusiedl",|"Purbach",)[^\]]*\],?//g; $val =~ s/\],\]/]]/; return $val;}
Dein Suchstring lautet (einschließlich der Anführungszeichen und des Kommas):
"Neusiedl", Und das wird nicht gefunden.
Du hast die Wahl:
1. Suchstring entspricht genau den gelieferten Werten, also
"Neusiedl am See Hauptplatz", (Komma ist entbehrlich, dann wird nur vom ersten bis zum zweiten Anführungszeichen gesucht)
2. Suchstring wird so gewählt, dass er in den gelieferten Werten gefunden wird, z.B.
Neusiedl oder auch
"NeusiedlBei 2 würde der Suchstring aber z.B. auch bei
"Neusiedl Strandpromenade" anschlagen. Die angemessene Variante ist aus dem Kontext heraus zu wählen. Wenn es sehr viele Ziele in Neusiedl gibt und einzelne davon nicht gelöscht werden sollen, ist es sinnvoll, den Suchstring genauer zu wählen, um unerwünschte Effekte zu vermeiden.
Bitte nochmal testen.
Bei Interesse: https://regex101.com/ (https://regex101.com/)
Dort kann man die URL-Antwort als Teststring eingeben und als Suchstring:
\[[^\[]*(Neusiedl|"Purbach",|...)[^\]]*\],?
Damit lässt sich die Wirkung der Regex sehr bequem analysieren.
Zitat von: australien am 17 Januar 2020, 08:17:28
Hallo Stefan
leider bringe ich die Abfrage mit den connection nicht zum Laufen.
https://transport.stefan-biermann.de/publictransportapi/rest/connection?from=1192101&to=921177&product=B&provider=Oebb
bie der Abfrage
https://transport.stefan-biermann.de/publictransportapi/rest/departure?from=1192101&provider=Oebb
steht im product BUS. Wenn ich das in der ersten Abfrage ändere, kommt auch keine Lösung, sondern nur "no Trip found", was aber nicht stimmt.
gibt es da einen Lösungsansatz?
Wenn ich da die Ausschließungsorte eingebe und es unter get02Expr (bei mir ist das regex und die URL unter 02 angelegt, 01 ist nichts) ist alles beim alten.
Es ist kompliziert.. anscheinend ist es so das bei der Abfrage: https://transport.stefan-biermann.de/publictransportapi/rest/departure?from=1192101&provider=Oebb die umliegenden Haltestellen mit enthalten sind. Was zur Folge hat das der Bus mit angezeigt wird. Wenn man nun die Abfrage https://transport.stefan-biermann.de/publictransportapi/rest/connection?from=1192101&to=921177&product=B&provider=Oebb aufruft kommt keine Antwort weil der Bus nicht als Startort 1192101 hat sondern 921039 was der Haltestelle Floridsdorf Bf (Schlosshofer Straße) entspricht. Wenn du den Bus also haben willst sieht die Abfrage so aus: https://transport.stefan-biermann.de/publictransportapi/rest/connection?from=921039&to=921177&product=B&provider=Oebb. Das Problem ist, dass es 2 Bugs gibt, weswegen die URL nur einen internen Server Fehler meldet. Denn habe ich zwar schon gefixt aber der kommt erst am 31.1 live.
Ich hab mal eine Frage zum Widget. Wie bekomme ich die erste Spalte mit der Linie breiter? Ich nutze die die im Wiki beschriebene Abfrage über die API von Öffi und da dann einen Bahnhof der DB. Allerdings habe ich da Regionalbahnen z.B. RB58107 . Das ist zu lang für die erste Spalte und überlagert den Zielort. Auch wenn ich die Breite hochsetze, bleibt die erste Spalte so schmal. Kann ma das ändern?
Neue Version ist online und es funktioniert nur noch https, alle http anfragen werden auf https redirected mit 301 Statuscode.
Wie komm ich an die neue Version?Manueller download?
Ich habe gerade in FHEM einen Updatecheck gemacht....und da steht nichts davon, dass was in richtung Departure aktualisiert werden würde...
Sorry für meine doofe Frage, aber ich hab noch nie was am FTUI aktualisiert...
Am FHEM und deren Komponenten oder FTUI muss nichts aktualisiert werden. Ich habe nur wie hier im Thread angekündigt die Schnittstelle aktualisiert und http abgeschaltet.
Ah...okay. Ich dachte die Antwort bezog sich oben auf meine Frage bezüglich der Spaltenbreite im Widget.
Hast du dafür zufällig eine Lösung parat?
Nicht wirklich, aber du könntest die Webseite mit dem Chrome oder Firefox öffnen und die Developer Tools an schalten. Dann das Element anklicken und schauen welche CSS Klasse da genommen wird und schauen ob sich so die Größe ändern lässt. Wenn ja, eigenes CSS einbinden was die Spalte breiter zieht.
Moin,
seit der Änderung bekomme ich Abfragen bei der Bahn nicht mehr hin.
Provider Db not found or can not instantiated...
Gruß
Gerrit
Bitte mal die URL posten wo diese Meldung kommt, dann schaue ich woran das Problem liegt.
Hallo Stefan,
https://transport.stefan-biermann.de/publictransportapi/rest/provider (https://transport.stefan-biermann.de/publictransportapi/rest/provider)
zeigt mir die Provider.
https://transport.stefan-biermann.de/publictransportapi/rest/station/suggest?q=Nymphenweg&provider=Db (https://transport.stefan-biermann.de/publictransportapi/rest/station/suggest?q=Nymphenweg&provider=Db)
Provider Db not found or can not instantiated...
Egal mit welcher Haltestelle ich es versuche.
Gruß und Danke!
Gerrit
Fehler gefunden und gelöst. Jetzt geht die URL.
Der Provider Nasa liefert auch nur "Provider Nasa not found or can not instantiated..."
Ok, der funktioniert nun auch.
"bahn" fehlt auch noch
edit: heißt wohl jetz "Db"...scheint zu funzen
Hallo zusammen,
bin HTTPMOD ein Nobi, mit folgender URL erhalte ich im Browser die richtige Ansage meiner Bushaltestelle :
https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=7203080&
provider=Nvbw
die Ausgabe :
[["630","Heumaden, Heinz-Schnaufer-Str.","1"],["630","Oberreichenb,Hirsch","2"],["630","Heumaden, Breite-Heer-Str.","14"],["630","Altburg, Lamm","27"],["630","Heumaden, Heinz-Schnaufer-Str.","45"],["630","Altburg, Lamm","51"],["633","Neuweiler,Rathaus","64"],["630","Heumaden, Heinz-Schnaufer-Str.","74"],["630","Altburg, Lamm","87"],["630","Heumaden, Heinz-Schnaufer-Str.","105"]]
aber in Fhem kommen keine Readings, hier ein list :
Internals:
BUSY 0
CFGFN
CHANGED
DEF https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=7203080&provider=Nvbw
FUUID 5e41c5e0-f33f-c3c8-6aa7-72ff0bb473d0fb7d
Interval 300
LASTSEND 1581436676.54845
MainURL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=7203080&provider=Nvbw
ModuleVersion 3.5.22 - 7.2.2020
NAME Wimberg2
NOTIFYDEV global
NR 1538
NTFY_ORDER 50-Wimberg2
STATE ???
TRIGGERTIME 1581436976.54719
TRIGGERTIME_FMT 2020-02-11 17:02:56
TYPE HTTPMOD
addr https://transport.stefan-biermann.de:443
auth 0
buf
code 200
compress 1
conn
data
displayurl https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=7203080&provider=Nvbw
header
host transport.stefan-biermann.de
httpheader HTTP/1.1 200 OK
Date: Tue, 11 Feb 2020 15:57:57 GMT
Server: Apache/2.4.29 (Ubuntu)
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Type: application/json
Content-Length: 354
Connection: close
httpversion 1.0
hu_blocking 0
hu_filecount 6
hu_port 443
hu_portSfx
ignoreredirects 1
loglevel 4
path /publictransportapi/rest/departure/FHEM?from=7203080&provider=Nvbw
protocol https
redirects 0
timeout 2
url https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=7203080&provider=Nvbw
value 0
QUEUE:
READINGS:
REQUEST:
data
header
ignoreredirects 0
retryCount 0
type update
url https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=7203080&provider=Nvbw
value 0
sslargs:
Attributes:
room Bus
was hab ich falsch gemacht ?
Gruß Peter
Hallo,
hat sich erledigt, habe nun statt HTTPMOD das Modul Departure verwendet und mit den einfachen
departure_departure 7203080
departure_provider Nvbw
erreicht was ich wollte.
Gruß Peter
Hallo,
seit heute ca 15:00 Uhr gibt es für Provider "Nvbw" und Station "7203080" keine readings mehr :
https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=7203080&provider=Nvbw
Gruß Peter
Hallo zusammen,
Kann mir einer mal einen Tipp geben wie man den Header der Tabelle angezeigt bekommt.
Habe vieles schon ausprobiert, breite Tabelle ,lange Tabelle, mit Icon , ohne Icon aber die Überschrift erscheint nie.
Was kann ich da noch machen.
Wenn einer eine Idee hat .<li class="round border-lightgray" data-row="3" data-col="1" data-sizex="6" data-sizey="5">
<div class="DVB alternate deptime" data-width="300px" data-height="250px"
data-type="departure" data-device="Busplan" data-get="Pelzerstrasse"
data-icon="" data-interval="30"> </div>
Zitat von: Pumba9876 am 20 Februar 2020, 18:25:57
Kann mir einer mal einen Tipp geben wie man den Header der Tabelle angezeigt bekommt.
Einen Tipp kann ich nicht geben, aber Trost spenden. Ich habe selbst den Wiki-Beitrag über
Departure geschrieben, als die Überschriften noch funktionierten. Irgendwann gingen sie dann nicht mehr. Für wirklich bedeutsam halte ich sie nicht. Wenn es sie nie gegeben hätte, würde man sie wohl auch nicht vermissen.
Es könnte sein, dass die Ursache leicht zu beheben wäre. Wir wissen aber, dass der Urheber des Widgets sich nicht mehr mit solchen, ich sage mal B- oder auch C-Themen beschäftigt.
Andererseits: Man könnte sich ja mal den Quellcode anschauen und dabei bestimmt etwas lernen... ;)
Danke für die Antwort.
Habe mir den Quellcode schon mal angeschaut aber da ich nicht so viel mit Programmierung zu tun habe komme ich da nicht weiter . :-[
Gibt es eigentlich eine Möglichkeit das ich zwischen verschieden readings umschalten kann so das ich verschiedene Haltestellen in einem Widget anzeigen lassen kann oder irgendetwas in der Richtung wäre sehr dankbar für einen erneuten Tipp
Zitat von: Pumba9876 am 21 Februar 2020, 19:47:00
Gibt es eigentlich eine Möglichkeit das ich zwischen verschieden readings umschalten kann so das ich verschiedene Haltestellen in einem Widget anzeigen lassen kann oder irgendetwas in der Richtung wäre sehr dankbar für einen erneuten Tipp
Ich glaube, jetzt kann ich wirklich mal einen richtigen Tipp geben. Was du möchtest, geht wahrscheinlich ganz einfach, aber mit Trick17.
In https://wiki.fhem.de/wiki/FTUI_Widget_Departure#Umschalten_zwischen_relativer_und_absoluter_Abfahrtszeit (https://wiki.fhem.de/wiki/FTUI_Widget_Departure#Umschalten_zwischen_relativer_und_absoluter_Abfahrtszeit) ist beschrieben, wie man zwischen relativer und absoluter Abfahrtszeit umschaltet. Dabei wird einfach die eine Darstellung ein- und die andere ausgeblendet. Dies lässt sich sinngemäß auf Dein Anliegen umstricken: Du legst einfach zwei oder mehr Widgets mit den Haltestellen an, die Dich interessieren. Und dann blendest Du mit classchanger die nicht gewünschten Widgets aus.
Bei der Gelegenheit sehe ich, dass zu dem Zeitpunkt, als ich die Umschaltoption dokumentiert habe, die Überschriften im Widget offenbar nicht mehr angezeigt wurden; und das ist zwei Jahre her.
Gerne höre ich von Dir, ob mein Ansatz funktioniert.
Und dann möchte ich noch etwas Werbung machen für
https://forum.fhem.de/index.php/topic,48255.msg1012014.html#msg1012014 (https://forum.fhem.de/index.php/topic,48255.msg1012014.html#msg1012014) und https://forum.fhem.de/index.php/topic,48255.msg1014192.html#msg1014192 (https://forum.fhem.de/index.php/topic,48255.msg1014192.html#msg1014192). Mit dem Ausblenden irrelevanter Ziele steigt m.E. der Nutzen deutlich an.
Ok danke
Das hört sich gut an aber habe keine Ahnung wie das gehen soll ich kann doch nur die class im Widget ändern. ??? Hast du vielleicht einen Ansatz für mich. Brauche immer erst ein Ideenanstoß das ich weiter machen kann.
Zitat von: Pumba9876 am 22 Februar 2020, 08:38:34
... keine Ahnung wie das gehen soll ich kann doch nur die class im Widget ändern. ??? Hast du vielleicht einen Ansatz für mich. Brauche immer erst ein Ideenanstoß das ich weiter machen kann.
Bau doch erstmal die im Wiki dargestellte Lösung zur Umstellung zwischen relativer und absoluter Abfahrtszeit nach. Der Quellcode ist dort weitgehend niedergelegt. Danach liest Du im Wiki die Dokumentation von
Classchanger nach und wirst nach und nach verstehen, was da eigentlich passiert. Die Erstellung des Wikis für (fast) alle Widgets war mit einigem Aufwand verbunden. Die Ernte soll jetzt eingefahren werden.
Ok ich versuche mal mein Glück
Schreibe dann wenn ich es hin bekommen habe.
Nabend ,
Update von meinem Projekt es läuft ohne fehler ;D
<li class="round border-lightgray" data-row="3" data-col="1" data-sizex="6" data-sizey="6">
<div class="vbox">
<div class="w3x" data-type="select" data-items='["Halt2","Halt1","Halt3"]'
data-device="Busplan" data-get="Haltestelle"
data-cmd="setreading">
</div>
<div data-type="classchanger" data-device="Busplan" data-get="Haltestelle" data-get-off="Halt2"
data-get-on="(Halt1|Halt3)" data-on-class="hide" data-off-class="cell">
<div data-type="classchanger" data-device="Busplan" data-get="Zeit" data-get-on="on" data-on-class="hide" data-off-class="">
<div class="DVB alternate" data-width="300px" data-height="250px"
data-type="departure" data-device="Busplan" data-get="Halt2"
data-icon="" data-interval="30">
</div>
</div>
<div data-type="classchanger" data-device="Busplan" data-get="Zeit" data-get-on="off" data-on-class="hide" data-off-class="">
<div class="DVB alternate deptime" data-width="300px" data-height="250px"
data-type="departure" data-device="Busplan" data-get="Halt2"
data-icon="" data-interval="30">
</div>
</div>
</div>
<div data-type="classchanger" data-device="Busplan" data-get="Haltestelle" data-get-off="Halt1"
data-get-on="(Halt2|Halt3)" data-on-class="hide" data-off-class="cell">
<div data-type="classchanger" data-device="Busplan" data-get="Zeit" data-get-on="on" data-on-class="hide" data-off-class="">
<div class="DVB alternate" data-width="300px" data-height="250px"
data-type="departure" data-device="Busplan" data-get="Halt1"
data-icon="" data-interval="30">
</div>
</div>
<div data-type="classchanger" data-device="Busplan" data-get="Zeit" data-get-on="off" data-on-class="hide" data-off-class="">
<div class="DVB alternate deptime" data-width="300px" data-height="250px"
data-type="departure" data-device="Busplan" data-get="Halt1"
data-icon="" data-interval="30">
</div>
</div>
</div>
<div data-type="classchanger" data-device="Busplan" data-get="Haltestelle" data-get-off="Halt3"
data-get-on="(Halt2|Halt1)" data-on-class="hide" data-off-class="cell">
<div data-type="classchanger" data-device="Busplan" data-get="Zeit" data-get-on="on" data-on-class="hide" data-off-class="">
<div class="DVB alternate" data-width="300px" data-height="250px"
data-type="departure" data-device="Busplan" data-get="Halt3"
data-icon="" data-interval="30">
</div>
</div>
<div data-type="classchanger" data-device="Busplan" data-get="Zeit" data-get-on="off" data-on-class="hide" data-off-class="">
<div class="DVB alternate deptime" data-width="300px" data-height="250px"
data-type="departure" data-device="Busplan" data-get="Halt3"
data-icon="" data-interval="30">
</div>
</div>
</div>
<div class="hbox top-narrow">
<div class="inline top-space" data-type="label" data-limits-get="Busplan:Zeit"
data-limits='["on", "off"]' data-colors='["#8C8C8C", "white"]'>Abfahrt in ... Min.</div>
<div class="small inline" data-type="checkbox" data-on-background-color="grey" data-get="Zeit"
data-off-background-color="grey" data-device="Busplan"
data-cmd="setreading" data-set="Zeit"></div>
<div class="inline top-space" data-type="label" data-limits-get="Busplan:Zeit"
data-limits='["off", "on"]' data-colors='["#8C8C8C", "white"]'>Abfahrt um ...</div>
</div>
</div>
</li>
danke für den Tipp,
und im Anschluss noch Device
defmod Busplan HTTPMOD none 0
attr Busplan userattr get01Name get01Regex get01URL get02Name get02Regex get02URL get03Name get03Regex get03URL get0URL
attr Busplan event-on-change-reading state
attr Busplan get01Name Halt1
attr Busplan get01Regex (\[\[.*\]\]).*
attr Busplan get01URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=Halt1&provider=Vrn
attr Busplan get02Name Halt2
attr Busplan get02Regex (\[\[.*\]\]).*
attr Busplan get02URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=Halt2&provider=Vrn
attr Busplan get03Name Halt3
attr Busplan get03Regex (\[\[.*\]\]).*
attr Busplan get03URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=Halt3&provider=Vrn
attr Busplan group Auswertung
attr Busplan icon time_clock
attr Busplan room Büro -> Kalender
attr Busplan stateFormat Haltestelle
attr Busplan timeout 30
setstate Busplan 2020-02-22 17:19:31 Haltestelle Halt1
setstate Busplan 2020-02-13 12:11:27 Halt1 xxxxxxxxxx
setstate Busplan 2020-02-22 17:48:10 Halt2 xxxxxxxxxx
setstate Busplan 2020-02-22 17:23:40 Halt3 xxxxxxxxxx
setstate Busplan 2020-02-22 17:29:31 Zeit off
das einzigste was noch ist ,es aktualisiert sich nicht automatisch wenn ich die Haltestelle ändere oder wenn ich zwischen Minuten und Uhrzeit umschalte ,
bräuchte da noch mal hilfe.
Zitat von: Pumba9876 am 22 Februar 2020, 17:55:57
... das einzigste was noch ist ,es aktualisiert sich nicht automatisch wenn ich die Haltestelle ändere oder wenn ich zwischen Minuten und Uhrzeit umschalte ,
bräuchte da noch mal hilfe.
Zunächst einmal: Dein
data-interval="30" halte ich für übertrieben kurz, denn jede Abfrage hat Netzwerk-Traffic zur Folge. Dein Anliegen (Aktualisierung beim Umschalten zwischen den Ansichten) könnte folgendermaßen realisiert werden (ohne Gewähr): Zusammen mit dem Befehl zum Umschalten setzt Du einen Befahl an FHEM ab, der die Daten neu holt. Etwa so:
data-cmd="get Busplan Halt1"
Mit dem Befehl tut sich leider nichts :-\
Muss die Seite immer manuell aktualisieren
Zitat von: Pumba9876 am 23 Februar 2020, 20:34:18
Mit dem Befehl tut sich leider nichts :-\
Der Reihe nach: In Deinem FHEM-device
Busplan sollte es (u.a.) das Reading
Halt1 geben, in dem die Abfahrtsdaten angezeigt werden.
Wenn Du nun im FHEM-Eingabefeld
get Busplan Halt1
eingibst, sollte im Widget
departure (also FTUI) die Anzeige aktualisiert werden. Wenn das nicht so ist (bei mir tut es), ist meine Kompetenzgrenze erreicht. Wenn es geht, reduziert sich die Herausforderung darauf, von FTUI aus den genannten FHEM-Befehl im richtigen Augenblick abzusetzen. Und dies wäre in Deinem Szenario die Umschaltung zwischen den Haltestellen.
Übrigens: Wenn es bei dem Umschalten zwischen Haltestellen nur darum geht, auf der FTUI-Oberfläche Platz zu sparen, lautet ein Alternativansatz: Mit Pagebutton eine eigene Seite mit
allen Haltestellen aufrufen.
ZitatDein Anliegen (Aktualisierung beim Umschalten zwischen den Ansichten) könnte folgendermaßen realisiert werden (ohne Gewähr): Zusammen mit dem Befehl zum Umschalten setzt Du einen Befahl an FHEM ab, der die Daten neu holt
Geht doch aber immer nur für eine Haltestelle wenn dann müssten sich alle gleichzeitig aktualisieren damit ich egal welche ich ausgewählt habe auch aktuell sind
Zitat von: Pumba9876 am 24 Februar 2020, 09:45:09
Geht doch aber immer nur für eine Haltestelle wenn dann müssten sich alle gleichzeitig aktualisieren damit ich egal welche ich ausgewählt habe auch aktuell sind
Dann musst Du eben alle drei readings aktualisieren mit
get Busplan Halt1;; get Busplan Halt2;; get Busplan Halt3
(Ich bin mir nicht sicher, ob die Einzelbefehle richtig mit ";;" getrennt werden.)
Mit get Busplan Maximilianpark; get Busplan Pelzerstrasse; get Busplan Künstlerwinkel; setreading
Aktualisiert zwar die readings im DEVICE aber nicht die Seite
Aber immer hin funktioniert es jetzt mit Aktualisieren im device wenn ich die Haltestelle ändere.
Das ist ja schon mal etwas.
Danke für deine Hilfe . :)
Hallo,
gibt es eine Möglichkeit, das Modul Departure in das FTUI-Widged Departure einzubinden?
Ich hatte es mal gesucht, aber in diesem Thread nix gefunden...
vielen dank euch
Für alle die im header "Linie", "Richtung" und "Zeit" bzw. "in Min" vermissen. ich habe da mal was im Code der widget_departure.js angepasst (Zeile 114)...:
// prepare list header
$('<div class="header">').append(elem.hasClass('deptime') ? '<div class="line">Linie</div><div class="destination">Richtung</div><div class="minutes">Zeit</div></div>' : '<div class="line">Linie</div><div class="destination">Richtung</div><div class="minutes">in Min</div></div>')
.appendTo(innerElem);
man muss aber noch die css anpassen:
.departure .header{
color: #222;
position: absolute;
left: 1px;
top: 40px;
width: 99%;
font-weight: bold;
font-size: 12px;
}
wenn es bei allen geht, könnte es ja eingecheckt werden...
Zitat von: mr_petz am 11 Mai 2020, 23:13:29
[...]
wenn es bei allen geht, könnte es ja eingecheckt werden...
"Bei allen" weiß ich nicht, aber bei mir geht es. Vielen Dank.
habe mal die webapi und nicht die widgetapi von der vvo genommen, weil die api bis in den nächsten Tag die Verbindungen anzeigt. Kann man als json oder xml einlesen. Also wer auch aus dem Raum DD
NVBW (Nahverkehrsgesellschaft Baden-Württemberg)
Ruhrbahn
DVB
VVO
VBB
DB
VRR (Verkehrsverbund Rhein-Ruhr)
Naldo (Verkehrsverbund Neckar-Alb-Donau)
VMS (Verkehrsverbund Mittelsachsen)
KVV (Karlsruher Verkehrsverbund)
Verkehrsverbund Steiermark
kommt, kann es vielleicht gebrauchen.
Bsp.:
defmod BusfahrPlan_ZOB HTTPMOD none 0
attr BusfahrPlan_ZOB userattr get01Expr get01Name get01Regex get01URL
attr BusfahrPlan_ZOB get01Expr VVOExpr($val)
attr BusfahrPlan_ZOB get01Name ZOB
attr BusfahrPlan_ZOB get01Regex DlId":"(.*)RouteChanges
attr BusfahrPlan_ZOB get01URL https://webapi.vvo-online.de/dm?format=json&mot=CityBus&mot=IntercityBus&stopid=33003371&limit=32
attr BusfahrPlan_ZOB timeout 30
99_myUtils.pm:
sub VVOExpr($)
{
my ($all) = @_;
my @time1 = ($all=~/ScheduledTime\"\:\"\\\/Date\((.*?)000\-0000\)/g);
my @time2 = ($all=~/RealTime\"\:\"\\\/Date\((.*?)000\-0000\)/g);
my @line = ($all=~/LineName\"\:\"(.*?)\"\,\"Direction\"/g);
my @dest = ($all=~/Direction\"\:\"(.*?)\"\,\"Platform\"/g);
my $ret='[';
for( my $i=0;$i<@time2; $i++ ) {
next if !defined $time2[$i] || 0 == length($time2[$i]);
$time1[$i] = $time2[$i] if $time1[$i] < $time2[$i];
}
for my $i (0 .. $#line)
{
$ret=$ret.'["'.$line[$i].'",'.'"'.$dest[$i].'",'.'"'.strftime("%H:%M", localtime($time1[$i])).'"]';
if ($i<$#line) {$ret=$ret.',';}
}
return $ret.']';
}
In der 99_myUtils wird im ersten "for" die eventuelle Verspätung aus time2 in time1 geschrieben.
Im zweiten "for" alles aufbereitet und die unixzeit in HH:MM umgerechnet.
vielleicht kann das jemand noch ein bisschen anpassen.
mögliche Verbindungen:
"Tram",
"CityBus",
"IntercityBus",
"SuburbanRailway",
"Train",
"Cableway",
"Ferry",
"HailedSharedTaxi"
hier noch der Link zur GitHub webapi (kann man noch einiges mehr machen):
https://github.com/kiliankoe/vvo/blob/master/documentation/webapi.md (https://github.com/kiliankoe/vvo/blob/master/documentation/webapi.md)
Ich möchte für die einzelnen Daten einzelne Readings erzeugen?
Dies kann man mit "extractAllJSON" machen.
Das entstehende Problem ist die Zeitangabe im Format /Date(1595894520000-0000)/
Wie kann man diesen Wert umrechnen?
Alternativ, wie bekommt man diese Werte ["A","Weißeritzpark","27"],["A","Löbtau","34"]]
aus den Klammern in einzelne Readings?
Wenn Du mit extratAllJSON arbeitest, hast Du keinen Einfluss auf einzelne Readings.
Aber mit expliziter Definition des Readings, kannst Du mit readingXXOExpr (bzw getXXOExpr) umformattieren, z.B.:
defmod BusfahrPlan_ZOB HTTPMOD https://webapi.vvo-online.de/dm?format=json&mot=CityBus&mot=IntercityBus&stopid=33003371&limit=32 0
attr BusfahrPlan_ZOB reading01AlwaysNum 1
attr BusfahrPlan_ZOB reading01AutoNumLen 2
attr BusfahrPlan_ZOB reading01JSON Departures_.*_ScheduledTime
attr BusfahrPlan_ZOB reading01Name Zeit
attr BusfahrPlan_ZOB reading01OExpr FmtDateTime(substr($val,6,10))
2020-07-28 02:15:24 Zeit-01 2020-07-28 04:20:00
2020-07-28 02:15:24 Zeit-02 2020-07-28 04:24:00
2020-07-28 02:15:24 Zeit-03 2020-07-28 04:47:00
2020-07-28 02:15:24 Zeit-04 2020-07-28 04:48:00
2020-07-28 02:15:24 Zeit-05 2020-07-28 04:57:00
2020-07-28 02:15:24 Zeit-06 2020-07-28 05:00:00
2020-07-28 02:15:24 Zeit-07 2020-07-28 05:00:00
2020-07-28 02:15:24 Zeit-08 2020-07-28 05:05:00
2020-07-28 02:15:24 Zeit-09 2020-07-28 05:06:00
2020-07-28 02:15:24 Zeit-10 2020-07-28 05:08:00
2020-07-28 02:15:24 Zeit-11 2020-07-28 05:12:00
2020-07-28 02:15:24 Zeit-12 2020-07-28 05:18:00
2020-07-28 02:15:24 Zeit-13 2020-07-28 05:19:00
2020-07-28 02:15:24 Zeit-14 2020-07-28 05:19:00
2020-07-28 02:15:24 Zeit-15 2020-07-28 05:21:00
2020-07-28 02:15:24 Zeit-16 2020-07-28 05:25:00
2020-07-28 02:15:24 Zeit-17 2020-07-28 05:27:00
2020-07-28 02:15:24 Zeit-18 2020-07-28 05:28:00
2020-07-28 02:15:24 Zeit-19 2020-07-28 05:36:00
2020-07-28 02:15:24 Zeit-20 2020-07-28 05:38:00
2020-07-28 02:15:24 Zeit-21 2020-07-28 05:42:00
2020-07-28 02:15:24 Zeit-22 2020-07-28 05:43:00
2020-07-28 02:15:24 Zeit-23 2020-07-28 05:46:00
2020-07-28 02:15:24 Zeit-24 2020-07-28 05:47:00
2020-07-28 02:15:24 Zeit-25 2020-07-28 05:47:00
2020-07-28 02:15:24 Zeit-26 2020-07-28 05:47:00
2020-07-28 02:15:24 Zeit-27 2020-07-28 05:48:00
2020-07-28 02:15:24 Zeit-28 2020-07-28 05:48:00
2020-07-28 02:15:24 Zeit-29 2020-07-28 05:49:00
2020-07-28 02:15:24 Zeit-30 2020-07-28 05:56:00
2020-07-28 02:15:24 Zeit-31 2020-07-28 05:56:00
2020-07-28 02:15:24 Zeit-32 2020-07-28 05:57:00
Danke, das hat mir schon sehr geholfen.
Wie bekomme ich die Zeitangabe in HH:MM formatiert?
Zitat von: stefan-dd am 28 Juli 2020, 17:31:01
Danke, das hat mir schon sehr geholfen.
Wie bekomme ich die Zeitangabe in HH:MM formatiert?
Mit strftime(localtime()) wie oben im myUtils Code von mr_petz
Genau amenomade
https://forum.fhem.de/index.php/topic,48255.msg1058924.html#msg1058924 (https://forum.fhem.de/index.php/topic,48255.msg1058924.html#msg1058924)
Version mit Einzelreadings:
defmod VVO HTTPMOD https://webapi.vvo-online.de/dm?format=json&mot=CityBus&mot=IntercityBus&stopid=33000709&limit=4 30
attr VVO userattr reading01AlwaysNum reading01AutoNumLen reading01JSON reading01Name reading01OExpr reading01Regex reading02AlwaysNum reading02AutoNumLen reading02JSON reading02Name reading03AlwaysNum reading03AutoNumLen reading03JSON reading03Name reading04AlwaysNum reading04AutoNumLen reading04JSON reading04Name reading04OExpr
attr VVO reading01JSON Departures_.*_ScheduledTime
attr VVO reading01Name 1
attr VVO reading01OExpr strftime("%H:%M", localtime (substr($val,6,10)))
attr VVO reading02JSON Departures_.*_LineName
attr VVO reading02Name 2
attr VVO reading03JSON Departures_.*_Direction
attr VVO reading03Name 3
attr VVO reading04JSON Departures_.*_ScheduledTime
attr VVO reading04Name 4
attr VVO reading04OExpr sprintf("%.0f",(substr($val,6,10)-time)/60)
Das Ganze sieht toll aus auf meiner Startseite in FTUI... leider habe ich in den "Richtungsangaben" bei mir Umlaute ("Königsberger", "Grombühl"). Diese werden sowohl im FTUI als auch in "FHEM selber" hässlich dargestellt...
[["5","Grombühl Pestalozzistr. Uni-Klinikum A","0"],["5","Rottenbauer","0"],["4","Sanderau Königsberger StraÃe","3"],["4","Bürgerbräu","4"],["5","Grombühl Pestalozzistr. Uni-Klinikum A","10"],["5","Rottenbauer","10"],["4","Sanderau Königsberger StraÃe","14"],["4","Bürgerbräu","14"],["5","Grombühl Pestalozzistr. Uni-Klinikum A","20"],["5","Rottenbauer","20"]]
Habe schon geschaut, ob ich das in FHEM lösen muss (wovon ich derzeit ausgehe, da FTUI ja nur die Daten "abbildet"), leider komme ich nicht weiter... kann mir jemand helfen?
Schönen Nachmittag!
Zitat von: benedikt-wue am 02 Januar 2021, 15:39:25
Das Ganze sieht toll aus auf meiner Startseite in FTUI... leider habe ich in den "Richtungsangaben" bei mir Umlaute ("Königsberger", "Grombühl"). Diese werden sowohl im FTUI als auch in "FHEM selber" hässlich dargestellt...
Falls es noch von Interesse ist, bei mir hat ein: attr xyz getDecode UTF-8 geholfen.
Gruß LuGu
Zitat von: LuGu am 24 Februar 2021, 20:53:39
Falls es noch von Interesse ist, bei mir hat ein: attr xyz getDecode UTF-8 geholfen.
Habe ich zwar jetzt nicht überprüft, weil bei mir kein Bedarf besteht, aber den Hinweis habe ich im FTUI-Wiki aufgenommen. :)
Ulm32b
Hallo zusammen,
ich habe das Widget schon länger in TabletUI integriert und mache mich nun darüber, die Oberfläche hübsch zu gestalten und zu vervollständigen. Die Abfahrtspläne beider Haltestellen bekomme ich mir korrekten Daten angezeigt. So weit, so schön. Allerdings kann ich machen was ich will, die beiden Fahrpläne sind immer links in der Zelle/Reihe ausgerichtet, nicht mittig. Egal wie ich es probiere, ich bekomme die Fahrpläne nicht zentriert. Evtl habt ihr eine Idee?
Anbei der Auszug aus der html. Der erste Plan mit "center-align", der zweite als Zelle. Beides klappt nicht.
Danke schon mal für die Hilfe
VG
Florian
<li data-row="3" data-col="5" data-sizex="2" data-sizey="3" >
<div class="cell bigger darker">Busfahrplan</div>
<div class="sheet">
<div class="row">
<div class="center-align">
<div data-type="departure"
data-device="Departure_Fruehlingstrasse"
data-get="Fruehlingstrasse"
data-icon="fa-bus"
data-interval="60">
</div>
</div>
</div>
<div class="row">
<div class="cell">
<div data-type="departure"
data-device="Departure_Maximilianstrasse"
data-get="Maximilianstrasse"
data-icon="fa-bus"
data-interval="60">
</div>
</div>
</div>
</div>
</li>
Hi, müsstest du ,wenn es wirklich um die Spalten geht, in der css vom departure ändern...
Unter:
.departure .line
.departure .destination
.departure .minutes
Wenn du das meinst. Oder in einer user.css anlegen...
Zitat von: mr_petz am 10 April 2021, 14:42:16
Hi, müsstest du ,wenn es wirklich um die Spalten geht, in der css vom departure ändern...
Unter:
.departure .line
.departure .destination
.departure .minutes
Wenn du das meinst. Oder in einer user.css anlegen...
Hi,
die Box selbst bzw die Inhalte sind ok. Das ist es nicht. Ich kann die ganze Box nicht ausrichten. Das ist mein Problem. ich hätte die Box gerne zentriert in der Zelle....
VG
Florian
kannst direkt eine css klasse mitgeben.
Bsp.:
<div data-type="departure"
data-device="Departure_Fruehlingstrasse"
data-get="Fruehlingstrasse"
data-icon="fa-bus"
data-interval="60"
class="center deptime alternate">
</div>
Zitat von: mr_petz am 10 April 2021, 15:48:42
kannst direkt eine css klasse mitgeben.
Bsp.:
<div data-type="departure"
data-device="Departure_Fruehlingstrasse"
data-get="Fruehlingstrasse"
data-icon="fa-bus"
data-interval="60"
class="center deptime alternate">
</div>
Super, danke. Hat geklappt. Nur so aus Neugier ;) Wo kann man das nachlesen???
VG
Florian
Zitat von: Ulm32b am 17 Januar 2020, 18:11:52
Dein Suchstring lautet (einschließlich der Anführungszeichen und des Kommas): "Neusiedl", Und das wird nicht gefunden.
Du hast die Wahl:
1. Suchstring entspricht genau den gelieferten Werten, also "Neusiedl am See Hauptplatz", (Komma ist entbehrlich, dann wird nur vom ersten bis zum zweiten Anführungszeichen gesucht)
2. Suchstring wird so gewählt, dass er in den gelieferten Werten gefunden wird, z.B. Neusiedl oder auch "Neusiedl
Bei 2 würde der Suchstring aber z.B. auch bei "Neusiedl Strandpromenade" anschlagen. Die angemessene Variante ist aus dem Kontext heraus zu wählen. Wenn es sehr viele Ziele in Neusiedl gibt und einzelne davon nicht gelöscht werden sollen, ist es sinnvoll, den Suchstring genauer zu wählen, um unerwünschte Effekte zu vermeiden.
Bitte nochmal testen.
Bei Interesse: https://regex101.com/ (https://regex101.com/)
Dort kann man die URL-Antwort als Teststring eingeben und als Suchstring:
\[[^\[]*(Neusiedl|"Purbach",|...)[^\]]*\],?
Damit lässt sich die Wirkung der Regex sehr bequem analysieren.
Hallo zusammen,
herzlichen Dank an alle für das großartige Widget und die vielen Optionen. Ich habe alle Seiten zu dem Thread gelesen und habe es bei mir wunderbar implementiert. Eine Frage hätte ich noch zur Selektion der Linien. Es wurde bereits in den Antworten 40, 42, 78, 97, 283 287 und 290-293 (eventuell habe ich noch welche vergessen) angesprochen, wie man eine Linie "filtert". Das Ausschneiden der Linie mit den Zielen funktioniert einwandfrei wie in dem zitierten Code, sodass man nur eine Linie enthält.
Ich habe eine Haltestelle, an der viele Linien zusammenlaufen, U-Bahn, Bus, S-Bahn und Zug. Jetzt müsste ich alle Ziele quasi ausselektieren, damit ich nur die U-Bahn erhalte.
Wie muss man den
get01Expr Ausdruck abändern, damit eine Linie mit einem Ziel angezeigt wird? Natürlich könnte ich auch alle Linien rausfiltern, jedoch gibt es an einem zentralen Verkehrspunkt sehr viele Linien; da wäre ein "Filtern" einfacher als ein "Rausfiltern".
Zitat von: pallago am 17 Januar 2022, 22:27:44
Ich habe eine Haltestelle, an der viele Linien zusammenlaufen, U-Bahn, Bus, S-Bahn und Zug. Jetzt müsste ich alle Ziele quasi ausselektieren, damit ich nur die U-Bahn erhalte.
Wie muss man den get01Expr Ausdruck abändern, damit eine Linie mit einem Ziel angezeigt wird? Natürlich könnte ich auch alle Linien rausfiltern, jedoch gibt es an einem zentralen Verkehrspunkt sehr viele Linien; da wäre ein "Filtern" einfacher als ein "Rausfiltern".
@ pallago: Ich habe gute Nachrichten. Für das Selektieren gesuchter Relationen gibt es jetzt auch eine Lösung. Damit sie hier nicht im Forum versteckt bleibt, habe ich das Wiki entsprechend ergänzt: https://wiki.fhem.de/wiki/FTUI_Widget_Departure (https://wiki.fhem.de/wiki/FTUI_Widget_Departure). Bitte die dort angegebene Vorgehensweise nutzen, dann haben wir hier gleich noch eine Qualitätskontrolle.
Gerne erwähne ich an dieser Stelle, dass ich es selbst nicht geschafft hatte, aber es gibt ja Leute, die sich damit auskennen (https://forum.fhem.de/index.php/topic,125597.msg1202232.html#msg1202232 (https://forum.fhem.de/index.php/topic,125597.msg1202232.html#msg1202232)). :D
Hallo,
seit ca. Dez. 2021 hat wohl die BVG die Bereitstellung Ihrer Daten komplett geändert. Weder Departure noch die reine Abfrage mit HTTPMOD bekomme ich noch zum laufen. Hat Jemand für die Abfahrtszeiten der BVG schon eine Lösung und kann mir einen Tipp geben, wo ich meine Suche beginnen kann ?
Gruß Mirko
Hi, was meinst du mit komplett geändert?
Hier sind doch Daten im json Format:
Bsp.:
https://v5.bvg.transport.rest/locations?poi=false&addresses=false&query=mehringdamm%27
oder:
https://v5.bvg.transport.rest/stops/900000017101/departures?results=5
Abfahrtszeiten wäre when oder plannedWhen. sogar ein delay ist dabei.
LG mr_petz
Edit: und dann kannst du die Daten aufarbeiten lassen. So in der Art wie Hier:
https://forum.fhem.de/index.php/topic,48255.msg1058924.html#msg1058924
Hi mr_petz,
das ist super und bringt mich schon etwas weiter. Hatte davor die Daten von "www.bvg.de/de/verbindungen/verbindungssuche" eingelesen und verarbeitet und da ist nun alles völlig neu gestaltet.
Gibt es zu der von Dir hier verwendeten api eine doku o.ä. ? Die kenn ich ja leider überhaupt nicht :(
LG Mirko
Ja gibt es:
https://v5.bvg.transport.rest/api.html
LG mr_petz
Super, da komm ich weiter.
Danke Dir !!!
Besten Dank Ulm32b - es funktioniert wunderbar.
Hallo zusammen,
seit ein paar Tagen funktioniert die Abfrage für den Raum München (Mvv) nicht mehr (einige Haltestellen seit 17.01.2023 bzw. 13.02.2023 bzw. 18.02.2023) .
In https://transport.stefan-biermann.de/publictransportapi/rest/provider (https://transport.stefan-biermann.de/publictransportapi/rest/provider) ist der Mvv noch gelistet.
Meine Links, die ich mir vor einiger Zeit zum Testen notiert habe, funktionieren leider auch nicht mehr, bspw.
- https://transport.stefan-biermann.de/publictransportapi/rest/station/suggest?q=Harras&provider=Mvv (https://transport.stefan-biermann.de/publictransportapi/rest/station/suggest?q=Harras&provider=Mvv)
- https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=1001330&provider=Mvv
- https://transport.stefan-biermann.de/publictransportapi/rest/connection/FHEM?from=6906508&to=6930100&product=T&provider=Vagfr&limit=10
Hat noch jemand das Problem beobachtet? Nutzt jemand die MVG-Webseite direkt und falls dem so ist, könnte er bitte als Beispiel die Attribute (
get01Expr, get01Name, get01Regex, get01URL) zur Auswertung der JSON-Daten posten?
https://www.mvg.de/api/fahrinfo/departure/de:09162:1130?sbahn=false&ubahn=true&bus=false&tram=false&footway0&zug=false (https://www.mvg.de/api/fahrinfo/departure/de:09162:1130?sbahn=false&ubahn=true&bus=false&tram=false&footway0&zug=false)
Hallo,
Auch ich habe heute feststellen müssen, dass bei dem Provider MVV die Abfahrtzeiten nicht mehr stimmen.
Unsere Haltestelle hat seit kurzen einen Ferienplan aber über https://transport.stefan-biermann.de/publictransportapi/rest/departure?from=1005648&provider=Mvv (https://transport.stefan-biermann.de/publictransportapi/rest/departure?from=1005648&provider=Mvv) kommt noch der alte Fahrplan.
Ist dies Projekt eingestellt oder liefert der Provider MVV keine aktuellen Daten mehr?
Leider ist für mich die Abfrage dieser transport-Datenbank dadurch nutzlos.
Gruß
Michi
Hi Michi,
Zitat der MVV:
ZitatBei Fragen oder Problemen wenden Sie sich bitte an die MVV-Kundenbetreuung. Unser OpenData-Angebot wird sukzessive ausgebaut. Bitte beachten Sie, dass sich die Anbindung unserer Schnittstelle (API) zu unserem Fahrplanauskunftssystem derzeit noch im geschlossenen Beta-Betrieb befindet.
könnte also von denen so kommen...
LG