2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-01 01:09:47 +00:00

clear all option

git-svn-id: https://svn.fhem.de/fhem/trunk@6231 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinp876 2014-07-10 16:04:57 +00:00
parent 5fc714f346
commit f68fbda7b6
3 changed files with 64 additions and 51 deletions

View File

@ -3071,53 +3071,63 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
}
}
elsif($cmd eq "clear") { ####################################################
my (undef,undef,$sect) = @a;
if ($sect eq "readings"){
my @cH = ($hash);
push @cH,$defs{$hash->{$_}} foreach(grep /^channel/,keys %{$hash});
delete $_->{READINGS} foreach (@cH);
delete $modules{CUL_HM}{helper}{cfgCmpl}{$name};
CUL_HM_complConfig($_->{NAME}) foreach (@cH);
my (undef,undef,$sectIn) = @a;
my @sectL;
if ($sectIn eq "all") {
@sectL = ("rssi","msgEvents","readings");#readings is last - it schedules a reread possible
}
elsif($sect eq "register"){
my @cH = ($hash);
push @cH,$defs{$hash->{$_}} foreach(grep /^channel/,keys %{$hash});
foreach my $h(@cH){
delete $h->{READINGS}{$_}
foreach (grep /^(\.?)(R-|RegL)/,keys %{$h->{READINGS}});
delete $modules{CUL_HM}{helper}{cfgCmpl}{$name};
CUL_HM_complConfig($h->{NAME});
}
}
elsif($sect eq "msgEvents"){
CUL_HM_respPendRm($hash);
$hash->{helper}{prt}{bErr}=0;
delete $hash->{cmdStack};
delete $hash->{helper}{prt}{rspWait};
delete $hash->{helper}{prt}{rspWaitSec};
delete $hash->{helper}{prt}{mmcA};
delete $hash->{helper}{prt}{mmcS};
delete ($hash->{$_}) foreach (grep(/^prot/,keys %{$hash}));
if ($hash->{IODev}{NAME} &&
$modules{CUL_HM}{$hash->{IODev}{NAME}} &&
$modules{CUL_HM}{$hash->{IODev}{NAME}}{pendDev}){
@{$modules{CUL_HM}{$hash->{IODev}{NAME}}{pendDev}} =
grep !/$name/,@{$modules{CUL_HM}{$hash->{IODev}{NAME}}{pendDev}};
}
CUL_HM_unQEntity($name,"qReqConf");
CUL_HM_unQEntity($name,"qReqStat");
CUL_HM_protState($hash,"Info_Cleared");
}
elsif($sect eq "rssi"){
delete $defs{$name}{helper}{rssi};
delete ($hash->{$_}) foreach (grep(/^rssi/,keys %{$hash}))
elsif($sectIn =~ m/(rssi|msgEvents|readings|register)/){
@sectL = ($sectIn);
}
else{
return "unknown section. User readings, msgEvents or rssi";
}
foreach my $sect (@sectL){
if ($sect eq "readings"){
my @cH = ($hash);
push @cH,$defs{$hash->{$_}} foreach(grep /^channel/,keys %{$hash});
delete $_->{READINGS} foreach (@cH);
delete $modules{CUL_HM}{helper}{cfgCmpl}{$name};
CUL_HM_complConfig($_->{NAME}) foreach (@cH);
CUL_HM_qStateUpdatIfEnab($_->{NAME}) foreach (@cH);
}
elsif($sect eq "register"){
my @cH = ($hash);
push @cH,$defs{$hash->{$_}} foreach(grep /^channel/,keys %{$hash});
foreach my $h(@cH){
delete $h->{READINGS}{$_}
foreach (grep /^(\.?)(R-|RegL)/,keys %{$h->{READINGS}});
delete $modules{CUL_HM}{helper}{cfgCmpl}{$name};
CUL_HM_complConfig($h->{NAME});
}
}
elsif($sect eq "msgEvents"){
CUL_HM_respPendRm($hash);
$hash->{helper}{prt}{bErr}=0;
delete $hash->{cmdStack};
delete $hash->{helper}{prt}{rspWait};
delete $hash->{helper}{prt}{rspWaitSec};
delete $hash->{helper}{prt}{mmcA};
delete $hash->{helper}{prt}{mmcS};
delete ($hash->{$_}) foreach (grep(/^prot/,keys %{$hash}));
if ($hash->{IODev}{NAME} &&
$modules{CUL_HM}{$hash->{IODev}{NAME}} &&
$modules{CUL_HM}{$hash->{IODev}{NAME}}{pendDev}){
@{$modules{CUL_HM}{$hash->{IODev}{NAME}}{pendDev}} =
grep !/$name/,@{$modules{CUL_HM}{$hash->{IODev}{NAME}}{pendDev}};
}
CUL_HM_unQEntity($name,"qReqConf");
CUL_HM_unQEntity($name,"qReqStat");
CUL_HM_protState($hash,"Info_Cleared");
}
elsif($sect eq "rssi"){
delete $defs{$name}{helper}{rssi};
delete ($hash->{$_}) foreach (grep(/^rssi/,keys %{$hash}))
}
}
$state = "";
}
elsif($cmd eq "reset") { ####################################################
@ -7151,13 +7161,14 @@ sub CUL_HM_tempListTmpl(@) { ##################################################
Universal commands (available to most hm devices):
<ul>
<li><B>clear &lt;[readings|register|msgEvents]&gt;</B><a name="CUL_HMclear"></a><br>
<li><B>clear &lt;[readings|register|msgEvents|all]&gt;</B><a name="CUL_HMclear"></a><br>
A set of variables can be removed.<br>
<ul>
readings: all readings will be deleted. Any new reading will be added usual. May be used to eliminate old data<br>
register: all captured register-readings in FHEM will be removed. This has NO impact to the values in the device.<br>
msgEvents: all message event counter will be removed. Also commandstack will be cleared. <br>
rssi: collected rssi values will be cleared. <br>
all: all of the above. <br>
</ul>
</li>
<li><B>getConfig</B><a name="CUL_HMgetConfig"></a><br>
@ -8434,13 +8445,14 @@ sub CUL_HM_tempListTmpl(@) { ##################################################
Allgemeine Befehle (verf&uuml;gbar f&uuml;r die meisten HM-Ger&auml;te):
<ul>
<li><B>clear &lt;[readings|register|msgEvents]&gt;</B><a name="CUL_HMclear"></a><br>
<li><B>clear &lt;[readings|register|msgEvents|all]&gt;</B><a name="CUL_HMclear"></a><br>
Eine Reihe von Variablen kann entfernt werden.<br>
<ul>
readings: Alle Messwerte werden gel&ouml;scht, neue Werte werden normal hinzugef&uuml;gt. Kann benutzt werden um alte Daten zu entfernen<br>
register: Alle in FHEM aufgezeichneten Registerwerte werden entfernt. Dies hat KEINEN Einfluss auf Werte im Ger&auml;t.<br>
msgEvents: Alle Anchrichtenz&auml;hler werden gel&ouml;scht. Ebenso wird der Befehlsspeicher zur&uuml;ckgesetzt. <br>
rssi: gesammelte RSSI-Werte werden gel&ouml;scht. <br>
rssi: gesammelte RSSI-Werte werden gel&ouml;scht.<br>
all: alles oben genannte.<br>
</ul>
</li>
<li><B>getConfig</B><a name="CUL_HMgetConfig"></a><br>

View File

@ -1015,12 +1015,13 @@ sub HMinfo_GetFn($@) {#########################################################
."\n range: min to max value"
."\n count: number of events in calculation"
."\n ---clear status---"
."\n set clear [<typeFilter>] [Protocol|readings|msgStat|register|rssi]"
."\n set clear [<typeFilter>] [Protocol|readings|msgStat|register|rssi|all]"
."\n Protocol # delete all protocol-events"
."\n readings # delete all readings"
."\n register # delete all register-readings"
."\n rssi # delete all rssi data"
."\n msgStat # delete message statistics"
."\n all # delete all of the above"
."\n ---help---"
."\n get help #"
."\n ***footnote***"
@ -1086,7 +1087,7 @@ sub HMinfo_SetFn($@) {#########################################################
$cmd = "?" if(!$cmd);# by default print options
if ($cmd eq "clear" ) {##actionImmediate: clear parameter--------------
my ($type) = @a;
if ($type eq "msgStat"){
if ($type eq "msgStat" || $type eq "all" ){
foreach (keys %{$modules{CUL_HM}{stat}{r}}){
next if ($_ ne "dummy");
delete $modules{CUL_HM}{stat}{$_};
@ -1095,9 +1096,9 @@ sub HMinfo_SetFn($@) {#########################################################
}
return;
}
else{
return "unknown parameter - use Protocol, readings, msgStat, register or rssi"
if ($type !~ m/^(Protocol|readings|register|rssi)$/);
if ($type ne "msgStat"){
return "unknown parameter - use Protocol, readings, msgStat, register, rssi or all"
if ($type !~ m/^(Protocol|readings|register|rssi|all)$/);
$opt .= "d" if ($type !~ m/(readings|register)/);# readings apply to all, others device only
my @entities;
$type = "msgEvents" if ($type eq "Protocol");# translate parameter

View File

@ -1255,7 +1255,7 @@ $culHmRegChan{"ROTO_ZEL-STG-RM-FWT03"}= $culHmRegChan{"HM-CC-TC03"};
getRegRaw => "[List0|List1|List2|List3|List4|List5|List6] ... [<PeerChannel>]",
getConfig => "",
regSet => "[prep|exec] <regName> <value> ... [<peerChannel>]",
clear => "[readings|register|rssi|msgEvents]",
clear => "[readings|register|rssi|msgEvents|all]",
);
%culHmGlobalSetsVrtDev = (# virtuals and devices without subtype
raw => "data ...",