2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 06:39:11 +00:00

fhem.pl: suppressReading attribute (Forum #57841)

git-svn-id: https://svn.fhem.de/fhem/trunk@12191 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2016-09-21 19:02:22 +00:00
parent a54b9ae30c
commit 38fc67d229
4 changed files with 141 additions and 113 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.
- change: suppressReading attribute added for all devices (Forum #57841)
- bugfix: 88_HMCCU: Fixed CUxD device datapoint handling
- change: 10_IT: create events during readings update.
change logging

View File

@ -339,64 +339,16 @@ Device specific attributes are documented in the corresponding device section.
<ul>
<a name="verbose"></a>
<li>verbose<br>
Set the verbosity level. Possible values:
<ul>
<li>0 - server start/stop
<li>1 - error messages or unknown packets
<li>2 - major events/alarms.
<li>3 - commands sent out will be logged.
<li>4 - you'll see whats received by the different devices.
<li>5 - debugging.</li>
</ul>
The value for the <a href="#global">global</a> device is a default for
other devices without own verbose attribute set.
</li>
<a name="comment"></a>
<li>comment<br>
Add an arbitrary comment.
<a name="alias"></a>
<li>alias<br>
Used by FHEMWEB to display a device with another name e.g. when using
special characters/spaces not accepted by device definition.
</li><br>
<a name="room"></a>
<li>room<br>
Filter/group devices. Recognized by web-pgm2 and web-pgm3. A device
can appear in more than one room, in this case the rooms have to be
specified comma-separated.<br>
Devices in the room hidden will not appear in the web output, or set
the <a href="#hiddenroom"> FHEMWEB attribute to selectively disable
rooms for certain FHEMWEB instances.
</li>
<a name="genericDisplayType"></a>
<li>genericDisplayType<br>
used by some frontends (but not FHEMWEB) to offer a default image or
appropriate commands for this device. Currently the following values
are supported: switch,outlet,light,blind,speaker,thermostat
</li>
<a name="group"></a>
<li>group<br>
Group devices. Recognized by web-pgm2 (module <a href="#FHEMWEB">FHEMWEB</a>), it makes
devices in the same group appear in the same box).
This is used to further group
devices together. A device can appear in more than one group, in this
case the groups have to be specified comma-separated.<br>
If this attribute is not set then the device type is used as the
grouping attribute.
</li>
<a name="showtime"></a>
<li>showtime<br>
Used in the webfrontend pgm2 to show the time of last activity
instead of the state in the summary view. Useful e.g. for FS20 PIRI
devices.
</li>
<a name="comment"></a>
<li>comment<br>
Add an arbitrary comment.
</li><br>
<a name="eventMap"></a>
<li>eventMap<br>
@ -427,10 +379,64 @@ Device specific attributes are documented in the corresponding device section.
part with wildcards, the fw part must be filled with the exact same
keys to enable a correct display in the FHEMWEB set dropdown list in
the detail view.
</li><br>
<a name="genericDisplayType"></a>
<li>genericDisplayType<br>
used by some frontends (but not FHEMWEB) to offer a default image or
appropriate commands for this device. Currently the following values
are supported: switch,outlet,light,blind,speaker,thermostat
</li><br>
<a name="group"></a>
<li>group<br>
Group devices. Recognized by web-pgm2 (module <a
href="#FHEMWEB">FHEMWEB</a>), it makes
devices in the same group appear in the same box).
This is used to further group
devices together. A device can appear in more than one group, in this
case the groups have to be specified comma-separated.<br>
If this attribute is not set then the device type is used as the
grouping attribute.
</li><br>
<a name="room"></a>
<li>room<br>
Filter/group devices. Recognized by web-pgm2 and web-pgm3. A device
can appear in more than one room, in this case the rooms have to be
specified comma-separated.<br>
Devices in the room hidden will not appear in the web output, or set
the <a href="#hiddenroom"> FHEMWEB attribute to selectively disable
rooms for certain FHEMWEB instances.
</li><br>
<a name="suppressReading"></a>
<li>suppressReading<br>
Used to eliminate unwanted readings. The value is a regular expression,
with ^ and $ added. Only necessary in exceptional cases.
</li><br>
<a name="showtime"></a>
<li>showtime<br>
Used in the webfrontend pgm2 to show the time of last activity
instead of the state in the summary view. Useful e.g. for FS20 PIRI
devices.
</li><br>
<a name="verbose"></a>
<li>verbose<br>
Set the verbosity level. Possible values:
<ul>
<li>0 - server start/stop</li>
<li>1 - error messages or unknown packets</li>
<li>2 - major events/alarms.</li>
<li>3 - commands sent out will be logged.</li>
<li>4 - you'll see whats received by the different devices.</li>
<li>5 - debugging.</li>
</ul>
The value for the <a href="#global">global</a> device is a default for
other devices without own verbose attribute set.
</li></br>
</ul>
<a name="readingFnAttributes"></a>

