diff --git a/FHEM/20_GUEST.pm b/FHEM/20_GUEST.pm index 493daf4c3..f6407713f 100644 --- a/FHEM/20_GUEST.pm +++ b/FHEM/20_GUEST.pm @@ -889,8 +889,8 @@ sub GUEST_DurationTimer($;$) { { $durPresence = $timestampNow - - RESIDENTStk_Datetime2Timestamp( - ReadingsVal( $name, "lastArrival", "-" ) ); + time_str2num( + ReadingsVal( $name, "lastArrival", "" ) ); } # absence timer @@ -899,8 +899,8 @@ sub GUEST_DurationTimer($;$) { { $durAbsence = $timestampNow - - RESIDENTStk_Datetime2Timestamp( - ReadingsVal( $name, "lastDeparture", "-" ) ); + time_str2num( + ReadingsVal( $name, "lastDeparture", "" ) ); } # sleep timer @@ -909,8 +909,8 @@ sub GUEST_DurationTimer($;$) { { $durSleep = $timestampNow - - RESIDENTStk_Datetime2Timestamp( - ReadingsVal( $name, "lastSleep", "-" ) ); + time_str2num( + ReadingsVal( $name, "lastSleep", "" ) ); } my $durPresence_hr = diff --git a/FHEM/20_ROOMMATE.pm b/FHEM/20_ROOMMATE.pm index f7c03c7e4..90f100364 100644 --- a/FHEM/20_ROOMMATE.pm +++ b/FHEM/20_ROOMMATE.pm @@ -870,8 +870,8 @@ sub ROOMMATE_DurationTimer($;$) { { $durPresence = $timestampNow - - RESIDENTStk_Datetime2Timestamp( - ReadingsVal( $name, "lastArrival", "-" ) ); + time_str2num( + ReadingsVal( $name, "lastArrival", "" ) ); } # absence timer @@ -880,8 +880,8 @@ sub ROOMMATE_DurationTimer($;$) { { $durAbsence = $timestampNow - - RESIDENTStk_Datetime2Timestamp( - ReadingsVal( $name, "lastDeparture", "-" ) ); + time_str2num( + ReadingsVal( $name, "lastDeparture", "" ) ); } # sleep timer @@ -890,8 +890,8 @@ sub ROOMMATE_DurationTimer($;$) { { $durSleep = $timestampNow - - RESIDENTStk_Datetime2Timestamp( - ReadingsVal( $name, "lastSleep", "-" ) ); + time_str2num( + ReadingsVal( $name, "lastSleep", "" ) ); } my $durPresence_hr = diff --git a/FHEM/RESIDENTStk.pm b/FHEM/RESIDENTStk.pm index afdab4eb8..e4ba4b503 100644 --- a/FHEM/RESIDENTStk.pm +++ b/FHEM/RESIDENTStk.pm @@ -977,10 +977,11 @@ sub RESIDENTStk_wakeupRun($;$) { $mday = "0" . $mday if ( $mday < 10 ); $hour = "0" . $hour if ( $hour < 10 ); $min = "0" . $min if ( $min < 10 ); + $sec = "0" . $sec if ( $sec < 10 ); my $nowRun = $hour . ":" . $min; my $nowRunSec = - RESIDENTStk_Datetime2Timestamp( $year . "-" + time_str2num( $year . "-" . $mon . "-" . $mday . " " . $hour . ":" @@ -998,10 +999,10 @@ sub RESIDENTStk_wakeupRun($;$) { # do not run if wakeupWaitPeriod expiration was not reached yet my $expLastRun = - RESIDENTStk_Datetime2Timestamp($lastRunTimestamp) - 1 + + time_str2num($lastRunTimestamp) - 1 + $wakeupOffset * 60 + $wakeupWaitPeriod * 60; - my $expNextRun = RESIDENTStk_Datetime2Timestamp($nextRunTimestamp) - 1 + + my $expNextRun = time_str2num($nextRunTimestamp) - 1 + $wakeupWaitPeriod * 60; if ( $expLastRun > $nowRunSec && $expNextRun < time() ) @@ -1578,8 +1579,8 @@ sub RESIDENTStk_TimeDiff ($$;$) { $datetimeOld = "1970-01-01 00:00:00"; } - my $timestampNow = RESIDENTStk_Datetime2Timestamp($datetimeNow); - my $timestampOld = RESIDENTStk_Datetime2Timestamp($datetimeOld); + my $timestampNow = time_str2num($datetimeNow); + my $timestampOld = time_str2num($datetimeOld); my $timeDiff = $timestampNow - $timestampOld; # return seconds @@ -1594,34 +1595,6 @@ sub RESIDENTStk_TimeDiff ($$;$) { return RESIDENTStk_sec2time( int( $timeDiff + 0.5 ) ); } -sub RESIDENTStk_Datetime2Timestamp($) { - my ($datetime) = @_; - my $timestamp = 0; - - if ( $datetime =~ -/.*([0-9]{4})-([0-9]{1}|[0-9]{2})-([0-9]{1}|[0-9]{2}).([0-9]{1}|[0-9]{2}):([0-9]{1}|[0-9]{2}):([0-9]{1}|[0-9]{2}).*/ - ) - { - my ( $date, $time, $y, $m, $d, $hour, $min, $sec ); - - $sec = $6; - $min = $5; - $hour = $4; - $d = $3; - $m = $2; - $y = $1; - - $m -= 01 if ( $m > 0 ); - $timestamp = timelocal( $sec, $min, $hour, $d, $m, $y ); - } - else { - Log3 undef, 5, - "RESIDENTStk: timestamp '$datetime' has wrong format."; - } - - return $timestamp; -} - sub RESIDENTStk_sec2time($) { my ($sec) = @_;