[gelöst] FTUI data-hide-on readingsage

Begonnen von bismosa, 29 November 2018, 20:16:40

Vorheriges Thema - Nächstes Thema

bismosa

Hallo,

ich konnte leider nichts dazu finden.
Hintergrund ist, dass meine Heizkörper nur selten die IST-Temperatur liefern und ich bei einem älteren Reading die Werte in FTUI gerne durchgestrichen darstellen möchte.
Daher probiere ich gerade mit class="timestamp" rum. Aber so richtig klappt es nicht.

data-substitution="toDate().ago('m')"

Liefert mir die Minuten. Aber bis max. 60. Danach ist schluss bzw. wieder 0. Also bleibt mir nur
data-substitution="toDate().ago('hm')"
Dann werden die Stunden direkt vor die Minuten gesetzt. Aber nach einem Tag (Ich hoffe nicht, das dieser Fall eintritt...aber wer weiß) fängt es wieder bei "0" an.


Die nächste Herausforderung ist dann das verstecken:

<div
data-type="label"
class="timestamp"
data-refresh="5" 
data-substitution="toDate().ago('m')"
data-device="Max_WT_Wohnzimmer"
data-hide-on="0|1"
data-hide-off="(?!.*0|1).*"
data-get="temperature" ><div>a</div>
</div>


Das ist nur zum testen. Eigentlich müsste ich die Reihe bis 30 fortführen.
Wenn nun 2 Minuten vergangen sind, wird der Wert trotzdem nicht angezeigt. Geht das Filtern vielleicht gar nicht mit toDate().ago() ?

Oder ich mache es mal wieder viel zu kompliziert  :) Gibt doch bestimmt eine einfache Möglichkeit?

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

bismosa

Ich glaube es ist schon gelöst...

Ich habe jetzt ein DOIF erzeugt:

([+300]) {
my @Regler = devspec2array("TYPE=MAX");
foreach my $Device (@Regler) {
##Log 1, "Device: $Device";
my $Alter=ReadingsAge($Device,"temperature","nix");
if ($Alter eq "nix"){
##Log 1, "Überspringen";
next;
}
my $IstStatus=ReadingsVal($Device,"Temp_isOld",3);
##Log 1, "IstStatus $IstStatus";
if ($Alter > 30*60){
##Log 1, "Zu alt";
if ($IstStatus ne 1){
fhem("setreading $Device Temp_isOld 1");
##Log 1, "1";
}
} else {
##Log 1, "Neuer";
if ($IstStatus ne 0){
fhem("setreading $Device Temp_isOld 0");
##Log 1, "0";
}
}
}
}


FTUI

            <!--IST-Temperatur-->
            <td style="padding-top: 0px; padding-bottom:0px; padding-left: 3px;">
                <s><div class="big" data-type="label" data-device="Max_HT_Kueche" data-hide="Temp_isOld" data-hide-on="0" data-hide-off="1" data-get="temperature" data-unit="°C"  data-limits='[0,16,20,23]' data-colors='["blue","#b877f9","#ff5151","#ff0000"]'></div></s>
                <div class="big" data-type="label" data-device="Max_HT_Kueche" data-hide="Temp_isOld" data-hide-on="1" data-hide-off="0" data-get="temperature" data-unit="°C"  data-limits='[0,16,20,23]' data-colors='["blue","#b877f9","#ff5151","#ff0000"]'></div>
            </td>

Und erhalte somit ein Reading ob eine Anzeige stattfinden soll (bzw, durchgestrichen sein soll)

Es kann doch auch einfach sein  :)

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...