View File

@ -338,66 +338,17 @@ Ger&auml;t dokumentiert.
<h4>Globale Attribute f&uuml;r alle Ger&auml;te</h4>
<ul>
<a name="verbose"></a>
<li>verbose<br>
Setzt den Schwellwert f&uuml;r die Logfile-Meldungen.
M&ouml;gliche Werte sind:
<ul>
<li>0 - Server start/stop
</li><li>1 - Fehlermeldungen oder unbekannte Pakete
</li><li>2 - bedeutende Ereigbisse/Alarme.
</li><li>3 - ausgesendete Kommandos werden gelogged.
</li><li>4 - von den einzelnen Ger&auml;ten empfangene Daten.
</li><li>5 - Fehlersuche.</li>
</ul>
Der f&uuml;r die <a href="#global">global</a> Instanz gesetzte Wert gilt
als Voreinstellung f&uuml;r die Instanzen, die dieses Attribut nicht
gesetzt haben.
</li>
<a name="alias"></a>
<li>alias<br>
Wird in FHEMWEB benutzt, um ein en anderen Namen f&uuml;r ein Ger&auml;t
anzuzeigen z.B. wenn Sonderzeichen/Leerzeichen nicht in der
Ger&auml;tedefinition verwendet werden k&ouml;nnen.
</li><br>
<a name="comment"></a>
<li>comment<br>
F&uuml;gt einen beliebigen Kommentar hinzu.
<a name="alias"></a>
</li><li>alias<br>
Wird in FHEMWEB benutzt, um ein en anderen Namen f&uuml;r ein Ger&auml;t
anzuzeigen z.B. wenn Sonderzeichen/Leerzeichen nicht in der
Ger&auml;tedefinition verwendet werden k&ouml;nnen.
<a name="room"></a>
</li><li>room<br>
Filtert/gruppiert Ger&auml;te.
Ein Ger&auml;t kann zu mehr als einem Raum zugeordnet werden. In diesem
Fall m&uuml;ssen die Raumzuordnungen durch Kommata getrennt
angegeben werden.<br>
Ger&auml;te, die dem Raum mit der Bezeichnung "hidden" zugeordnet
werden, erscheinen nicht auf der Webseite.
<a name="genericDisplayType"></a>
<li>genericDisplayType<br>
Wird von bestimmten Frontends (aber nicht FHEMWEB) verwendet, um
f&uuml;r das Ger&auml;t passende Voreinstellungen (Bild/Befehle/etc)
anzubieten. Z.Zt werden folgende Werte unterst&uuml;tzt:
switch,outlet,light,blind,speaker,thermostat
</li>
<a name="group"></a>
<li>group<br>
Ger&auml;tegruppen. FHEMWEB zeigt Ger&auml;te die in die gleiche Gruppe
geh&ouml;ren auch in einer gemeinsamen Box an. Ein Ger&auml;t kann zu
mehr als einer Gruppe geh&ouml;ren. In diesem Fall m&uuml;ssen die
entsprechenden Gruppen durch Kommata getrennt eingetragen werden. Wenn
dieses Attribut nicht gesetzt ist, wird der in der Ger&auml;tegruppe
gesetzte Ger&auml;tetyp verwendet.
</li>
<a name="showtime"></a>
<li>showtime<br>
Wird im FHEMWEB verwendet, um die Zeit der letzten Aktivit&auml;t
anstelle des Status in der Gesamtansicht anzuzeigen. N&uuml;tzlich z.B.
f&uuml;r FS20 PIRI Ger&auml;te.
</li>
</li><br>
<a name="eventMap"></a>
<li>eventMap<br>
@ -434,6 +385,65 @@ Ger&auml;t dokumentiert.
richtig anzeigen kann.
</li><br>
<a name="genericDisplayType"></a>
<li>genericDisplayType<br>
Wird von bestimmten Frontends (aber nicht FHEMWEB) verwendet, um
f&uuml;r das Ger&auml;t passende Voreinstellungen (Bild/Befehle/etc)
anzubieten. Z.Zt werden folgende Werte unterst&uuml;tzt:
switch,outlet,light,blind,speaker,thermostat
</li><br>
<a name="group"></a>
<li>group<br>
Ger&auml;tegruppen. FHEMWEB zeigt Ger&auml;te die in die gleiche Gruppe
geh&ouml;ren auch in einer gemeinsamen Box an. Ein Ger&auml;t kann zu
mehr als einer Gruppe geh&ouml;ren. In diesem Fall m&uuml;ssen die
entsprechenden Gruppen durch Kommata getrennt eingetragen werden. Wenn
dieses Attribut nicht gesetzt ist, wird der in der Ger&auml;tegruppe
gesetzte Ger&auml;tetyp verwendet.
</li><br>
<a name="room"></a>
<li>room<br>
Filtert/gruppiert Ger&auml;te.
Ein Ger&auml;t kann zu mehr als einem Raum zugeordnet werden. In diesem
Fall m&uuml;ssen die Raumzuordnungen durch Kommata getrennt
angegeben werden.<br>
Ger&auml;te, die dem Raum mit der Bezeichnung "hidden" zugeordnet
werden, erscheinen nicht auf der Webseite.
</li><br>
<a name="showtime"></a>
<li>showtime<br>
Wird im FHEMWEB verwendet, um die Zeit der letzten Aktivit&auml;t
anstelle des Status in der Gesamtansicht anzuzeigen. N&uuml;tzlich z.B.
f&uuml;r FS20 PIRI Ger&auml;te.
</li></br>
<a name="suppressReading"></a>
<li>suppressReading<br>
Wird verwendet, um nicht gewollte Readings zu entfernen. Der Wert ist
ein Regular Expression, erg&auml;nzt mit ^ und $. Wird nur in
Ausnahmef&auml;llen ben&ouml;tigt.
</li><br>
<a name="verbose"></a>
<li>verbose<br>
Setzt den Schwellwert f&uuml;r die Logfile-Meldungen.
M&ouml;gliche Werte sind:
<ul>
<li>0 - Server start/stop</li>
<li>1 - Fehlermeldungen oder unbekannte Pakete</li>
<li>2 - bedeutende Ereigbisse/Alarme.</li>
<li>3 - ausgesendete Kommandos werden gelogged.</li>
<li>4 - von den einzelnen Ger&auml;ten empfangene Daten.</li>
<li>5 - Fehlersuche.</li>
</ul>
Der f&uuml;r die <a href="#global">global</a> Instanz gesetzte Wert gilt
als Voreinstellung f&uuml;r die Instanzen, die dieses Attribut nicht
gesetzt haben.
</li><br>
</ul>

