diff --git a/fhem/FHEM/00_ZWDongle.pm b/fhem/FHEM/00_ZWDongle.pm index eeb11eb8c..2b69d4cf4 100755 --- a/fhem/FHEM/00_ZWDongle.pm +++ b/fhem/FHEM/00_ZWDongle.pm @@ -181,6 +181,14 @@ ZWDongle_Set($@) } else { delete($hash->{addSecure}); } + + if($a[0]) { # Remember the client for the failed message + if($a[0] eq "off") { + delete($hash->{addCL}); + } elsif($hash->{CL}) { + $hash->{addCL} = $hash->{CL}; + } + } } my $par = $sets{$type}{param}; diff --git a/fhem/FHEM/10_ZWave.pm b/fhem/FHEM/10_ZWave.pm index 4adbf13d5..e89b99d05 100755 --- a/fhem/FHEM/10_ZWave.pm +++ b/fhem/FHEM/10_ZWave.pm @@ -3738,20 +3738,21 @@ ZWave_Parse($$@) my $dh = $modules{ZWave}{defptr}{"$homeId $1"}; return "" if(!$dh); + asyncOutput($iodev->{addCL}, "addNode ok"); + my $addSecure = $iodev->{addSecure}; # addNode off deletes it + AnalyzeCommand(undef, "set $ioName addNode off") if($cmd eq 'ZW_ADD_NODE_TO_NETWORK'); ZWave_wakeupTimer($dh, 1) if(ZWave_isWakeUp($dh)); - my $addSecure = $iodev->{addSecure}; # addNode off deletes it - if($addSecure) { - return "" if (ZWave_secIncludeStart($dh, $iodev) == 1); - } + return "" if($addSecure && ZWave_secIncludeStart($dh, $iodev) == 1); return ZWave_execInits($dh, 0); } # addNode off generates ZW_ADD_NODE_TO_NETWORK:done sometimes (#51411) if($evt eq "failed" && $cmd eq 'ZW_ADD_NODE_TO_NETWORK') { + asyncOutput($iodev->{addCL}, "addNode failed"); AnalyzeCommand(undef, "set $ioName addNode off") }