Ich benötige kurz eure Unterstützung in der Berechnung der verbleibenden Zeit.
Das Modul Heating_Control besitzt ein Reading Namens "nextUpdate" und hat z.b. folgenden Wert "29.12.2014 06:30:00"
Wie kann ich nun die verbleibende Zeit zu dieses Reading in Std berechnen?
Vielen Dank im Voraus!
Hallo,
Ich habe mir dafür so etwas gebastelt:
sub time_till_update($){
my ($mydatetime) = ReadingsVal("@_","nextUpdate","");
my ($mydate,$mytime) = split(" ",$mydatetime);
my ($myday,$mymonth,$myyear) = split(/\./,$mydate);
my ($myhour,$myminute,$mysecond) = split(/:/,$mytime);
my $dt2 = DateTime->new(
year => $myyear,
month => $mymonth,
day => $myday,
hour => $myhour,
minute => $myminute,
second => $mysecond
);
my $dt1 = DateTime->now;
$dt1->set_time_zone( 'Europe/Berlin' );
my $duration = $dt1->subtract_datetime($dt2);
return $duration->hours().' Stunden '.$duration->minutes().' Minuten';
}
Aufruf mit:
{time_till_update(<device>)}
Evtl. geht es auch einfacher.
Gruß
Hans
Hat funktioniert. Spitze Danke!