Hallo,
muss mal wiede ne "blöde" Frage stellen....
Ich möchte in einem userreadings eine Zeit von Stunden:Minuten in Sekunden umrechnen.
Der state von Ventil3Dauer ist z.B. 00:20 also 20 Minuten.
set Ventil3Dauer userReadings minuten {ReadingsVal("Ventil3Dauer", "state", 0)*60}
[/code]
so einfach geht es leider nicht ;-)
Jens
set Ventil3Dauer userReadings minuten { my($a,$b) = split(':', ReadingsVal('Ventil3Dauer', 'state', '0:0')); return ($a*60)+$b; }
Sollte dann das userReadings nicht besser "Sekunden" heißen!? ;)
Und wenn es eine Umrechnung von Stunde(n):Minute(n) in Sekunden sein soll, müsste es dann nicht $a*3600+$b*60 sein!?
Und es sollte auch $NAME statt 'Ventil3Dauer' gehen, dann könnte es an jedes solches Gerät "gehangen" werden...
Hier meine Variante (nicht so elegant ;) ) aber dafür von Stunde(n):Minute(n) in Sekunden:
userReadings Sekunden {
my @TimeParts=split(/:/,ReadingsVal($NAME,"state","00:00"));
my $Seconds=$TimeParts[0]*3600 + $TimeParts[1]*60;
return $Seconds;
}
Gruß, Joachim
warum Sekunden ? er schrieb doch
Zitat von: Jewe am 26 Mai 2019, 18:47:02
Der state von Ventil3Dauer ist z.B. 00:20 also 20 Minuten.
mit $NAME hast natürlich recht :)
Hallo Liebe Helfer,
Danke für die Hilfe. Ich habe es nun wie folgt umgesetzt und bin sehr zufrieden:
attr Ventil3Dauer userReadings sekunden { my($a,$b) = split(':', ReadingsVal($NAME, 'state', '0:0'));; return ($a*3600)+$b*60;; }
Und ich habe das Reading nun auch sekunden genannt ;) ;)
Jens