From 1cb48479a52ffe51f8b8fc78e6b87e2cc58d4b8e Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sun, 6 Mar 2016 18:35:05 +0000 Subject: [PATCH] 10_ZWave.pm: check get response class in processSendStack (Forum #50090) git-svn-id: https://svn.fhem.de/fhem/trunk@11016 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_ZWave.pm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/fhem/FHEM/10_ZWave.pm b/fhem/FHEM/10_ZWave.pm index b2cc32440..05e3bfc45 100755 --- a/fhem/FHEM/10_ZWave.pm +++ b/fhem/FHEM/10_ZWave.pm @@ -3552,9 +3552,9 @@ ZWave_isWakeUp($) # next discards either state. # acktpye: next, ack or msg sub -ZWave_processSendStack($$) +ZWave_processSendStack($$;$) { - my ($hash,$ackType) = @_; + my ($hash,$ackType, $msg) = @_; my $ss = $hash->{SendStack}; return if(!$ss); @@ -3562,7 +3562,13 @@ ZWave_processSendStack($$) if($1 eq "get" && $ackType eq "ack") { $ss->[0] = "sentackget:$2"; return; + + } elsif($1 eq "ackget" && $ackType eq "msg") {# compare answer class for get + my $cs = substr($2, 6, 2); + my $cg = substr($msg, 2, 2); + return if($cs ne $cg); } + shift @{$ss}; RemoveInternalTimer($hash) if(!ZWave_isWakeUp($hash)); } @@ -3903,7 +3909,7 @@ ZWave_Parse($$@) ZWave_processSendStack($hash, "next"); } else { - ZWave_processSendStack($hash, "msg") + ZWave_processSendStack($hash, "msg", $arg) if(!ZWave_isWakeUp($hash) || $hash->{wakeupAlive}); }