Neues FTUI Widget - Departure

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

Vorheriges Thema - Nächstes Thema

amenomade

#330
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
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

stefan-dd

Danke, das hat mir schon sehr geholfen.
Wie bekomme ich die Zeitangabe in HH:MM formatiert?

amenomade

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
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus


stefan-dd

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)

benedikt-wue

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!

LuGu

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
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt

Ulm32b

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

FlorianSenne

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>

mr_petz

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...

FlorianSenne

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

mr_petz

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>

FlorianSenne

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


pallago

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/
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".

Ulm32b

#344
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. 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).  :D