Hauptmenü

time_str2num nutzen

Begonnen von HoTi, 15 Juni 2015, 15:26:17

Vorheriges Thema - Nächstes Thema

HoTi

Hallo zusammen,

ich lerne gerade etwas Perl und habe da eine Frage zu time_str2num.

In meinem Code möchte ich die Zeit in eine Variable schreiben und dann später von der aktuellen Zeit subtraieren.

Das bekomme ich aber leider nicht hin. Da steckt ein fehler mit den Variablen.

Hier mal mein bisheriger Code, da wo ich den Fehler vermute ist unterstrichen:

Zitatsub Rollo_Manuell($$$)
{
my ($name,$event,$device) = @_;
my $hash = {};
$hash->{NAME} = $defs{$name};
$hash->{DEVICE} = $defs {$device};
my $t_on;
my $aktpos = ReadingsVal($device,'Pos',0);
my $newpos;
my $dt;
my $einfahrzeit = ReadingsVal($device,'Einfahrzeit',24.7);

if($event =~m/(ein|on).*/)
{
$t_on = time_str2num(ReadingsTimestamp($name,'state',0));
Log(3,"t_on: $t_on");
}
if($event =~m/(aus|off).*/)
{
my $time = time();
#my $dt = $t_on - $time;
$dt = time() - $t_on;
#$time = 0;
#$t_on = 0;
$newpos = $aktpos - (100 * $dt / $einfahrzeit);
Log(3,"time: $time -> event: $event -> diff: $dt -> device: $device -> name: $name -> aktpos: $aktpos -> newpos: $newpos -> einfahrzeit: $einfahrzeit");
}


#$newpos = sprintf("%d",$newpos); # runden
#$newpos = 0 if($newpos < 0);
#$newpos = 100 if($newpos > 100);
#readingsSingleUpdate($name_hash,'Pos',$newpos,0);
#readingsSingleUpdate($name_hash,'state',"Pos $newpos",0);

}

Viele Grüße aus  Oberbayern
Tim (RettungsTim)