Neues FTUI Widget - Departure

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

Vorheriges Thema - Nächstes Thema

Ulm32b

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

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.

Kusselin

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

Kusselin

Zitat von: Ulm32b am 25 Februar 2017, 16:16:37
Guggst Du hier: 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

Ulm32b

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?

McElch

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!


Kusselin

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!

Ulm32b

#126
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

Kusselin

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

sinus61

get01Regex, das muss schon zu Name und URL passen

Kusselin

Dh das das get01 durch das get02regex ersetzt werden muss auch das get01Url durch get02url ersetzt werden muss.. Ist das so richtig verstanden?
Gruss

Ulm32b

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

setstate

Wenn regex ohne Nummer, dann gilt es für alle. So habe ich es aus der CommandRef interpretiert.

Kusselin

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

andies

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?
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Tomatenjoghurt

Hallo zusammen,

jetzt habe ich auch einmal eine Frage...so wie der HTTPMOD im wiki 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!