2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 03:06:37 +00:00

trigger source event, WDS30-OT

git-svn-id: https://svn.fhem.de/fhem/trunk@3441 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinp876 2013-07-17 13:27:12 +00:00
parent 58eec9a078
commit 7ee13d6bf5
2 changed files with 46 additions and 11 deletions

View File

@ -162,6 +162,7 @@ sub CUL_HM_reqStatus($){
sub CUL_HM_autoReadConfig($){
# will trigger a getConfig and statusrequest for each device assigned.
#
return if (!$modules{CUL_HM}{helper}{autoRdCfgLst});
while(@{$modules{CUL_HM}{helper}{autoRdCfgLst}}){
my $name = shift(@{$modules{CUL_HM}{helper}{autoRdCfgLst}});
my $hash = $defs{$name};
@ -443,6 +444,8 @@ sub CUL_HM_Parse($$) {##############################
my $shash = $modules{CUL_HM}{defptr}{$src};
my $dhash = $modules{CUL_HM}{defptr}{$dst};
$respRemoved = 0; #set to 'no response in this message' at start
if(!$shash) { # Unknown source
# Generate an UNKNOWN event for pairing requests, ignore everything else
@ -818,6 +821,16 @@ sub CUL_HM_Parse($$) {##############################
}
push @event, $statemsg;
}
elsif ($mTp eq "53"){
my ($mChn,@dat) = unpack 'A2(A6)*',$p;
my %dField = (41=>"temp_T1",42=>"temp_T2",43=>"temp_T1-T2",44=>"temp_T2-T1");
foreach (@dat){
my ($a,$d) = unpack 'A2A4',$_;
$d = hex($d);
$d -= 0x10000 if($d & 0x4000);
push @event, sprintf("Val_$dField{$a}:%0.1f",$d/10);
}
}
}
elsif($st =~ m /^(switch|dimmer|blindActuator)$/) {##########################
if (($mTp eq "02" && $p =~ m/^01/) || # handle Ack_Status
@ -1556,8 +1569,21 @@ sub CUL_HM_parseCommon(@){#####################################################
}
}
}
elsif($mTp eq "40"){ #someone is triggere#################
# elsif($mTp eq "40"){ #someone is triggered################
# CUL_HM_qStateUpdatIfEnab($dst)if (hex($mFlg) & 0x20 && $dhash);
# }
elsif($mTp =~ m /^4[01]/){ #someone is triggered##########
CUL_HM_qStateUpdatIfEnab($dst)if (hex($mFlg) & 0x20 && $dhash);
my $cName = CUL_HM_id2Name($src.sprintf("%02X",hex(substr($p,0,2))& 0x3f));
my $level = "-";
$level = hex(substr($p,4,2))." %" if (length($p)>5);
my @peers = split(",",AttrVal($cName,"peerIDs",""));
foreach my $peer (@peers){
my $pName = CUL_HM_id2Name($peer);
next if (!$defs{$pName});
CUL_HM_UpdtReadBulk($defs{$pName},1,"trig_$cName:$level",
"trigLast:$cName");
}
}
elsif($mTp eq "70"){ #Time to trigger TC##################
#send wakeup and process command stack
@ -4812,6 +4838,10 @@ sub CUL_HM_putHash($) {# provide data for HMinfo
ValveErrorPosition $vep %<br>
ValveOffset $of %<br>
time-request<br>
trig_&lt;src&gt; &lt;value&gt; #channel was triggered by &lt;src&gt; channel.
This event relies on complete reading of channels configuration, otherwise Data can be
incomplete or incorrect.<br>
trigLast &lt;channel&gt; #last receiced trigger<br>
</li>
<li><B>HM-CC-VD</B><br>
$vp %<br>

View File

@ -188,6 +188,7 @@ my %culHmModel=(
"00A3" => {name=>"HM-LC-Dim1L-Pl-2" ,st=>'dimmer' ,cyc=>'' ,rxt=>'' ,lst=>'1,3' ,chn=>"",},
"00A4" => {name=>"HM-LC-Dim1T-Pl-2" ,st=>'dimmer' ,cyc=>'' ,rxt=>'' ,lst=>'1,3' ,chn=>"",},
"00A7" => {name=>"HM-Sen-RD-O" ,st=>'' ,cyc=>'' ,rxt=>'' ,lst=>'1:1,4:1' ,chn=>"Rain:1:1,Sw:2:2",},
"00A8" => {name=>"HM-WDS30-OT2-SM" ,st=>'THSensor' ,cyc=>'00:05' ,rxt=>'c:w' ,lst=>'1:1,4:1' ,chn=>"",},
"00A9" => {name=>"HM-PB-6-WM55" ,st=>'remote' ,cyc=>'' ,rxt=>'c' ,lst=>'1,4' ,chn=>"Btn:1:6",},
#263 167 HM Smoke Detector Schueco
#"HM-RC-Key4-2"
@ -989,15 +990,15 @@ my %culHmBits = (
MODE => '04,2,$val=hex($val)',
} },
"12" => { txt => "HAVE_DATA"},
"3E" => { txt => "SWITCH", params => {
"3E" => { txt => "SWITCH" , params => {
DST => "00,6",
UNKNOWN => "06,2",
CHANNEL => "08,2",
COUNTER => "10,2", } },
"3F" => { txt => "TimeStamp", params => {
"3F" => { txt => "TimeStamp" , params => {
UNKNOWN => "00,4",
TIME => "04,2", } },
"40" => { txt => "REMOTE", params => {
"40" => { txt => "REMOTE" , params => {
BUTTON => '00,2,$val=(hex($val)&0x3F)',
LONG => '00,2,$val=(hex($val)&0x40)?1:0',
LOWBAT => '00,2,$val=(hex($val)&0x80)?1:0',
@ -1008,12 +1009,16 @@ my %culHmBits = (
LOWBAT => '00,2,$val=(hex($val)&0x80)?1:0',
VALUE => '02,2,$val=(hex($val))',
NEXT => '04,2,$val=(hex($val))',} },
"53" => { txt => "WaterSensor", params => {
CMD => "00,2",
SEQ => '02,2,$val=(hex($val))-64',
V1 => '08,2,$val=(hex($val))',
V2 => '10,2,$val=(hex($val))',
V3 => '12,2,$val=(hex($val))'} },
"53" => { txt => "SensorData" , params => {
CMD => "00,2",
Fld1=> "02,2",
Val1=> '04,4,$val=(hex($val))',
Fld2=> "08,2",
Val2=> '10,4,$val=(hex($val))',
Fld3=> "14,2",
Val3=> '16,4,$val=(hex($val))',
Fld4=> "20,2",
Val4=> '24,4,$val=(hex($val))'} },
"58" => { txt => "ClimateEvent", params => {
CMD => "00,2",
ValvePos => '02,2,$val=(hex($val))', } },