2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-04 05:16:45 +00:00

00_ZWDongle.pm/10_ZWave.pm: SUC/SIS patch from krikan (Forum #53066)

git-svn-id: https://svn.fhem.de/fhem/trunk@11483 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2016-05-20 07:13:22 +00:00
parent a08bec5b3b
commit 2a01f5a030
2 changed files with 53 additions and 3 deletions

View File

@ -26,7 +26,7 @@ my %sets = (
onNwSec=>0xc1, onSec=>0x81 } },
"backupCreate" => { cmd => "" },
"backupRestore" => { cmd => "" },
"controllerChange" => { cmd => "4d%02x@", #ZW_CONTROLLER_CHANGE
"controllerChange" => { cmd => "4d%02x@", # ZW_CONTROLLER_CHANGE
param => { on =>0x02, stop =>0x05,
stopFailed =>0x06 } },
"createNewPrimary" => { cmd => "4c%02x@", # ZW_CREATE_NEW_PRIMARY
@ -1057,6 +1057,11 @@ ZWDongle_Ready($)
<li>ZW_SET_SUC_NODE_ID [ok|failed|callbackSucceeded|callbackFailed]</li>
</ul>
<br><b>sucRouteAdd / sucRouteDel</b>
<li>ZW_ASSIGN_SUC_RETURN_ROUTE [started|alreadyActive|transmitOk|
transmitNoAck|transmitFail|transmitNotIdle|
transmitNoRoute]</li>
</ul>

View File

@ -745,6 +745,10 @@ ZWave_Cmd($$@)
if($type eq "set") {
$cmdList{neighborUpdate}{fmt} = "48$id";
$cmdList{neighborUpdate}{id} = "";
$cmdList{sucRouteAdd}{fmt} = "51$id";
$cmdList{sucRouteAdd}{id} = "";
$cmdList{sucRouteDel}{fmt} = "55$id";
$cmdList{sucRouteDel}{id} = "";
}
$cmdList{neighborList}{fmt} = "x" if($type eq "get"); # Add meta command
}
@ -851,8 +855,11 @@ ZWave_Cmd($$@)
}
my $data;
if($cmd eq "neighborUpdate") {
if($cmd eq "neighborUpdate" ||
$cmd eq "sucRouteAdd" ||
$cmd eq "sucRouteDel" ) {
$data = $cmdFmt;
$data .= ZWave_callbackId($baseHash);
} else {
my $len = sprintf("%02x", length($cmdFmt)/2+1);
@ -895,7 +902,11 @@ ZWave_Cmd($$@)
$val = ($data ? ZWave_Parse($iohash, $data, $type) : "no data returned");
} elsif($type ne "get") {
ZWave_processSendStack($hash, "next") if($cmd eq "neighborUpdate");
if($cmd eq "neighborUpdate" ||
$cmd eq "sucRouteAdd" ||
$cmd eq "sucRouteDel" ) {
ZWave_processSendStack($hash, "next");
}
$cmd .= " ".join(" ", @a) if(@a);
readingsSingleUpdate($hash, "state", $cmd, 1);
@ -3717,6 +3728,18 @@ ZWave_Parse($$@)
return "";
}
if($cmd eq "ZW_ASSIGN_SUC_RETURN_ROUTE" ||
$cmd eq "ZW_DELETE_SUC_RETURN_ROUTE") {
my $retval;
if($arg eq "00") { $retval = 'alreadyActive';
} elsif($arg eq "01") { $retval = 'started';
} else { $retval = 'unknown_'.$arg; # should never happen
}
DoTrigger($ioName, "$cmd $retval");
return "";
}
Log3 $ioName, 4, "$ioName unhandled ANSWER: $cmd $arg";
return "";
}
@ -3889,6 +3912,16 @@ ZWave_Parse($$@)
} else { $evt = 'unknown_'.$id; # should never happen
}
} elsif($cmd eq "ZW_ASSIGN_SUC_RETURN_ROUTE" ||
$cmd eq "ZW_DELETE_SUC_RETURN_ROUTE") {
if($id eq "00") { $evt = 'transmitOk';
} elsif($id eq "01") { $evt = 'transmitNoAck';
} elsif($id eq "02") { $evt = 'transmitFail';
} elsif($id eq "03") { $evt = 'transmitFailNotIdle';
} elsif($id eq "04") { $evt = 'transmitNoRoute';
} else { $evt = 'unknown_'.$id; # should never happen
}
} elsif($cmd eq "ZW_SET_SUC_NODE_ID") {
if($id eq "05") { $evt = 'callbackSucceeded';
} elsif($id eq "06") { $evt = 'callbackFailed';
@ -4246,6 +4279,13 @@ s2Hex($)
update process. To read node's neighbor list see neighborList get
below.</li>
<li>sucRouteAdd<br>
Inform the routing/enhanced slave of the presence of a SUC/SIS. Assign
up to 4 static return routes to SUC/SIS.</li>
<li>sucRouteDel<br>
Delete static return routes to SUC/SIS node.</li>
<br><br><b>Class ASSOCIATION</b>
<li>associationAdd groupId nodeId ...<br>
Add the specified list of nodeIds to the association group groupId.<br> Note:
@ -5105,6 +5145,11 @@ s2Hex($)
<br><b>neighborUpdate</b>
<li>ZW_REQUEST_NODE_NEIGHBOR_UPDATE [started|done|failed]</li>
<br><b>sucRouteAdd / sucRouteDel</b>
<li>ZW_ASSIGN_SUC_RETURN_ROUTE [started|alreadyActive|transmitOk|
transmitNoAck|transmitFail|transmitNotIdle|
transmitNoRoute]</li>
<br><b>Class ALARM</b>
<li>Devices with class version 1 support: alarm_type_X:level Y</li>
<li>For higher class versions more detailed events with 100+ different