2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-21 07:56:03 +00:00

compatibility for virtual remote and KeyMatic

git-svn-id: https://svn.fhem.de/fhem/trunk@1940 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
dirkho 2012-10-07 21:52:23 +00:00
parent 6dec88292b
commit 550978ce8c

View File

@ -2004,14 +2004,20 @@ CUL_HM_Set($@)
push (@peerList,substr(CUL_HM_Name2Id($peer),0,6)); push (@peerList,substr(CUL_HM_Name2Id($peer),0,6));
} }
my $oldPeer; # only once to device, not channel! my $oldPeer; # only once to device, not channel!
foreach my $peer (sort @peerList){ foreach my $peer (sort @peerList){
next if ($oldPeer eq $peer); next if ($oldPeer eq $peer);
CUL_HM_SendCmd($hash, sprintf("++A440%s%s%s%02X",
$srcId,$peer,$btn,$pressCnt),1,0); my $peerHash = $modules{CUL_HM}{defptr}{$peer};
my $peerSt = AttrVal($peerHash->{NAME}, "subType", "");
my $peerFlag = ($peerSt ne "keyMatic") ? "A4" : "B4";
CUL_HM_SendCmd($hash, sprintf("++%s40%s%s%s%02X",
$peerFlag,$srcId,$peer,$btn,$pressCnt),1,0);
$oldPeer = $peer; $oldPeer = $peer;
} }
CUL_HM_SendCmd($hash, sprintf("++A440%s000000%s%02X",
$srcId,$btn,$pressCnt),1,0)if (!@peerList); CUL_HM_SendCmd($hash, sprintf("++%40%s000000%s%02X",
$flag,$srcId,$btn,$pressCnt),1,0)if (!@peerList);
$hash->{helper}{count}=$pressCnt; $hash->{helper}{count}=$pressCnt;
} }
elsif($cmd eq "devicepair") { ############################################### elsif($cmd eq "devicepair") { ###############################################
@ -2030,7 +2036,7 @@ CUL_HM_Set($@)
if(defined($target) && (($target ne"actor") && if(defined($target) && (($target ne"actor") &&
($target ne"remote")&&($target ne"both"))); ($target ne"remote")&&($target ne"both")));
$single = ($single eq "single")?1:"";#default to dual $single = ($single eq "single")?1:"";#default to dual
$set = ($set eq "unset")?"":1; $set = ($set eq "unset")?0:1;
my ($b1,$b2,$nrCh2Pair); my ($b1,$b2,$nrCh2Pair);
$b1 = ($isChannel) ? hex($chn):sprintf("%02X",$bNo); $b1 = ($isChannel) ? hex($chn):sprintf("%02X",$bNo);
@ -2083,8 +2089,10 @@ CUL_HM_Set($@)
} }
} }
if (!$target || $target eq "actor" || $target eq "both"){ if (!$target || $target eq "actor" || $target eq "both"){
my $peerSt = AttrVal($peerHash->{NAME}, "subType", "");
my $peerFlag = ($peerSt ne "keyMatic") ? "A0" : "B0";
CUL_HM_PushCmdStack($peerHash, sprintf("++%s01%s%s%s%s%s%02X%02X", CUL_HM_PushCmdStack($peerHash, sprintf("++%s01%s%s%s%s%s%02X%02X",
$flag,$id,$peerDst,$peerChn,$cmd,$dst,$b2,$b1 )); $peerFlag,$id,$peerDst,$peerChn,$cmd,$dst,$b2,$b1 ));
} }
$chash = $peerHash; # Exchange the hash, as the switch is always alive. $chash = $peerHash; # Exchange the hash, as the switch is always alive.
} }