From f0fc3a73af1d77dfa5b9d729c2f23d7cdc46dbf0 Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Mon, 31 Aug 2015 18:46:10 +0000 Subject: [PATCH] 91_watchdog.pm: change STATE when disabled (Forum #40584) git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@9185 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/91_watchdog.pm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/fhem/FHEM/91_watchdog.pm b/fhem/FHEM/91_watchdog.pm index 4ea641242..f5690fec9 100755 --- a/fhem/FHEM/91_watchdog.pm +++ b/fhem/FHEM/91_watchdog.pm @@ -14,6 +14,7 @@ watchdog_Initialize($) $hash->{DefFn} = "watchdog_Define"; $hash->{UndefFn} = "watchdog_Undef"; + $hash->{AttrFn} = "watchdog_Attr"; $hash->{NotifyFn} = "watchdog_Notify"; $hash->{AttrList} = "disable:0,1 disabledForIntervals execOnReactivate ". "regexp1WontReactivate:0,1 addStateEvent:0,1"; @@ -175,6 +176,23 @@ watchdog_Undef($$) return undef; } +sub +watchdog_Attr(@) +{ + my ($cmd, $name, $attrName, $attrVal) = @_; + my $do = 0; + + my $hash = $defs{$name}; + + if($cmd eq "set" && $attrName eq "disable") { + $do = (!defined($attrVal) || $attrVal) ? 1 : 2; + } + $do = 2 if($cmd eq "del" && (!$attrName || $attrName eq "disable")); + return if(!$do); + $hash->{STATE} = ($do == 1 ? "disabled" : "defined"); + return undef; +} + 1; =pod