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:
parent
58eec9a078
commit
7ee13d6bf5
@ -162,6 +162,7 @@ sub CUL_HM_reqStatus($){
|
|||||||
sub CUL_HM_autoReadConfig($){
|
sub CUL_HM_autoReadConfig($){
|
||||||
# will trigger a getConfig and statusrequest for each device assigned.
|
# will trigger a getConfig and statusrequest for each device assigned.
|
||||||
#
|
#
|
||||||
|
return if (!$modules{CUL_HM}{helper}{autoRdCfgLst});
|
||||||
while(@{$modules{CUL_HM}{helper}{autoRdCfgLst}}){
|
while(@{$modules{CUL_HM}{helper}{autoRdCfgLst}}){
|
||||||
my $name = shift(@{$modules{CUL_HM}{helper}{autoRdCfgLst}});
|
my $name = shift(@{$modules{CUL_HM}{helper}{autoRdCfgLst}});
|
||||||
my $hash = $defs{$name};
|
my $hash = $defs{$name};
|
||||||
@ -443,6 +444,8 @@ sub CUL_HM_Parse($$) {##############################
|
|||||||
my $shash = $modules{CUL_HM}{defptr}{$src};
|
my $shash = $modules{CUL_HM}{defptr}{$src};
|
||||||
my $dhash = $modules{CUL_HM}{defptr}{$dst};
|
my $dhash = $modules{CUL_HM}{defptr}{$dst};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$respRemoved = 0; #set to 'no response in this message' at start
|
$respRemoved = 0; #set to 'no response in this message' at start
|
||||||
if(!$shash) { # Unknown source
|
if(!$shash) { # Unknown source
|
||||||
# Generate an UNKNOWN event for pairing requests, ignore everything else
|
# Generate an UNKNOWN event for pairing requests, ignore everything else
|
||||||
@ -504,7 +507,7 @@ sub CUL_HM_Parse($$) {##############################
|
|||||||
#----------start valid messages parsing ---------
|
#----------start valid messages parsing ---------
|
||||||
my $parse = CUL_HM_parseCommon($mNo,$mFlg,$mTp,$src,$dst,$p);
|
my $parse = CUL_HM_parseCommon($mNo,$mFlg,$mTp,$src,$dst,$p);
|
||||||
push @event, "powerOn" if($parse eq "powerOn");
|
push @event, "powerOn" if($parse eq "powerOn");
|
||||||
|
|
||||||
if ($parse eq "ACK"){# remember - ACKinfo will be passed on
|
if ($parse eq "ACK"){# remember - ACKinfo will be passed on
|
||||||
push @event, "";
|
push @event, "";
|
||||||
}
|
}
|
||||||
@ -818,6 +821,16 @@ sub CUL_HM_Parse($$) {##############################
|
|||||||
}
|
}
|
||||||
push @event, $statemsg;
|
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)$/) {##########################
|
elsif($st =~ m /^(switch|dimmer|blindActuator)$/) {##########################
|
||||||
if (($mTp eq "02" && $p =~ m/^01/) || # handle Ack_Status
|
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);
|
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##################
|
elsif($mTp eq "70"){ #Time to trigger TC##################
|
||||||
#send wakeup and process command stack
|
#send wakeup and process command stack
|
||||||
@ -4812,6 +4838,10 @@ sub CUL_HM_putHash($) {# provide data for HMinfo
|
|||||||
ValveErrorPosition $vep %<br>
|
ValveErrorPosition $vep %<br>
|
||||||
ValveOffset $of %<br>
|
ValveOffset $of %<br>
|
||||||
time-request<br>
|
time-request<br>
|
||||||
|
trig_<src> <value> #channel was triggered by <src> channel.
|
||||||
|
This event relies on complete reading of channels configuration, otherwise Data can be
|
||||||
|
incomplete or incorrect.<br>
|
||||||
|
trigLast <channel> #last receiced trigger<br>
|
||||||
</li>
|
</li>
|
||||||
<li><B>HM-CC-VD</B><br>
|
<li><B>HM-CC-VD</B><br>
|
||||||
$vp %<br>
|
$vp %<br>
|
||||||
|
@ -188,6 +188,7 @@ my %culHmModel=(
|
|||||||
"00A3" => {name=>"HM-LC-Dim1L-Pl-2" ,st=>'dimmer' ,cyc=>'' ,rxt=>'' ,lst=>'1,3' ,chn=>"",},
|
"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=>"",},
|
"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",},
|
"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",},
|
"00A9" => {name=>"HM-PB-6-WM55" ,st=>'remote' ,cyc=>'' ,rxt=>'c' ,lst=>'1,4' ,chn=>"Btn:1:6",},
|
||||||
#263 167 HM Smoke Detector Schueco
|
#263 167 HM Smoke Detector Schueco
|
||||||
#"HM-RC-Key4-2"
|
#"HM-RC-Key4-2"
|
||||||
@ -989,15 +990,15 @@ my %culHmBits = (
|
|||||||
MODE => '04,2,$val=hex($val)',
|
MODE => '04,2,$val=hex($val)',
|
||||||
} },
|
} },
|
||||||
"12" => { txt => "HAVE_DATA"},
|
"12" => { txt => "HAVE_DATA"},
|
||||||
"3E" => { txt => "SWITCH", params => {
|
"3E" => { txt => "SWITCH" , params => {
|
||||||
DST => "00,6",
|
DST => "00,6",
|
||||||
UNKNOWN => "06,2",
|
UNKNOWN => "06,2",
|
||||||
CHANNEL => "08,2",
|
CHANNEL => "08,2",
|
||||||
COUNTER => "10,2", } },
|
COUNTER => "10,2", } },
|
||||||
"3F" => { txt => "TimeStamp", params => {
|
"3F" => { txt => "TimeStamp" , params => {
|
||||||
UNKNOWN => "00,4",
|
UNKNOWN => "00,4",
|
||||||
TIME => "04,2", } },
|
TIME => "04,2", } },
|
||||||
"40" => { txt => "REMOTE", params => {
|
"40" => { txt => "REMOTE" , params => {
|
||||||
BUTTON => '00,2,$val=(hex($val)&0x3F)',
|
BUTTON => '00,2,$val=(hex($val)&0x3F)',
|
||||||
LONG => '00,2,$val=(hex($val)&0x40)?1:0',
|
LONG => '00,2,$val=(hex($val)&0x40)?1:0',
|
||||||
LOWBAT => '00,2,$val=(hex($val)&0x80)?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',
|
LOWBAT => '00,2,$val=(hex($val)&0x80)?1:0',
|
||||||
VALUE => '02,2,$val=(hex($val))',
|
VALUE => '02,2,$val=(hex($val))',
|
||||||
NEXT => '04,2,$val=(hex($val))',} },
|
NEXT => '04,2,$val=(hex($val))',} },
|
||||||
"53" => { txt => "WaterSensor", params => {
|
"53" => { txt => "SensorData" , params => {
|
||||||
CMD => "00,2",
|
CMD => "00,2",
|
||||||
SEQ => '02,2,$val=(hex($val))-64',
|
Fld1=> "02,2",
|
||||||
V1 => '08,2,$val=(hex($val))',
|
Val1=> '04,4,$val=(hex($val))',
|
||||||
V2 => '10,2,$val=(hex($val))',
|
Fld2=> "08,2",
|
||||||
V3 => '12,2,$val=(hex($val))'} },
|
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 => {
|
"58" => { txt => "ClimateEvent", params => {
|
||||||
CMD => "00,2",
|
CMD => "00,2",
|
||||||
ValvePos => '02,2,$val=(hex($val))', } },
|
ValvePos => '02,2,$val=(hex($val))', } },
|
||||||
|
Loading…
x
Reference in New Issue
Block a user