View File

@ -233,8 +233,10 @@ use vars qw(@structChangeHist); # Contains the last 10 structural changes
$selectTimestamp = gettimeofday();
$cvsid = '$Id$';
my $AttrList = "verbose:0,1,2,3,4,5 room group comment:textField-long alias ".
"eventMap userReadings:textField-long";
my $AttrList = "alias comment:textField-long eventMap group room ".
"suppressReading userReadings:textField-long ".
"verbose:0,1,2,3,4,5";
my $currcfgfile=""; # current config/include file
my $currlogfile; # logfile, without wildcards
my $duplidx=0; # helper for the above pool
@ -2568,6 +2570,12 @@ CommandAttr($$)
}
}
if($attrName eq "suppressReading") {
return "Argument must be a valid regexp" if(!$a[2] || $a[2] =~ /^\*/);
eval { "Hallo" =~ m/^$a[2]$/ };
return "Bad regexp: $@" if($@);
}
$a[0] = $sdev;
my $oVal = ($attr{$sdev} ? $attr{$sdev}{$attrName} : "");
$ret = CallFn($sdev, "AttrFn", "set", @a);
@ -4053,6 +4061,9 @@ readingsBulkUpdate($$$@)
return;
}
my $sp = AttrVal($name, "suppressReading", undef);
return if($sp && $reading =~ m/^$sp$/);
# shorthand
my $readings = $hash->{READINGS}{$reading};