diff --git a/fhem/FHEM/10_ZWave.pm b/fhem/FHEM/10_ZWave.pm index 1becef91c..ca8647648 100755 --- a/fhem/FHEM/10_ZWave.pm +++ b/fhem/FHEM/10_ZWave.pm @@ -286,7 +286,7 @@ my %zwave_class = ( COMPOSITE => { id => '8d', }, MULTI_CHANNEL_ASSOCIATION=> { id => '8e', # aka MULTI_INSTANCE_ASSOCIATION set => { mcaAdd => "01%02x%02x*", - mcaRemove => "04%02x%02x*" }, + mcaDel => "04%02x*" }, get => { mca => "02%02x", mcaGroupings=> "05" }, parse => { "..8e03(..)(..)(.*)" @@ -1311,10 +1311,11 @@ ZWave_Parse($$@) $arg = sprintf("%s%02x%s", $1, hex($2) & 0x7f, $3); } - my $baseHash; + my ($baseHash, $baseId, $ep) = ("",$id,""); if($arg =~ /^..600d(..)(..)(.*)/) { # MULTI_CHANNEL CMD_ENCAP + $ep = ($1 ne "00" ? $1 : $2); $baseHash = $modules{ZWave}{defptr}{"$homeId $id"}; - $id = "$id$1"; + $id = "$id$ep"; $arg = sprintf("%02x$3", length($3)/2); } my $hash = $modules{ZWave}{defptr}{"$homeId $id"}; @@ -1322,8 +1323,10 @@ ZWave_Parse($$@) if(!$hash) { - $id = hex($id); - Log3 $ioName, 3, "Unknown ZWave device $homeId $id, please define it"; + $id=hex($id); $baseId=hex($baseId); $ep=hex($ep); + my $ret = "UNDEFINED ZWave_Endpoint_$baseId.$ep ZWave $homeId $id"; + Log3 $ioName, 3, "$ret, please define it"; + DoTrigger("global", $ret); return ""; } @@ -1563,6 +1566,24 @@ s2Hex($)