[gelöst]möchte eigenes Departure bauen, nur wie?

Begonnen von namor, 24 September 2016, 11:15:07

Vorheriges Thema - Nächstes Thema

namor

Hallo,

ich bin zu doof dazu.
Ich möchte aufbauend auf den HTTPMOD welcher auch Grundlage für das Departure Widget ist eine eigene Darstellung über ein Label-Widget, Zeilenweise realisieren.
Das Httpmod-Reading sieht so aus:

[["5","Rieselfeld","3"],["5","Freiburg Hornusstraße","4"],["5","Rieselfeld","10"],["5","Freiburg Hornusstraße","12"],["5","Rieselfeld","18"],["5","Freiburg Hornusstraße","19"],["5","Rieselfeld","25"],["5","Freiburg Hornusstraße","27"],["5","Rieselfeld","33"],["5","Freiburg Hornusstraße","34"]]

Ich möchte gerne jede Linie mit Ihren Zeiten in eine Zeile, wie im Departure.

Nun komme ich absolut nicht mit dem Auslesen des Readings zurecht.
Ich denke ein data-substitution wäre dafür geignet, doch habe ich keine Ahnung wie das Regex-Auslesen aussehen sollte???

Kann mir da jemand einen Tipp geben?

Gruß

setstate

Mit RegEx würde man sich einen abbrechen ... Das ist was für ganz Harte  8)

Da die Zeile aber einem Javascript-Array entspricht, kann an hier ganz gut mit JSON und einem entsprechendem Parser arbeiten.

Daher habe ich jetzt eine neue Funktion eingebaut, die man mit data-substitution nutzen kann und die JSON.parse() verwendet.


<div data-type="label" data-device="VVO" data-get="Altmarkt" data-substitution="parseJson()[0][1]" class=""></div>


Damit zeigt man die erste Zeile und die zweite Spalte an

namor

@setstate
Du bist mein Held.
Super, vielen Dank.

Suche den Donation Button?

Eine Frage noch zu der neuen Funktion, kann ich auch gleichzeitig alle 3 Spalten abfragen oder muss ich für jede Spalte ein Label bauen?
Wenn ja, wie?

Gruß

setstate

da muss man ganz tief in die Einzeiler-Trickkiste greifen:

Zwei Zeilen gleichzeitig, jeweils die 2. Spalte


data-substitution="parseJson().map(function(item,index) {return (index==0||index==1)?item[1]+'<br>':'';})"


2 Spalten von einer Zeile

data-substitution="parseJson().map(function(item,index) {return (index==0)?item[1]+' in '+item[2]+'min':'';})"


... und Donation-Button findet man auf github ganz unten:
https://github.com/knowthelist/fhem-tablet-ui

namor


namor

Wer es noch auf alle 3 Spalten mit eigenen Bezeichnungen ausbauen möchte kann dies z.Bsp. so machen:
data-substitution="parseJson().map(function(item,index) {return (index==0)?' Linie '+item[0]+' Richtung '+item[1]+' in '+item[2]+'min':'';})"

Nun zeigt das Label folgendes an:
Linie 5 Richtung Rieselfeld in 5min

@setstate
diese Erweiterung ist echt klasse.

namor

Hallo @setstate

Ich habe nun mein neues FTUI aufgebaut und habe das Problem das sich der HTTPMOD welcher hinter Departure steckt nicht aktualisiert, fehlt ja auch das Departure Modul.

Nun suche ich eine Möglichkeit das HTTPMOD via "get" zu aktualisieren?

Ein "push" Button führt immer ein "set on" aus, jedoch kein "get".

Mein Button:
<div data-type="push"
                data-icon="fa-gear"
  data-on-background-color="#E6FF57"
  data-fhem-cmd="get+VAG+Haslach-Bad"
          class="cell">
                </div>


Bin ratlos.


namor

Lösung gefunden:

in der Wiki zum Button wird ein "+" in die Befehlszeile eingefügt, das muss wohl weg bleiben.

Wiki:
data-fhem-cmd="set+MILIGHT_Zone1_Wohnzimmer+hue+50"

Mein Button (welcher nun funktioniert):
data-fhem-cmd="get VAG Haslach-Bad"


namor

@setstate

nach dem Update auf 2.4 geht Dein Code nicht mehr richtig.
Ich bekomme lauter Kommata an die Labels angehängt, sieht echt sch... aus.
Siehe Bilder.

Kannst Du mir sagen was ich ändern muss?

Vielen Dank

sinus61

Kennst du das Modul:
https://forum.fhem.de/index.php/topic,60046.0.html

Da brauchst du dir keine Gedanken um regex usw. machen und kannst bequem das was du willst aus Readings auslesen und wie gewünscht mit Labels darstellen.

namor

@sinus61

Danke das ist perfekt für meine Zwecke. ;)