Hi zusammen,
bin den halben Tag dabei die Sekundenausgabe von ReadingsAge in etwas lesbares umzuwandeln ohne dabei x Variablen nutzen zu müssen.
Es geht mir vom Prinzip her darum:
Trockner läuft an und initiiert ein paar Dinge...(msg ich fange an usw.)
Trockner ist fertig und initiiert wieder ein paar Dinge...(msg ich bin fertig usw.)
Nun soll er mir am ende aber auch sagen wie lange er brauchte. Dafür wollte ich ReadingsAge nutzen.
Die Situation:
TP-Link HS110 Funkstecker
Dieser weiß aufgrund der Spannung wann er anläuft und wann er aufhört.
define n_s_trockner_start notify s_trockner:power:.* {\
if (ReadingsNum("s_trockner", "power", 0) > 0 && ReadingsVal("s_trockner", "running", "off") eq "off") {\
fhem("setreading s_trockner running on");;\
fhem("set p.nachrichten message | ".strftime("%H:%M", localtime)." Uhr: Der Trockner startet");;\
}\
if (ReadingsNum("s_trockner", "power", 0) < 230 && ReadingsVal("s_trockner", "running", "off") eq "on") {\
fhem("setreading s_trockner running off");;\
fhem("set p.nachrichten message Verbrauch: ".ReadingsVal("s_trockner","trocknungsgang","")." Watt. Zeit: | ".strftime("%H:%M", localtime)." Uhr: Der Trockner ist fertig");;\
}\
}
# Stromverbrauch berechenn
attr s_trockner userReadings total_temp:running.*on.* {ReadingsVal("s_trockner","total",0)},
attr s_trockner userReadings trocknungsgang:running.*off.* {ReadingsVal("s_trockner","total",0)-ReadingsVal("s_trockner","total_temp",0)}
# Zeit berechnen
???
Bessere Ideen und aber auch Anregungen, nehme ich gerne an! Ich komme mit ReadingsAge leider so nicht weiter. Kann man das ggf. irgendwie verschachteln?
Ich weiß, dass folgende macht keinen Sinn aber damit man besser versteht in wie fern ich das meine:
{strftime("%H:%M", localtime(ReadingsAge('s_trockner','total_temp',0)))}
DANKE!
EDIT 13.04.2018 - 22:03:
LÖSUNGEN
Um es allen Lesern einfacher zu machen, anbei die Ergebnisse...
Alle Lösungen bieten die Möglichkeit einfach und unkompliziert eine Zeitspanne zu bestimmen. Dies bezieht sich auf ein Reading welches gestartet wurde und beendet wurde.
Somit ist es in meinem Fall, einfach möglich, heraus zu finden wann mein Trockner startete und wann er fertig war. Dies wird mir per Push auf mein Handy gesendet und
somit weiß ich wie lang er brauchte. Ob man es braucht? Es ist schön es zu haben.
{(split(' ', gmtime(ReadingsAge('s_trockner','running',0))))[3]}
- Von @betateilchen (Einschränkung nicht mehr als 24 Stunden. @betateilchen hat noch weitere Möglichkeiten hier aufgezählt. Diese könnt ihr auf Seite zwei nachlesen.)
{strftime("%H:%M", gmtime(ReadingsAge('s_trockner','running',0)))}
- Von @betateilchen, angepasst auf strftime Gleiches gillt auch für die Lösung. Hier wird die Zeit nicht durch split angepasst. Somit (soweit mir bekannt) kann das Zeitformat angepasst werden. Split teilt mit dem Trenner der in den ' ' angegeben wird.
sub sec2time($) {
my ($sec) = @_;
# return human readable format
my $hours = ( abs($sec) < 3600 ? 0 : int( abs($sec) / 3600 ) );
$sec -= ( $hours == 0 ? 0 : ( $hours * 3600 ) );
my $minutes = ( abs($sec) < 60 ? 0 : int( abs($sec) / 60 ) );
my $seconds = abs($sec) % 60;
$hours = "0" . $hours if ( $hours < 10 );
$minutes = "0" . $minutes if ( $minutes < 10 );
$seconds = "0" . $seconds if ( $seconds < 10 );
return "$hours:$minutes:$seconds";
}
Von @CoolTux Mir sind keine Einschränkungen bekannt. (Bin aber auch noch neu und ggf. kann das jemand genau benennen.)
{strftime("%H:%M", localtime(ReadingsAge('s_trockner','running',0)-3600))}
# Mit oder ohne Klammern -> Egal
{strftime("%H:%M", localtime ReadingsAge('s_trockner','running',0)-3600)}
Von @Beta-User und (behaupte ich mal) 87insane
Ansonsten gibt es noch einen lesenswerten Artikel hier: https://wiki.fhem.de/wiki/Zeitangaben,_rechnen_mit den @nils_ nochmal verlinkt hat.
Dake an alle!
Kannst du mit dem hier was anfangen?
https://forum.fhem.de/index.php/topic,57519.msg489463.html#msg489463
Mußt du halt ggf. umbauen, soweit ich das verstehe, braucht das sprintf als $s eine Sekundenangabe...
Schau mal in die Moduldatei 98_uptime.pm dort habe ich genau so eine Umrechnung einer Sekundendifferenz eingebaut.
Danke euch beiden schon mal!
Was ich nach wie vor nicht verstehe, warum muss ich das errechnen und nicht nur anzeigen lassen in einem anderen Format?
So wie ich das verstehe ist das ein Unix/Industrie Standard Zeit Format. Dieses wird in Sekunden ausgegeben. Gibt es tatsächlich kein Modul oder eine andere Vorgehensweise für mein Problem?
Oben sagte ich ja das ich am besten keine variable verwenden mag. Gab es früher nicht mal so was wie mktime (unix) oder so?
An sich geht es mir ja nur darum, dass der Trockner mir bei fertigstellung sagt:
Ich bin fertig und habe xx:xx gebraucht.
Gesendet von meinem LG-H850 mit Tapatalk
Es gibt natürlich perl Module für sowas, aber wenn man das in wenigen Zeilen perl auch selbst errechnen kann, muss man nicht erst noch Installationsarbeiten auf Betriebssystemebene vornehmen.
Ausserdem
- in den Moduldateien wird auch nix anderes gemacht, als die Sekunden durch größere Einheiten zu dividieren
- die 99_myUtils.pm ist auch nur eine perl Moduldatei
Hier die fertige Lösung für die 99_myUtils.pm
sub secs2human($){
my ($diff) = @_;
my ($d,$h,$m,$ret);
($d,$diff) = _s2h_Div($diff,86400);
($h,$diff) = _s2h_Div($diff,3600);
($m,$diff) = _s2h_Div($diff,60);
$ret = "";
$ret .= "$d days, " if($d > 1);
$ret .= "1 day, " if($d == 1);
$ret .= sprintf("%02s:%02s:%02s", $h, $m, $diff);
return $ret;
}
sub _s2h_Div($$) {
my ($p1,$p2) = @_;
return (int($p1/$p2), $p1 % $p2);
}
Beide Funktionen in die 99_myUtils.pm packen und dann das Ergebnis mit
secs2human(123456)
abrufen:
1 day, 10:17:36
Ungetestet
($Stunden, $Minuten, $Sekunden)=(int($Sekunden/3600), int(($Sekunden % 3600) / 60), $Sekunden % 60);
Das ist funktional die gleiche Kettendivision wie in meinem Beispiel, nur dass mein Beispiel auch noch Tag(e) zurückliefert.
Sofern die Waschmaschine denn Tage benötigt ;D
Ja, und man sollte bedenken, dass bei dieser Berechnung eventuell auftretende Schaltsekunden auch nicht berücksichtigt werden.
Aber hier noch eine Lösung mit perl Bordmitteln:
use strict;
use warnings;
use Time::Piece;
use Time::Seconds qw/ ONE_DAY /;
my $start = localtime;
my $end = $start + int(355/113 * ONE_DAY);
my $duration = ($end - $start)->pretty;
print "Total Execution time: $duration\n";
liefert:Total Execution time: 3 days, 3 hours, 23 minutes, 53 seconds
Die meisten Variablen darin dienen nur zur Erzeugung der Beispieldaten.
Hey und danke!
Werde es morgen mal testen.
An sich kann ich wohl einfach nicht nachvollziehen das nur wenige Leute solche Fälle haben. Oder aber sie nehmen einen anderen weg. Sonst würden ja mehr auch die Umrechnung haben wollen. Und das ist meist das schöne in fhem-> es gibt ein Modul.
Die Ausgabe von readingsage sollte variabler sein. Vom Prinzip her ist ja alles da. Ich höre mal auf zu meckern, immerhin bin ich neu hier.
Aber mal am Rande: die sehr schnellen antworten und die gute Hilfe hier, ist echt gigantisch. Nicht mal bei XDA zb ist das derart gut. Top an alle!!
Gesendet von meinem LG-H850 mit Tapatalk
Hey zusammen,
ich versuche es nochmal anders rum....
Wenn ich nun ein Reading nehme. Dieses wird geschrieben zu Event beginn. Sieht man auch oben im Quelltext. Nun gehe ich hin und lese nicht das alter in Sekunden aus sondern den Timestamp.
Dies sollte ausgelöst werden durch den ENDE Event. Nun nehme ich die lokale Zeit und ziehe dies von der Zeit die zum Ursprung des Events drin war ab. Ich habe zwar einen Timestamp der auch im englischen Format ist (FHEM üblich) aber das sollte sich ja umwandeln lassen...
total_temp: 2018-04-12 13:02:37
localtime: Thu Apr 12 22:11:19 2018
bestimmt gibt es bessere time Variablen aber die kann ich ja ggf noch googlen. Es gibt mit Sicherheit auch eine FHEM Variable die mir die Zeit wie in den LOGs anzeigt. Diese müsste man ja nur abziehen voneinander und am ende hätte ich das gewünschte Ergebnis ohne um zu rechnen, oder?
Guten Morgen zusammen,
scheint wohl auch nicht so recht zu klappen...
An sich würde ich wie folgt vorgehen wollen:
localtime: {strftime("%H:%M:%S",localtime)}
Timestamp: {(split(' ',ReadingsTimestamp("s_trockner","running",0)))[1]}
So hätte ich als Ausgabe einen identischen Wert. Zumindest was das Format angeht (HH:MM:SS).
Nun habe ich gedacht (ich dummerchen), ich könne wie in Excel einfach die Zeiten voneinander abziehen.
Hat da jemand ein Modul im Kops oder so, was dies ermöglicht? Auch hier wieder, am besten eine Zeile am Ende und keine Variablen und hin und her Wandlung....
Spannend ist was daraus wird ;)
Danke und bis später :)
also ich habe den Thread jetzt 5 mal gelesen, und ich verstehe dein Problem überhaupt nicht....
was ist an ReadingsAge "falsch" ??
hast du die Lösungen von betateilchen / CoolTux gesehen, gelesen, verstanden, ausprobiert??
Hey,
verstanden, ja - getestet, ja....
Was mich stört ist das man etwas programmieren muss. Für die Umwandlung von Zeit/Datum in ein UNIX Format gibt es einfache Befehle ohne es umrechnen zu müssen.
Das gleiche würde ich einfach nur gern umgekehrt machen wollen. Ich bin nun den zweiten Tag am googlen und finde nicht das richtige.
ReadingAge bringt nur Sekunden. Das ist unschön. Die Umrechnungen von den beiden Kollegen sind funktional aber nicht das gewünschte Resultat.
Zwei Wege hatte ich mir ausgedacht.
Weg 1: Über ReadingsAge (Siehe oben) - Ergebnis: Mit Sekunden kann man nicht ohne zusätzlich Berechnung auf Std:Min kommen.
Weg 2: Über den Timestamp (Siehe oben) - Ergebnis: Die beiden Timestaps kann ich aktuell nicht korrekt subtrahieren.
Weitere Wege würde ich gerne in Erfahrung bringen. Hinzu geht es mit den angedachten Wegen ja doch..
Zitat von: 87insane am 13 April 2018, 10:30:33
Was mich stört ist das man etwas programmieren muss.
willkommen bei fhem :D
Zitat von: 87insane am 13 April 2018, 10:30:33
ReadingAge bringt nur Sekunden. Das ist unschön. Die Umrechnungen von den beiden Kollegen sind funktional aber nicht das gewünschte Resultat.
was ist denn an dem Resultat falsch??
die Ausgabe des Textes?? den kannste dir ja auf deine Bedürfnisse anpassen.
https://www.perl.com/article/59/2014/1/10/Solve-almost-any-datetime-need-with-Time--Piece/
Lese diesen Artikel und versuche zu verstehen.
und vllt. auch noch hier:
https://wiki.fhem.de/wiki/Zeitangaben,_rechnen_mit
Zitat von: 87insane am 13 April 2018, 07:32:54
Nun habe ich gedacht (ich dummerchen), ich könne wie in Excel einfach die Zeiten voneinander abziehen.
Dir ist schon klar, dass Excel auch nur unterschiedliche "Ebenen" oder Betrachtungsweisen übereinander legt (also z.B. Wert und Formatierung intern gesondert verwaltet), und intern auch Datumsangaben vorrangig als was ansieht? Genau: Sekunden ;D .
Und was genau machst du, wenn du irgend etwas per "define" oder per "attr" festlegst? Genau: Du erteilst Programmanweisungen ;) , vulgo: du programmierst.
Besser, du lernst es eher mit einfachen Dingen (das hier ist einfach!) "from the scratch".
Zitat von: nils_ am 13 April 2018, 10:45:05
willkommen bei fhem :D
Daher: +1
just my2ct.
Gruß, Beta-User
Zitat von: nils_ am 13 April 2018, 10:45:05
was ist denn an dem Resultat falsch??
Es funktioniert nicht wie in Excel ;)
Zitat von: 87insane am 13 April 2018, 07:32:54
(ich dummerchen), ich könne wie in Excel einfach die Zeiten voneinander abziehen.
Leicht spöttisch - so so :-P
Ich habe nichts gegen programmieren. Ich habe eben etwas gegen Dinge neu erfinden, die bereits existieren.
Und da es in die eine Richtung geht, suche ich nun die andere Richtung.
Das Ergebnis ist unschön, da es nicht der Aufgabenstellung entspricht. Um es aber vorweg zu nehmen, es ist sehr sehr löblich
das sich alle hier so rein hängen! Das begeistert mich nach wie vor an der FHEM Community !!
Nur mal in's Blaue:
Das war dein Ausgangspunkt:
Zitat von: 87insane am 12 April 2018, 16:00:12
{strftime("%H:%M", localtime(ReadingsAge('s_trockner','total_temp',0)))}
Warum sollte dann eigentlich das hier nicht funktionieren?
{strftime("%H:%M", localtime - ReadingsAge('s_trockner','total_temp',0))}
Zumindest, soweit ich das verstanden habe, kann strftime() gut mit Sekunden rechnen. UU. muß das vorher in eine Variable, aber das sollte es auch schon gewesen sein...
Hey
so eine Lösung habe ich mir vorgestellt. Leider macht es aber keinen Sinn von der Zeit in Sekunden (wie alt ist das reading) die lokale Zeit ab zu ziehen.
Aber die Idee ist gut!
{strftime("%H:%M", localtime - ReadingsTimestamp("s_trockner","running",0))}
Wenn ich das nun mal so teste... Aktuelle Zeit - Reading Timestamp, kommt leider auch nichts richtiges rauß.
localtime ist 11:58
Zeitstempel ist von 11:36
Ergebnis: 00:26
Das Ergebnis ist auch immer gleich. Den Rechenweg muss ich erst mal auseinander nehmen. Vermutlich klappt es wegen der Formate nicht richtig.
Teste das doch dann mal mit ReadingsAge(), oder? Das liefert: Sekunden...
Meine Solar-Heizungsunterstützung setzt ein reading, ob solar geheizt wird oder nicht.
Wenn dieses auf off geht nehme ich mit readingsage die verstrichen Zeit in Sekunden.
(Da ich Monatswerte haben möchte, summiere ich.)
Da mir die Sekundenanzeihe auch nicht so gefällt formatiere ich, ähnlich wie hier beschrieben, um.
Sieht dann so aus: H.SZaehl 692403 8:00:20
(Summe Sekunden 8 Tage 0 Stunden 20 Minuten)
@jkriegl: Kannst du deinen Code mal senden?
@All: Will nicht zu voreilich sein aber ich habe da was am rennen, was ganz gut aussieht. Einzig warum ich am ende 1 Std abziehen muss ist mir nicht klar. Werde ich aber noch in kleineren Schritten testen.
{strftime("%H:%M", localtime(ReadingsAge('s_trockner','running',0)-3600))}
ReadingsAge: 11:36 Uhr
Aktuelle Zeit: 12:37 Uhr
Ergebnis: 01:01 Std
DANKE! Ich hoffe ich habe mich hier nicht verzettelt.
Spannend ist das Thema aber nach wie vor! Warum macht es jeder anders wenn es (ich hoffe mal) so auf Dauer läuft?
Irgendwie will mir das noch nicht so recht einleuchten, dass das so passen soll:
Zitat von: 87insane am 13 April 2018, 12:38:16
{strftime("%H:%M", localtime(ReadingsAge('s_trockner','running',0)-3600))}
So wie ich das verstanden habe, liefert "localtime" (ohne Klammern) die aktuelle Zeit in Sekunden und beachtet dabei die lokalen Gegebenheiten (Sommerzeit).
Danach hätte ich angenommen, dass
{strftime("%H:%M", localtime - ReadingsAge('s_trockner','running',0))}
jederzeit das richtige Ergebnis liefern sollte, der andere Code aber immer "etwas mehr als eine Stunde" (Sommerzeit) bzw. "etwas mehr als einen Sekundenbruchteil" (Winterzeit).
Werde das wohl mal auch selbst testen (auch wenn ich noch nicht weiß, wofür ich das in meiner Installation mal brauche, für interne Zwecke haben mir reine Sekundenangaben bisher genügt, damit kann man schön rechnen...).
Gruß, Beta-User
{strftime("%H:%M", localtime - ReadingsAge('s_trockner','running',0))}
liefert bei folgenden Zeiten..
Reading Alter: 180 Sekunden
localtime: 13:15 Uhr
Ergebnis: 00:56 Uhr
Das verstehe ich leider gar nicht! PS: Wenn ich es eine Minute später noch mal durchführe kommt 00:55 dabei rauß. Also immer eine Minute weniger.
Der Code an sich kommt mir aber unlogisch vor. Ich nehme die Zeit von jetzt und diese dann minus das Alter des Readings in Sekunden... Das Ergebnis müsste (in meinen Augen) so aussehen:
localtime: 13:15 Uhr - Reading Alter: 180 Sekunden = Ergebnis: 13:12
Wenn mein Code bzw. das Ergebnis aller hier funktioniert, ist es in meinen Augen auf jeden Fall besser, als das durch Variablen zu ersetzen.
Klar funktioniert der Code mit den Variablen auch und ist auch ne gute Sache. Aber warum Variablen belegen wenn dies nicht nötig ist?
Der Ansatz hier ist bei allen anders. Das ist auch gut so!
Edit: So wie ich localtime verstanden habe in meiner Konstellation liefert er einfach alles (Zeiten natürlich) was in den Klammern steht zurück im gewünschten Format (Umrechnung was sonst über die Variablen läuft.). In meinem Fall HH:MM. Natürlich aber in dem Zusammenspiel da oben mit strftime, welches ja das Format als solches bereit stellt.
localtime: http://perldoc.perl.org/functions/localtime.html (http://perldoc.perl.org/functions/localtime.html)
strftime: http://search.cpan.org/~dexter/POSIX-strftime-GNU-0.02/lib/POSIX/strftime/GNU.pm (http://search.cpan.org/~dexter/POSIX-strftime-GNU-0.02/lib/POSIX/strftime/GNU.pm)
Arghh...
Mach mal localtime und das "-" da weg ;) ...
Wir suchen doch nur nach der Ausgabe von ReadingsAge(). Mann ist der Wald dicht...
Liefert das gleiche wie meins oben...
Reading: 13:12
localtime: 13:42
Ergebnis: 1:29
Das noch minus 3600 und wir sind auf dem gleichem Ergebnis.
Einzig die Klammern habe ich mehr. Die werden aber wohl keine Probleme machen (Denke ich).
Bevor jemand der das hier später nachliest verwirrt ist...
RESULTAT - Die beiden Varinaten machen genau was ich will! Zeitumrechnung von Sekunden in Stunden / Minuten oder was man will. Und das OHNE um die Ecke programmieren zu müssen.
{strftime("%H:%M", localtime(ReadingsAge('s_trockner','running',0)-3600))}
{strftime("%H:%M", localtime ReadingsAge('s_trockner','running',0)-3600)}
PS: Mich würde interessieren was die Kollegen vom Anfang des Threads dazu sagen. Immerhin ist das kein schlechtes Ergebnis.
PPS: Und ein fettes Sorry das ich genau das zu beginn schon geschrieben habe. Mir ist nur die eine Stunde mehr nicht aufgefallen. Mega peinlich!
Danke an alle Helfer!
ZitatPS: Mich würde interessieren was die Kollegen vom Anfang des Threads dazu sagen. Immerhin ist das kein schlechtes Ergebnis.
Du bist nicht an einem Ergebnis interessiert, sondern Du suchst eine Sonderlocke, die _Du_ als gut/einfach/sinvoll empfindest.
Ich bin und war an einem Ergebnis interessiert, (möglichst) ohne variablen. Das hat ja auch geklappt. Das ich viel viel üben muss und auch testen, ist klar. Hab eure Lösungen für mein Verständnis ja auch durch probiert bis ich sie verstanden habe. Dazu kann man die Variante hier genau so variabel einsetzen wie eure.
Zudem habe ich (lange ist es her) beim programmieren gelernt, das kein Programmierer seinen Quelltext extra lang macht. Er muss verständlich sein, flexibel und so kurz wie möglich. Alle diese Anforderungen empfinde ich nicht als sonderlocke.
Viele Wege führen nach Rom. Da kann es doch nicht nur einen richtigen geben. Ich weiß nicht warum solche Dinge nicht mit etwas mehr lachen und Freude gefeiert werden. Wirkt fast als hätte ich dich persönlich beleidigt.
Schade ! Wenn dem so sein sollte, wollte ich das sicher nicht.
Gesendet von meinem LG-H850 mit Tapatalk
Zitat von: Beta-User am 13 April 2018, 13:33:46
Mach mal localtime und das "-" da weg ;) ...
Das war so gemeint:
{strftime("%H:%M", ReadingsAge('s_trockner','running',0))}
Bei mir kommt da ein Syntaxfehler.
Ganz ohne Variable:
{(split(' ', gmtime(7123)))[3]}
Liefert völlig korrekt: 01:58:43
Antatt gmtime(7123) kann man natürlich auch das gewünschte ReadingsAge() einbauen.
Noch weniger Variablen geht nicht, ich hoffe, das Thema ist damit durch.
sub sec2time($) {
my ($sec) = @_;
# return human readable format
my $hours = ( abs($sec) < 3600 ? 0 : int( abs($sec) / 3600 ) );
$sec -= ( $hours == 0 ? 0 : ( $hours * 3600 ) );
my $minutes = ( abs($sec) < 60 ? 0 : int( abs($sec) / 60 ) );
my $seconds = abs($sec) % 60;
$hours = "0" . $hours if ( $hours < 10 );
$minutes = "0" . $minutes if ( $minutes < 10 );
$seconds = "0" . $seconds if ( $seconds < 10 );
return "$hours:$minutes:$seconds";
}
boah, die Lösungen werden ja immer komplizierter...
Trotzdem finde ich, mein Vorschlag mit gmtime() ganz ohne Variablen hat den meisten "Charme", auch wenn er die Einschränkung besitzt, bei mehr als 24 Stunden nicht mehr zu funktionieren :)
Ich muss ganz ehrlich sagen -> DANKE! Mega Geil!
Das ist genau wonach ich suchte.
Ich hoffe über so was muss man nicht mehr diskutieren sondern findet verschiedene Lösungen. Freut mich das der Sache noch mehr Personen anteil genommen haben.
Zitat von: 87insane am 13 April 2018, 21:45:16
Ich hoffe über so was muss man nicht mehr diskutieren
man hätte auch jetzt nich so lange diskutieren müssen, wenn Du Dir einmal die "Mühe" gemacht hättest, google zu befragen und/oder Dir ein paar perl Grundlagen anzueignen
Zitat von: 87insane am 13 April 2018, 21:45:16
sondern findet verschiedene Lösungen
Was willst Du damit sagen? Immerhin warst doch Du derjenige, der mit "verschiedenen Lösungen" nicht zufriedenzustellen war. Wobei da durchaus universellere und bessere Lösungen dabei waren als der jetzt präferierte quick-and-dirty-Hack
Hier nochmal ein "One-Liner" für TAGE:STUNDEN:MINUTEN:SEKUNDEN
{sprintf "%02d:%02d:%02d:%02d", (gmtime(ReadingsAge('<device>','<reading>',0)))[7,2,1,0]}
Danke
Gesendet von meinem LM-G810 mit Tapatalk