mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-19 12:46:03 +00:00
post trigger_events if postEvent is being used
git-svn-id: https://svn.fhem.de/fhem/trunk@3954 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
c083035e7f
commit
e4cf2bd9c3
@ -1815,7 +1815,7 @@ sub CUL_HM_parseCommon(@){#####################################################
|
||||
my $l = substr($p,4,2);
|
||||
if ($lvlStr{md}{$md} && $lvlStr{md}{$md}{$l}){$level = $lvlStr{md}{$md}{$l}}
|
||||
elsif ($lvlStr{st}{$st} && $lvlStr{st}{$st}{$l}){$level = $lvlStr{st}{$st}{$l}}
|
||||
else {$level = hex($l)};
|
||||
else {$level = hex($l)};
|
||||
}
|
||||
|
||||
my @peers = split(",",AttrVal($cName,"peerIDs",""));
|
||||
@ -1923,11 +1923,8 @@ sub CUL_HM_Get($@) {
|
||||
return $attr{$name}{$a[2]} if ($attr{$name}{$a[2]});
|
||||
return $hash->{READINGS}{$a[2]}{VAL} if ($hash->{READINGS}{$a[2]});
|
||||
return $attr{$devName}{$a[2]} if ($attr{$devName}{$a[2]});
|
||||
return $devHash->{READINGS}{$a[2]}{VAL} if ($devHash->{READINGS}{$a[2]});
|
||||
return $hash->{$a[2]} if ($hash->{$a[2]});
|
||||
return $devHash->{$a[2]} if ($devHash->{$a[2]});
|
||||
return $hash->{helper}{$a[2]} if ($hash->{helper}{$a[2]} && ref($hash->{helper}{$a[2]}) ne "HASH");
|
||||
return $devHash->{helper}{$a[2]} if ($devHash->{helper}{$a[2]});
|
||||
return "undefined";
|
||||
}
|
||||
elsif($cmd eq "reg") { #####################################################
|
||||
@ -2978,25 +2975,32 @@ sub CUL_HM_Set($@) {
|
||||
my $pressCnt = (!$hash->{helper}{count}?1:$hash->{helper}{count}+1)%256;
|
||||
$hash->{helper}{count}=$pressCnt;# remember for next round
|
||||
|
||||
my @peerList;
|
||||
if ($st eq 'virtual'){#serve all peers of virtual button
|
||||
foreach my $peer (sort(split(',',AttrVal($name,"peerIDs","")))) {
|
||||
push (@peerList,substr($peer,0,6));
|
||||
}
|
||||
@peerList = CUL_HM_noDup(@peerList);
|
||||
push @peerList,'00000000' if (!@peerList);#send to broadcast if no peer
|
||||
foreach my $peer (sort @peerList){
|
||||
my $pHash = CUL_HM_id2Hash($peer);
|
||||
my $peerFlag = $peer eq '00000000'?'A4':CUL_HM_getFlag($pHash);
|
||||
$peerFlag =~ s/0/4/;# either 'A4' or 'B4'
|
||||
CUL_HM_SndCmd($hash, "++B412$dst".substr($peer,0,6_))
|
||||
if (CUL_HM_getRxType($pHash) & 0x80);
|
||||
CUL_HM_SndCmd($hash, sprintf("++%s41%s%s%02X%02X%02X"
|
||||
,$peerFlag,$dst,$peer
|
||||
,$chn
|
||||
,$pressCnt
|
||||
,$cond));
|
||||
}
|
||||
my @peerLChn = split(',',AttrVal($name,"peerIDs",""));
|
||||
my @peerDev;
|
||||
push (@peerDev,substr($_,0,6)) foreach (@peerLChn);
|
||||
@peerDev = CUL_HM_noDup(@peerDev);#only once per device!
|
||||
|
||||
push @peerDev,'000000' if (!@peerDev);#send to broadcast if no peer
|
||||
foreach my $peer (@peerDev){
|
||||
my $pHash = CUL_HM_id2Hash($peer);
|
||||
my $peerFlag = $peer eq '00000000'?'A4':CUL_HM_getFlag($pHash);
|
||||
$peerFlag =~ s/0/4/;# either 'A4' or 'B4'
|
||||
CUL_HM_SndCmd($hash, "++B412$dst".substr($peer,0,6_))
|
||||
if (CUL_HM_getRxType($pHash) & 0x80);
|
||||
CUL_HM_SndCmd($hash, sprintf("++%s41%s%s%02X%02X%02X"
|
||||
,$peerFlag,$dst,$peer
|
||||
,$chn
|
||||
,$pressCnt
|
||||
,$cond));
|
||||
}
|
||||
|
||||
foreach my $peer (@peerLChn){#inform each channel
|
||||
my $pName = CUL_HM_id2Name($peer);
|
||||
$pName = CUL_HM_id2Name(substr($peer,0,6)) if (!$defs{$pName});
|
||||
next if (!$defs{$pName});
|
||||
CUL_HM_UpdtReadBulk($defs{$pName},1
|
||||
,"trig_$name:$cond"
|
||||
,"trigLast:$name:$cond");
|
||||
}
|
||||
}
|
||||
elsif($cmd eq "peerChan") { ############################################# reg
|
||||
|
@ -190,7 +190,7 @@ my %culHmModel=(
|
||||
"0092" => {name=>"Schueco_263-144" ,st=>'switch' ,cyc=>'' ,rxt=>'c' ,lst=>'4' ,chn=>"",}, # HM Switch Interface 3 switches
|
||||
"0093" => {name=>"Schueco_263-158" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w:f' ,lst=>'p' ,chn=>"",}, #
|
||||
"0094" => {name=>"IS-WDS-TH-OD-S-R3" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p' ,chn=>"",}, #
|
||||
"0095" => {name=>"HM-CC-RT-DN" ,st=>'thermostat' ,cyc=>'' ,rxt=>'c:w:f' ,lst=>'p:1p.2p.5p.6p,3:3p.6p,7:4'
|
||||
"0095" => {name=>"HM-CC-RT-DN" ,st=>'thermostat' ,cyc=>'00:10' ,rxt=>'c:w:f' ,lst=>'p:1p.2p.5p.6p,3:3p.6p,7:4'
|
||||
,chn=>"Weather:1:1,Climate:2:2,WindowRec:3:3,ClimRT_tr:4:4,ClimaTeam:5:5,remote:6:6"}, #
|
||||
"0096" => {name=>"WDF-solar" ,st=>'blindActuatorSol' ,cyc=>'' ,rxt=>'b' ,lst=>'1,3' ,chn=>"win:1:1,blind_2:3",}, #
|
||||
"009B" => {name=>"Schueco_263-xxx" ,st=>'tipTronic' ,cyc=>'28:00' ,rxt=>'c:w' ,lst=>'1:1.2,3:1p.3p',chn=>"act:1:1,sen:2:2,sec:3:3",}, #
|
||||
|
Loading…
x
Reference in New Issue
Block a user