10_ZWave.pm: fix showSetInState/setReadingOnAc for MULTI_CHANNEL (Forum #112955)

git-svn-id: https://svn.fhem.de/fhem/trunk@23160 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2020-11-15 10:06:55 +00:00
parent a970deca02
commit 7047ac9664

View File

@ -5100,16 +5100,22 @@ ZWave_Parse($$@)
my $name="";
if($hash) {
ZWave_processSendStack($hash, "ack", $callbackid);
readingsBeginUpdate($hash);
readingsBulkUpdate($hash, "transmit", $lmsg, 0);
readingsSingleUpdate($hash, "transmit", $lmsg, 0);
my $sos = ($iodev->{showSetInState} ||
$iodev->{setReadingOnAck});
if($sos) {
my $lCU = $hash->{lastChannelUsed};
my $lname = $lCU ? $lCU : $hash->{NAME};
my $lhash = $defs{$lname} ? $defs{$lname} : $hash;
readingsBeginUpdate($lhash);
if($iodev->{showSetInState}) {
my $state = ReadingsVal($lname, "state", "");
if($state =~ m/^set_(.*)$/) {
readingsBulkUpdate($defs{$lname}, "state", $1, 1);
readingsBulkUpdate($lhash, "state", $1, 1);
$name = $lname;
}
}
@ -5119,12 +5125,14 @@ ZWave_Parse($$@)
if($ackCmd) {
#Log 1, "ACK: $callbackid => $ackCmd";
my ($type, $reading, $val) = split(" ", $ackCmd, 3);
readingsBulkUpdate($defs{$lname}, $reading, $val, 1)
readingsBulkUpdate($lhash, $reading, $val, 1)
if($type eq "set" && defined($val));
$name = $lname;
}
}
readingsEndUpdate($hash, 1);
readingsEndUpdate($lhash, 1) if($sos);
}
}
delete($hash->{lastChannelUsed});
return $name;