reading filtern für ftui Ausgabe

Begonnen von topa_LE, 02 Juli 2017, 18:53:09

Vorheriges Thema - Nächstes Thema

topa_LE

Hallo,

mir fehlt einfach der Ansatz und was passendes habe ich leider nicht gefunden.

Folgendes: Ein Device liefert ein reading in der Form: Thu 8 Jun 10:53:40 CEST 2017

Diesen Wert möchte ich gerne in Tablet UI mit "data-get" anzeigen lassen , aber nur in der Form: 08. Juni 2017

Das Reading wird gesetzt mit: data-get="image_builddate" und zeigt eben noch zur Zeit das an:
Thu 8 Jun 10:53:40 CEST 2017

Wie könnte man das umsetzen, das aus diesem Reading das Datum so gewandelt wird: 08. Juni 2017 ?

KernSani

Wahrscheinlich kann dir im FTUI Subforum besser geholfen werden... (Verschieben über Button ganz unten links)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Amenophis86

erstell dir ein Userreading, welches die Daten enthält, die du haben möchtest und frage dieses mittels FTUI ab. Denke nicht, dass FTUI direkt kann, was du möchtest. Mir ist zumindest nicht bekannt, dass ein Reading umgerechnet werden kann, lediglich gekürzt gab es mal irgendwo.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

topa_LE

"erstell dir ein Userreading, welches die Daten enthält"

wenn ich das wüsste , würd ich es machen. Mir feht da einfach der Ansatz.

setstate

Der Wert  Thu 8 Jun 10:53:40 CEST 2017 sieht nach einem standardisiertem Format aus. Deshalb sollte dieses mit FTUI-Boardmitteln funktionieren

data-substitution="toDate().toLocaleDateString()"

topa_LE

Setze ich das in UI rein:

data-substitution="toDate().toLocaleDateString()"

zeigt er mir das aktuelle Datum an (8.7.2017), ich brauche aber das Datum aus dem reading: image_builddate.

setstate

okay, dann wird der String doch nicht automatisch als Datum eingelesen, sondern stattdessen das aktuelle Datum benutzt.

Dann doch mit RegEx

data-substitution="s/\w{3}\s(\d{1,2})\s(\w+).*(\d{4})/$1.$2.$3"

Aber das ist eine reine Substring Extraktion.
Es werden drei Gruppen gesucht "... (..)   (..)   (....)" und diese mit Punkt getrennt wieder ausgegeben "$1.$2.$3"
"Jun" wird nicht in "06" umgewandelt und "8" auch nicht in"08".
Das geht dann wirklich nur als Userreading mit Perl-Funktion

topa_LE

Danke dafür.

Wie würde den das UserReading mit Perlfunktion da aussehen im spezielle Fall?