2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-19 12:46:03 +00:00

10_ZWave.pm: be more silen for secure commands (Forum #41337)

git-svn-id: https://svn.fhem.de/fhem/trunk@9588 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2015-10-22 10:19:20 +00:00
parent ccd4c88857
commit b22fc5cc1a

View File

@ -396,10 +396,12 @@ my %zwave_class = (
NON_INTEROPERABLE => { id => 'f0' },
);
my %zwave_noStateSetCmds = (
my %zwave_quietCmds = (
secScheme=>1,
sendNonce=>1,
secEncap=>1
secEncap=>1,
secNonce=>1
);
my %zwave_cmdArgs = (
@ -619,13 +621,13 @@ ZWave_Cmd($$@)
if(!$cmdList{$cmd}) {
my @list;
foreach my $cmd (sort keys %cmdList) {
if($zwave_cmdArgs{$type}{$cmd}) {
push @list, "$cmd:$zwave_cmdArgs{$type}{$cmd}";
} elsif($cmdList{$cmd}{fmt} !~ m/%/) {
push @list, "$cmd:noArg";
foreach my $lcmd (sort keys %cmdList) {
if($zwave_cmdArgs{$type}{$lcmd}) {
push @list, "$lcmd:$zwave_cmdArgs{$type}{$lcmd}";
} elsif($cmdList{$lcmd}{fmt} !~ m/%/) {
push @list, "$lcmd:noArg";
} else {
push @list, $cmd;
push @list, $lcmd;
}
}
my $list = join(" ",@list);
@ -674,10 +676,10 @@ ZWave_Cmd($$@)
}
if($cmd =~ m/^config/ && $cmd ne "configRequestAll") {
my ($err, $cmd) =
my ($err, $lcmd) =
ZWave_configCheckParam($hash, $cfgReq, $type, $cmd, $cmdFmt, @a);
return $err if($err);
$cmdFmt = $cmd;
$cmdFmt = $lcmd;
} else {
$cmdFmt = sprintf($cmdFmt, @a) if($nArg);
my ($err, $ncmd) = eval($cmdFmt) if($cmdFmt !~ m/^\d/);
@ -686,7 +688,8 @@ ZWave_Cmd($$@)
return "" if($ncmd && $ncmd eq "EMPTY"); # e.g. configRequestAll
}
Log3 $name, 2, "ZWave $type $name $cmd ".join(" ", @a);
Log3 $name, 2, "ZWave $type $name $cmd ".join(" ", @a)
if(!$zwave_quietCmds{$cmd});
my ($baseClasses, $baseHash) = ($classes, $hash);
if($id =~ m/(..)(..)/) { # Multi-Channel, encapsulate
@ -748,12 +751,13 @@ ZWave_Cmd($$@)
$val = ($data ? ZWave_Parse($iohash, $data, $type) : "no data returned");
} else {
if(!$zwave_quietCmds{$cmd}) {
$cmd .= " ".join(" ", @a) if(@a);
readingsSingleUpdate($hash, "state", $cmd, 1);
}
}
readingsSingleUpdate($hash, "state", $cmd, 1)
if($type eq "set" && !$zwave_noStateSetCmds{( split / /, $cmd, 2 )[0]});
return $val;
}