Verbleibende Zeit Berechnen

Begonnen von ulli, 28 Dezember 2014, 23:55:20

Vorheriges Thema - Nächstes Thema

ulli

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!

Hans Franz

#1
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
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

ulli