diff --git a/CHANGED b/CHANGED index be7c5fc60..209bc7c50 100644 --- a/CHANGED +++ b/CHANGED @@ -1,5 +1,6 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - feature: 98_WeekdayTimer: Allow flexible state values when delayed. - feature: 89_FULLY: Several new commands. Now using JSON. - change: 59_Weather: add forcast attributs to english commandref - bugfix: TimeSeries: fix for calculation of standard deviation diff --git a/FHEM/98_WeekdayTimer.pm b/FHEM/98_WeekdayTimer.pm index 644720217..dc80628c5 100644 --- a/FHEM/98_WeekdayTimer.pm +++ b/FHEM/98_WeekdayTimer.pm @@ -950,8 +950,9 @@ sub WeekdayTimer_Update { #Log3 $hash, 3, "[$name] $idx ". $time . " " . $newParam . " " . join("",@$tage); # Fenserkontakte abfragen - wenn einer im Status closed, dann Schaltung um 60 Sekunden verzögern - if (WeekdayTimer_FensterOffen($hash, $newParam, $idx)) { - readingsSingleUpdate ($hash, "state", "open window", 1); + my $winopen = WeekdayTimer_FensterOffen($hash, $newParam, $idx); + if ($winopen) { + readingsSingleUpdate ($hash, "state", ($winopen == 1 or lc($winopen) eq "true") ? "open window" : $winopen, 1); return; } @@ -1095,7 +1096,7 @@ sub WeekdayTimer_FensterOffen { WeekdayTimer_RemoveInternalTimer("$time", $hash); WeekdayTimer_InternalTimer ("$time", $nextRetry, "$hash->{TYPE}_Update", $hash, 0); $hash->{VERZOEGRUNG} = 1; - return 1; + return $verzoegerteAusfuehrung; } my %contacts = ( "CUL_FHTTK" => { "READING" => "Window", "STATUS" => "(Open)", "MODEL" => "r" }, @@ -1560,7 +1561,7 @@ sub WeekdayTimer_GetWeekprofileReadingTriplett { attr wd delayedExecutionCond isDelayed("$WEEKDAYTIMER","$TIME","$NAME","$EVENT") the parameter $WEEKDAYTIMER(timer name) $TIME $NAME(device name) $EVENT are replaced at runtime by the correct value. -

+

Note: If the function returns "1" or "true", state of the WeekdayTimer will be "open window", other return values will be used as values for state.
Example of a function:
     sub isDelayed($$$$) {