diff --git a/fhem/FHEM/00_ZWDongle.pm b/fhem/FHEM/00_ZWDongle.pm index 826180ae1..9da39a01f 100755 --- a/fhem/FHEM/00_ZWDongle.pm +++ b/fhem/FHEM/00_ZWDongle.pm @@ -31,7 +31,7 @@ my %sets = ( param => {nwOn=>0xc1, on=>0x81, off=>0x05 } }, "createNode" => { cmd => "60%02x" }, # ZW_REQUEST_NODE_INFO' "removeFailedNode" => { cmd => "61%02x@" }, # ZW_REMOVE_FAILED_NODE_ID - "replaceFailedNode"=> { cmd => "63%02x" }, # ZW_REPLACE_FAILED_NODE + "replaceFailedNode"=> { cmd => "63%02x@" }, # ZW_REPLACE_FAILED_NODE "neighborUpdate" => { cmd => "48%02x" }, # ZW_REQUEST_NODE_NEIGHBOR_UPDATE "sendNIF" => { cmd => "12%02x05@" },# ZW_SEND_NODE_INFORMATION "setNIF" => { cmd => "03%02x%02x%02x%02x" }, @@ -882,10 +882,14 @@ ZWDongle_Ready($) below.
  • removeFailedNode
    - Remove a non-responding node that must be on the failed Node list from - the node list in controller. Instead, always use removeNode if possible. + Remove a non-responding node -that must be on the failed Node list- from + the routing table in controller. Instead,always use removeNode if possible. Note: the corresponding fhem device have to be deleted manually.
  • +
  • replaceFailedNode
    + Replace a non-responding node with a new one. The non-responding node + must be on the failed Node list.
  • +
  • reopen
    First close and then open the device. Used for debugging purposes.
  • @@ -953,13 +957,19 @@ ZWDongle_Ready($)
  • ZW_ADD_NODE_TO_NETWORK [learnReady|nodeFound|controller|done|failed]
  • ZW_REMOVE_FAILED_NODE_ID - [notPrimaryController|noCallbackFunction|failedNodeNotFound| - failedNodeProcessBusy|failedNodeRemoveFail|nodeOk|nodeRemoved| - nodeNotRemoved] + [failedNodeRemoveStarted|notPrimaryController|noCallbackFunction| + failedNodeNotFound|failedNodeRemoveProcessBusy| + failedNodeRemoveFail|nodeOk|nodeRemoved|nodeNotRemoved]
  • ZW_REMOVE_NODE_FROM_NETWORK [learnReady|nodeFound|slave|controller|done|failed]
  • +
  • ZW_REPLACE_FAILED_NODE + [failedNodeRemoveStarted|notPrimaryController|noCallbackFunction| + failedNodeNotFound|failedNodeRemoveProcessBusy| + failedNodeRemoveFail|nodeOk|failedNodeReplace| + failedNodeReplaceDone|failedNodeRemoveFailed] +
  • UNDEFINED ZWave_${type6}_$id ZWave $homeId $id $classes"
  • ZW_REQUEST_NODE_NEIGHBOR_UPDATE [started|done|failed] diff --git a/fhem/FHEM/10_ZWave.pm b/fhem/FHEM/10_ZWave.pm index 6aa0bab53..a4324c455 100755 --- a/fhem/FHEM/10_ZWave.pm +++ b/fhem/FHEM/10_ZWave.pm @@ -2525,22 +2525,16 @@ ZWave_Parse($$@) Log3 $ioName, 2, "SERIAL_API_SET_TIMEOUTS: ACK:$1 BYTES:$2"; return ""; } - if($cmd eq "ZW_REMOVE_FAILED_NODE_ID") { + if($cmd eq "ZW_REMOVE_FAILED_NODE_ID" || + $cmd eq "ZW_REPLACE_FAILED_NODE") { my $retval; - if ($arg eq "00") { - $retval = 'failedNodeRemoveStarted'; - } elsif ($arg eq "02") { - $retval = 'notPrimaryController'; - } elsif ($arg eq "04") { - $retval = 'noCallbackFunction'; - } elsif ($arg eq "08") { - $retval = 'failedNodeNotFound'; - } elsif ($arg eq "10") { - $retval = 'failedNodeRemoveProcessBusy'; - } elsif ($arg eq "20") { - $retval = 'failedNodeRemoveFail'; - } else { - $retval = 'unknown_'.$arg; # should never happen + if($arg eq "00") { $retval = 'failedNodeRemoveStarted'; + } elsif($arg eq "02") { $retval = 'notPrimaryController'; + } elsif($arg eq "04") { $retval = 'noCallbackFunction'; + } elsif($arg eq "08") { $retval = 'failedNodeNotFound'; + } elsif($arg eq "10") { $retval = 'failedNodeRemoveProcessBusy'; + } elsif($arg eq "20") { $retval = 'failedNodeRemoveFail'; + } else { $retval = 'unknown_'.$arg; # should never happen } DoTrigger($ioName, "$cmd $retval"); return ""; @@ -2656,25 +2650,25 @@ ZWave_Parse($$@) } } elsif($cmd eq "ZW_REQUEST_NODE_NEIGHBOR_UPDATE") { - if ($id eq "21") { - $evt = 'started'; - } elsif ($id eq "22") { - $evt = 'done'; - } elsif ($id eq "23") { - $evt = 'failed'; - } else { - $evt = 'unknown'; # should never happen + if($id eq "21") { $evt = 'started'; + } elsif($id eq "22") { $evt = 'done'; + } elsif($id eq "23") { $evt = 'failed'; + } else { $evt = 'unknown'; # should never happen } } elsif($cmd eq "ZW_REMOVE_FAILED_NODE_ID") { - if ($id eq "00") { - $evt = 'nodeOk'; - } elsif ($id eq "01") { - $evt = 'failedNodeRemoved'; - } elsif ($id eq "02") { - $evt = 'failedNodeNotRemoved'; - } else { - $evt = 'unknown_'.$id; # should never happen + if($id eq "00") { $evt = 'nodeOk'; + } elsif($id eq "01") { $evt = 'failedNodeRemoved'; + } elsif($id eq "02") { $evt = 'failedNodeNotRemoved'; + } else { $evt = 'unknown_'.$id; # should never happen + } + + } elsif($cmd eq "ZW_REPLACE_FAILED_NODE") { + if($id eq "00") { $evt = 'nodeOk'; + } elsif($id eq "03") { $evt = 'failedNodeReplace'; + } elsif($id eq "04") { $evt = 'failedNodeReplaceDone'; + } elsif($id eq "05") { $evt = 'failedNodeRemoveFailed'; + } else { $evt = 'unknown_'.$id; # should never happen } }