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ß
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
@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ß
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
Klasse und Danke für Deine Zeit. ;)
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.
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.
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"
@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
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.
@sinus61
Danke das ist perfekt für meine Zwecke. ;)