98_Heating_Control.pm, 98_WeekdayTimer.pm : bug in computing switchingtimes repaired

git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@7061 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
dietmar63 2014-11-24 22:27:02 +00:00
parent c077d09c6f
commit e74b44de53

View File

@ -203,7 +203,7 @@ sub Heating_Control_ParseSwitchingProfile($$$) {
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my $language = $hash->{LANGUAGE}; my $language = $hash->{LANGUAGE};
my %dayNumber=(); my %dayNumber=();
my $daysRegExp = "("; my $daysRegExp = "(";
for(my $idx=0; $idx<7; $idx++) { for(my $idx=0; $idx<7; $idx++) {
@ -270,9 +270,11 @@ sub Heating_Control_ParseSwitchingProfile($$$) {
} }
@days = sort(SortNumber keys %hdays); @days = sort(SortNumber keys %hdays);
my $TIME_AS_PERL = 0;
if($time =~ m/^\{.*\}$/g) { if($time =~ m/^\{.*\}$/g) {
$hash->{TIME_AS_PERL} = 1; $TIME_AS_PERL = 1;
$hash->{TIME_AS_PERL} |= 1;
} }
my $now = time(); my $now = time();
@ -281,7 +283,7 @@ sub Heating_Control_ParseSwitchingProfile($$$) {
for (my $d=0; $d<@days; $d++) { for (my $d=0; $d<@days; $d++) {
# Zeitangabe verarbeiten. # Zeitangabe verarbeiten.
if ($hash->{TIME_AS_PERL}) { # Perlausdruck {*} if ($TIME_AS_PERL) { # Perlausdruck {*}
my $date = $now+($d-$wday)*86400; my $date = $now+($d-$wday)*86400;
$timeString = '{ my $date='."$date;" .$time."}"; $timeString = '{ my $date='."$date;" .$time."}";
$timeString = eval( $timeString ); # must deliver HH:MM[:SS] $timeString = eval( $timeString ); # must deliver HH:MM[:SS]
@ -289,7 +291,7 @@ sub Heating_Control_ParseSwitchingProfile($$$) {
} else { } else {
$timeString = $time; $timeString = $time;
} }
if ($timeString =~ m/^[0-2][0-9]:[0-5][0-9]$/g) { # HH:MM if ($timeString =~ m/^[0-2][0-9]:[0-5][0-9]$/g) { # HH:MM
$timeString .= ":00"; # HH:MM:SS erzeugen $timeString .= ":00"; # HH:MM:SS erzeugen
} elsif ($timeString =~ m/^[0-2][0-9](:[0-5][0-9]){2,2}$/g) { # HH:MM:SS } elsif ($timeString =~ m/^[0-2][0-9](:[0-5][0-9]){2,2}$/g) { # HH:MM:SS