mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-03 16:56:54 +00:00
RESIDENTStk wakeuptimer: correct handling of holiday during wake-up runtime
git-svn-id: https://svn.fhem.de/fhem/trunk@14075 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
7bf01d185a
commit
0a717e4272
@ -1065,7 +1065,7 @@ sub RESIDENTStk_Notify($$) {
|
|||||||
my $devName = $dev->{NAME};
|
my $devName = $dev->{NAME};
|
||||||
my $devType = GetType($devName);
|
my $devType = GetType($devName);
|
||||||
|
|
||||||
# do not process notfies during module initialization
|
# do not process events during module initialization
|
||||||
return "" if ( $modules{$TYPE}{INIT} || $modules{$TYPE}{REREADCFG} );
|
return "" if ( $modules{$TYPE}{INIT} || $modules{$TYPE}{REREADCFG} );
|
||||||
|
|
||||||
if ( $devName eq "global" ) {
|
if ( $devName eq "global" ) {
|
||||||
@ -1183,7 +1183,7 @@ m/^((?:DELETE)?ATTR)\s+([A-Za-z\d._]+)\s+([A-Za-z\d_\.\-\/]+)(?:\s+(.*)\s*)?$/
|
|||||||
|
|
||||||
return "" if ( IsDisabled($name) or IsDisabled($devName) );
|
return "" if ( IsDisabled($name) or IsDisabled($devName) );
|
||||||
|
|
||||||
# process notifications from ROOMMATE or GUEST devices
|
# process events from ROOMMATE or GUEST devices
|
||||||
# only when they hit RESIDENTS devices
|
# only when they hit RESIDENTS devices
|
||||||
if ( $TYPE eq "RESIDENTS" && $devType =~ /^ROOMMATE|GUEST$/ ) {
|
if ( $TYPE eq "RESIDENTS" && $devType =~ /^ROOMMATE|GUEST$/ ) {
|
||||||
|
|
||||||
@ -1245,16 +1245,16 @@ m/^((?:DELETE)?ATTR)\s+([A-Za-z\d._]+)\s+([A-Za-z\d_\.\-\/]+)(?:\s+(.*)\s*)?$/
|
|||||||
# process wakeup devices
|
# process wakeup devices
|
||||||
if (@registeredWakeupdevs) {
|
if (@registeredWakeupdevs) {
|
||||||
|
|
||||||
# if this is a notification of a registered wakeup device
|
# if this is an event of a registered wakeup device
|
||||||
if ( grep { m/^$devName$/ } @registeredWakeupdevs ) {
|
if ( grep { m/^$devName$/ } @registeredWakeupdevs ) {
|
||||||
RESIDENTStk_wakeupSet( $devName, $event );
|
RESIDENTStk_wakeupSet( $devName, $event );
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
# process sub-child notifies: *_wakeupDevice
|
# process sub-child events: *_wakeupDevice
|
||||||
foreach my $wakeupDev (@registeredWakeupdevs) {
|
foreach my $wakeupDev (@registeredWakeupdevs) {
|
||||||
|
|
||||||
# if this is a notification of a registered sub dummy device
|
# if this is an event of a registered sub dummy device
|
||||||
# of one of our wakeup devices
|
# of one of our wakeup devices
|
||||||
if (
|
if (
|
||||||
AttrVal( $wakeupDev, "wakeupResetSwitcher", "" ) eq $devName
|
AttrVal( $wakeupDev, "wakeupResetSwitcher", "" ) eq $devName
|
||||||
@ -1646,14 +1646,14 @@ sub RESIDENTStk_wakeupSet($$) {
|
|||||||
$cmd =~ s/^state:\s*(.*)$/$1/;
|
$cmd =~ s/^state:\s*(.*)$/$1/;
|
||||||
return if ( $cmd =~ /^[A-Za-z]+:/ );
|
return if ( $cmd =~ /^[A-Za-z]+:/ );
|
||||||
|
|
||||||
# filter non-registered notifies
|
# filter non-registered events
|
||||||
if ( $cmd !~
|
if ( $cmd !~
|
||||||
m/^((?:next[rR]un)?\s*(off|OFF|([\+\-])?(([0-9]{2}):([0-9]{2})|([1-9]+[0-9]*)))?|trigger|start|stop|end|reset|auto|wakeupResetdays|wakeupDays|wakeupHolidays|wakeupEnforced|wakeupDefaultTime|wakeupOffset)$/i
|
m/^((?:next[rR]un)?\s*(off|OFF|([\+\-])?(([0-9]{2}):([0-9]{2})|([1-9]+[0-9]*)))?|trigger|start|stop|end|reset|auto|wakeupResetdays|wakeupDays|wakeupHolidays|wakeupEnforced|wakeupDefaultTime|wakeupOffset)$/i
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
Log3 $NAME, 6,
|
Log3 $NAME, 6,
|
||||||
"RESIDENTStk $NAME: "
|
"RESIDENTStk $NAME: "
|
||||||
. "received unspecified notify '$cmd' - nothing to do";
|
. "received unspecified event '$cmd' - nothing to do";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2775,7 +2775,8 @@ sub RESIDENTStk_wakeupRun($;$) {
|
|||||||
. "weekday restriction in use - not triggering wake-up program this time";
|
. "weekday restriction in use - not triggering wake-up program this time";
|
||||||
}
|
}
|
||||||
elsif (
|
elsif (
|
||||||
!$forceRun
|
!$forceRun
|
||||||
|
&& !$days{$today}
|
||||||
&& (
|
&& (
|
||||||
( $wakeupHolidays eq "andHoliday" && !$holidayToday )
|
( $wakeupHolidays eq "andHoliday" && !$holidayToday )
|
||||||
|| ( $wakeupHolidays eq "andNoHoliday"
|
|| ( $wakeupHolidays eq "andNoHoliday"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user