2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-30 12:07:09 +00:00

91_notify: readLog attribute (Forum #48523)

git-svn-id: https://svn.fhem.de/fhem/trunk@10694 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2016-02-01 06:43:00 +00:00
parent ec2e1df37a
commit af9b51dc54
2 changed files with 60 additions and 18 deletions

View File

@ -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: 91_notify: add readLog attribute
- feature: 98_ping: Add attribute for minimum fails before reporting
(minFailCount)
- bugfix: PRESENCE: fix log warning "use of uninitialized value ..." when

View File

@ -15,7 +15,8 @@ notify_Initialize($)
$hash->{DefFn} = "notify_Define";
$hash->{NotifyFn} = "notify_Exec";
$hash->{AttrFn} = "notify_Attr";
$hash->{AttrList} = "disable:0,1 disabledForIntervals forwardReturnValue:0,1 showtime:0,1 addStateEvent:0,1";
$hash->{AttrList} ="disable:1,0 disabledForIntervals forwardReturnValue:1,0 ".
"readLog:1,0 showtime:1,0 addStateEvent:1,0";
$hash->{SetFn} = "notify_Set";
$hash->{StateFn} = "notify_State";
$hash->{FW_detailFn} = "notify_fhemwebFn";
@ -107,6 +108,22 @@ notify_Attr(@)
{
my @a = @_;
my $do = 0;
my $hash = $defs{$a[1]};
if($a[0] eq "set" && $a[2] eq "readLog") {
if(!defined($a[3]) || $a[3]) {
$logInform{$a[1]} = sub($$){
my ($me, $msg) = @_;
return if(defined($hash->{CHANGED}));
$hash->{CHANGED}[0] = $msg;
notify_Exec($hash, $hash);
delete($hash->{CHANGED});
}
} else {
delete $logInform{$a[1]};
}
return;
}
if($a[0] eq "set" && $a[2] eq "disable") {
$do = (!defined($a[3]) || $a[3]) ? 1 : 2;
@ -114,7 +131,7 @@ notify_Attr(@)
$do = 2 if($a[0] eq "del" && (!$a[2] || $a[2] eq "disable"));
return if(!$do);
readingsSingleUpdate($defs{$a[1]}, "state", $do==1 ? "disabled":"active", 1);
readingsSingleUpdate($hash, "state", $do==1 ? "disabled":"active", 1);
return undef;
}
@ -384,14 +401,6 @@ notify_fhemwebFn($$$$)
<li><a href="#disable">disable</a></li>
<li><a href="#disabledForIntervals">disabledForIntervals</a></li>
<a name="forwardReturnValue"></a>
<li>forwardReturnValue<br>
Forward the return value of the executed command to the caller,
default is disabled (0). If enabled (1), then e.g. a set command which
triggers this notify will also return this value. This can cause e.g
FHEMWEB to display this value, when clicking "on" or "off", which is
often not intended.</li>
<a name="addStateEvent"></a>
<li>addStateEvent<br>
The event associated with the state Reading is special, as the "state: "
@ -406,6 +415,26 @@ notify_fhemwebFn($$$$)
Note 2: this attribute will only work for events generated by devices
supporting the <a href="#readingFnAttributes">readingFnAttributes</a>.
</li>
<a name="forwardReturnValue"></a>
<li>forwardReturnValue<br>
Forward the return value of the executed command to the caller,
default is disabled (0). If enabled (1), then e.g. a set command which
triggers this notify will also return this value. This can cause e.g
FHEMWEB to display this value, when clicking "on" or "off", which is
often not intended.</li>
<a name="readLog"></a>
<li>readLog<br>
Execute the notify for messages appearing in the FHEM Log. The device
in this case is set to the notify itself, e.g. checking for the startup
message looks like:
<ul><code>
define n notify n:.*Server.started.* { Log 1, "Really" }<br>
attr n readLog
</code></ul>
</li>
</ul>
<br>
@ -576,12 +605,7 @@ notify_fhemwebFn($$$$)
<b>Attribute</b>
<ul>
<li><a href="#disable">disable</a></li>
<a name="forwardReturnValue"></a>
<li>forwardReturnValue<br>
R&uuml;ckgabe der Werte eines ausgef&uuml;hrten Kommandos an den
Aufrufer. Die Voreinstellung ist 0 (ausgeschaltet), um weniger
Meldungen im Log zu haben.
</li>
<li><a href="#disabledForIntervals">disabledForIntervals</a></li>
<a name="addStateEvent"></a>
<li>addStateEvent<br>
@ -600,10 +624,27 @@ notify_fhemwebFn($$$$)
<li>dieses Attribut zeigt nur f&uuml;r solche Ger&auml;te-Events eine
Wirkung, die <a href="#readingFnAttributes">readingFnAttributes</a>
unterst&uuml;tzen.</li>
</ul>
</li>
<a name="forwardReturnValue"></a>
<li>forwardReturnValue<br>
R&uuml;ckgabe der Werte eines ausgef&uuml;hrten Kommandos an den
Aufrufer. Die Voreinstellung ist 0 (ausgeschaltet), um weniger
Meldungen im Log zu haben.
</li>
<a name="readLog"></a>
<li>readLog<br>
Das notify wird f&uuml;r Meldungen, die im FHEM-Log erscheinen,
ausgegef&uuml;hrt. Das "Event-Generierende-Ger&auml;t" wird auf dem
notify selbst gesetzt. Z.Bsp. kann man mit folgendem notify auf die
Startup Meldung reagieren:
<ul><code>
define n notify n:.*Server.started.* { Log 1, "Wirklich" }<br>
attr n readLog
</code></ul>
</li>
</ul>
<br>