Hauptmenü

data substitution

Begonnen von Wolfgang Hochweller, 27 Mai 2019, 18:40:19

Vorheriges Thema - Nächstes Thema

Wolfgang Hochweller

Ich habe eine Zeitangabe in der Form : 2019-05-28T00:00:00.

Daraus moechte ich gerne in einem Label-Widget Mo, Di, Mi, etc. bekommen.

Offenbar stoert das T in der Mitte.

Wie kriege ich das hin ?

setstate

da geht einiges zu machen


<div class="vbox">
    <div data-type="label" data-device="ftuitest" data-get="ttime"></div>
    <div data-type="label" data-device="ftuitest" data-get="ttime" data-substitution="s/(.*)T.*/$1/g"></div>
    <div data-type="label" data-device="ftuitest" data-get="ttime" data-part="(.*)T.*"></div>
    <div data-type="label" data-device="ftuitest" data-get="ttime" data-substitution="toDate().eee()"></div>
    <div data-type="label" data-device="ftuitest" data-get="ttime" data-part="(.*)T.*" data-substitution="toDate().eee()"></div>
</div>

Wolfgang Hochweller

#2
Danke, muss mich wohl doch mal mit Regex befassen.

Allerdings gibt es noch Probleme, habe ich auch schon mal im Forum gelesen ...

Wenn ich das hier verwende :



<div data-type="label" data-device="ftuitest" data-get="ttime" data-part="(.*)T.*" data-substitution="toDate().eee()"></div>



bekomme ich immer den Tag von heute, egal was ich in ttime anliefere.

Beispiel :

Readings :


     2019-05-28 07:50:17   time1           2019-05-28T12:00:00
     2019-05-28 07:50:17   time2           2019-05-29T12:00:00
     2019-05-28 07:50:17   time3           2019-05-30T12:00:00
     2019-05-28 07:50:17   time4           2019-05-31T14:00:00
     2019-05-28 07:50:17   time5           2019-06-01T14:00:00



Widgets :


<div data-type="label" data-device="YrXML" data-get="time2" data-substitution="toDate().ee()"   data-part="(.*)T.*" class="bigger"></div>

<div data-type="label" data-device="YrXML" data-get="time3" data-substitution="toDate().ee()"   data-part="(.*)T.*" class="bigger"></div>

<div data-type="label" data-device="YrXML" data-get="time4" data-substitution="toDate().ee()"   data-part="(.*)T.*" class="bigger"></div>





Alles gibt (heute) Dienstag

Kleine Ergaenzung :  Man kann das data-get weglassen, gibt auch Dienstag

setstate

Muss ich mir zuhause nochmal ansehen. Er scheint den String nicht als Datum zu erkennen und fällt auf today zurück.

Wolfgang Hochweller

Danke. Vielleicht noch eines:
Wenn man das Reading direkt als FHEM-Datum setzt, also 2019-05-28 11:00:00, ist es immer noch nicht  zufrieden.

setstate

ich musste die Funktion anpassen. Damit funktioniert das dann


<div class="vbox">
    <div data-type="label" data-device="ftuitest" data-get="ttime" data-substitution="toDate().eee()"></div>
</div>

Wolfgang Hochweller

Danke.
Bin unterwegs, probiere ich morgen aus.

Wolfgang Hochweller

Das funktioniert jetzt, wenn das Datum schon standard FHEM-Format hat.

Die data-part Anweisung data-part="(.*)T.*" ist dabei  destruktiv; danach geht es wieder nicht.

Bleibt also : Wie kriege ich :

2019-05-28T11:00:00

zu

2019-05-28 11:00:00

?




setstate

Hast du ein Update gemacht? Das T wird im RegEx der Funktion jetzt mit verarbeitet.

Wolfgang Hochweller

Ja, habe ich.

Funktioniert aber bei mir noch nicht.

Ich konnte bei dem Update auch nicht erkennen, dass du etwas eingecheckt hast ?

Oder kann ich das da nicht sehen ?


Wolfgang Hochweller

Sorry, mein Fehler.
Aus welchem Grund auch immer war FTUI beim Update nicht dabei.

Geht prima, danke.