Autor Thema: Neues FTUI Widget - Departure  (Gelesen 41406 mal)

Offline setstate

  • Hero Member
  • *****
  • Beiträge: 3752
  • FHEM TabletUI
    • FHEM Tablet UI
Neues FTUI Widget - Departure
« 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 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">&nbsp;</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"]]
« Letzte Änderung: 27 Januar 2016, 16:35:53 von setstate »

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 800
Antw:Neues FTUI Widget - Departure
« Antwort #1 am: 27 Januar 2016, 16:25:58 »
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?

Offline Astrofreak85

  • Full Member
  • ***
  • Beiträge: 132
Antw:Neues FTUI Widget - Departure
« Antwort #2 am: 27 Januar 2016, 16:38:12 »
Oh, warum grade DD? Feine Sache :D

Offline setstate

  • Hero Member
  • *****
  • Beiträge: 3752
  • FHEM TabletUI
    • FHEM Tablet UI
Antw:Neues FTUI Widget - Departure
« Antwort #3 am: 27 Januar 2016, 16:40:05 »
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
Den Seitenaufruf mache ich im FHEM per HTTPMOD, wie oben im ersten Post beschrieben.
« Letzte Änderung: 27 Januar 2016, 16:42:17 von setstate »

Offline setstate

  • Hero Member
  • *****
  • Beiträge: 3752
  • FHEM TabletUI
    • FHEM Tablet UI
Antw:Neues FTUI Widget - Departure
« Antwort #4 am: 27 Januar 2016, 16:41:06 »
Oh, warum grade DD? Feine Sache :D

Siehe mein Profil!  ;)

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 800
Antw:Neues FTUI Widget - Departure
« Antwort #5 am: 27 Januar 2016, 17:01:42 »
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 ;-)


Offline Risiko

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 629
Antw:Neues FTUI Widget - Departure
« Antwort #6 am: 27 Januar 2016, 19:19:07 »
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.

Offline kvo1

  • Hero Member
  • *****
  • Beiträge: 1473
  • FHEMonaut
Antw:Neues FTUI Widget - Departure
« Antwort #7 am: 27 Januar 2016, 22:43:26 »
Schaut gut aus, mal sehen wie das bei der BVG funktioniert ;)
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Offline uniqueck

  • Developer
  • Full Member
  • ****
  • Beiträge: 483
Antw:Neues FTUI Widget - Departure
« Antwort #8 am: 28 Januar 2016, 08:38:29 »
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


Offline setstate

  • Hero Member
  • *****
  • Beiträge: 3752
  • FHEM TabletUI
    • FHEM Tablet UI
Antw:Neues FTUI Widget - Departure
« Antwort #9 am: 28 Januar 2016, 16:08:31 »
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.']';
}

Offline kvo1

  • Hero Member
  • *****
  • Beiträge: 1473
  • FHEMonaut
Antw:Neues FTUI Widget - Departure
« Antwort #10 am: 28 Januar 2016, 17:49:42 »
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 !
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Offline setstate

  • Hero Member
  • *****
  • Beiträge: 3752
  • FHEM TabletUI
    • FHEM Tablet UI
Antw:Neues FTUI Widget - Departure
« Antwort #11 am: 28 Januar 2016, 18:05:07 »
Sieht doch gut aus. Das genau das Format, was das Widget braucht.

Offline kvo1

  • Hero Member
  • *****
  • Beiträge: 1473
  • FHEMonaut
Antw:Neues FTUI Widget - Departure
« Antwort #12 am: 28 Januar 2016, 18:35:38 »
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
« Letzte Änderung: 28 Januar 2016, 23:12:51 von kvo1 »
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Offline kvo1

  • Hero Member
  • *****
  • Beiträge: 1473
  • FHEMonaut
Antw:Neues FTUI Widget - Departure
« Antwort #13 am: 29 Januar 2016, 07:54:37 »
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 !

RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Offline setstate

  • Hero Member
  • *****
  • Beiträge: 3752
  • FHEM TabletUI
    • FHEM Tablet UI
Antw:Neues FTUI Widget - Departure
« Antwort #14 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.

 

decade-submarginal