mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
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:
parent
a970deca02
commit
7047ac9664
@ -5100,31 +5100,39 @@ ZWave_Parse($$@)
|
|||||||
my $name="";
|
my $name="";
|
||||||
if($hash) {
|
if($hash) {
|
||||||
ZWave_processSendStack($hash, "ack", $callbackid);
|
ZWave_processSendStack($hash, "ack", $callbackid);
|
||||||
readingsBeginUpdate($hash);
|
readingsSingleUpdate($hash, "transmit", $lmsg, 0);
|
||||||
readingsBulkUpdate($hash, "transmit", $lmsg, 0);
|
|
||||||
|
|
||||||
my $lCU = $hash->{lastChannelUsed};
|
my $sos = ($iodev->{showSetInState} ||
|
||||||
my $lname = $lCU ? $lCU : $hash->{NAME};
|
$iodev->{setReadingOnAck});
|
||||||
|
|
||||||
if($iodev->{showSetInState}) {
|
if($sos) {
|
||||||
my $state = ReadingsVal($lname, "state", "");
|
my $lCU = $hash->{lastChannelUsed};
|
||||||
if($state =~ m/^set_(.*)$/) {
|
my $lname = $lCU ? $lCU : $hash->{NAME};
|
||||||
readingsBulkUpdate($defs{$lname}, "state", $1, 1);
|
my $lhash = $defs{$lname} ? $defs{$lname} : $hash;
|
||||||
$name = $lname;
|
|
||||||
|
readingsBeginUpdate($lhash);
|
||||||
|
|
||||||
|
if($iodev->{showSetInState}) {
|
||||||
|
my $state = ReadingsVal($lname, "state", "");
|
||||||
|
if($state =~ m/^set_(.*)$/) {
|
||||||
|
readingsBulkUpdate($lhash, "state", $1, 1);
|
||||||
|
$name = $lname;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if($iodev->{setReadingOnAck}) {
|
if($iodev->{setReadingOnAck}) {
|
||||||
my $ackCmd = $zwave_cbid2cmd{$callbackid};
|
my $ackCmd = $zwave_cbid2cmd{$callbackid};
|
||||||
if($ackCmd) {
|
if($ackCmd) {
|
||||||
#Log 1, "ACK: $callbackid => $ackCmd";
|
#Log 1, "ACK: $callbackid => $ackCmd";
|
||||||
my ($type, $reading, $val) = split(" ", $ackCmd, 3);
|
my ($type, $reading, $val) = split(" ", $ackCmd, 3);
|
||||||
readingsBulkUpdate($defs{$lname}, $reading, $val, 1)
|
readingsBulkUpdate($lhash, $reading, $val, 1)
|
||||||
if($type eq "set" && defined($val));
|
if($type eq "set" && defined($val));
|
||||||
|
$name = $lname;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
readingsEndUpdate($hash, 1);
|
readingsEndUpdate($lhash, 1) if($sos);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
delete($hash->{lastChannelUsed});
|
delete($hash->{lastChannelUsed});
|
||||||
return $name;
|
return $name;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user