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:
martinp876 2013-09-24 12:24:57 +00:00
parent c083035e7f
commit e4cf2bd9c3
2 changed files with 28 additions and 24 deletions

View File

@ -1815,7 +1815,7 @@ sub CUL_HM_parseCommon(@){#####################################################
my $l = substr($p,4,2); my $l = substr($p,4,2);
if ($lvlStr{md}{$md} && $lvlStr{md}{$md}{$l}){$level = $lvlStr{md}{$md}{$l}} 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}} 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","")); 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 $attr{$name}{$a[2]} if ($attr{$name}{$a[2]});
return $hash->{READINGS}{$a[2]}{VAL} if ($hash->{READINGS}{$a[2]}); return $hash->{READINGS}{$a[2]}{VAL} if ($hash->{READINGS}{$a[2]});
return $attr{$devName}{$a[2]} if ($attr{$devName}{$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 $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 $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"; return "undefined";
} }
elsif($cmd eq "reg") { ##################################################### elsif($cmd eq "reg") { #####################################################
@ -2978,25 +2975,32 @@ sub CUL_HM_Set($@) {
my $pressCnt = (!$hash->{helper}{count}?1:$hash->{helper}{count}+1)%256; my $pressCnt = (!$hash->{helper}{count}?1:$hash->{helper}{count}+1)%256;
$hash->{helper}{count}=$pressCnt;# remember for next round $hash->{helper}{count}=$pressCnt;# remember for next round
my @peerList; my @peerLChn = split(',',AttrVal($name,"peerIDs",""));
if ($st eq 'virtual'){#serve all peers of virtual button my @peerDev;
foreach my $peer (sort(split(',',AttrVal($name,"peerIDs","")))) { push (@peerDev,substr($_,0,6)) foreach (@peerLChn);
push (@peerList,substr($peer,0,6)); @peerDev = CUL_HM_noDup(@peerDev);#only once per device!
}
@peerList = CUL_HM_noDup(@peerList); push @peerDev,'000000' if (!@peerDev);#send to broadcast if no peer
push @peerList,'00000000' if (!@peerList);#send to broadcast if no peer foreach my $peer (@peerDev){
foreach my $peer (sort @peerList){ my $pHash = CUL_HM_id2Hash($peer);
my $pHash = CUL_HM_id2Hash($peer); my $peerFlag = $peer eq '00000000'?'A4':CUL_HM_getFlag($pHash);
my $peerFlag = $peer eq '00000000'?'A4':CUL_HM_getFlag($pHash); $peerFlag =~ s/0/4/;# either 'A4' or 'B4'
$peerFlag =~ s/0/4/;# either 'A4' or 'B4' CUL_HM_SndCmd($hash, "++B412$dst".substr($peer,0,6_))
CUL_HM_SndCmd($hash, "++B412$dst".substr($peer,0,6_)) if (CUL_HM_getRxType($pHash) & 0x80);
if (CUL_HM_getRxType($pHash) & 0x80); CUL_HM_SndCmd($hash, sprintf("++%s41%s%s%02X%02X%02X"
CUL_HM_SndCmd($hash, sprintf("++%s41%s%s%02X%02X%02X" ,$peerFlag,$dst,$peer
,$peerFlag,$dst,$peer ,$chn
,$chn ,$pressCnt
,$pressCnt ,$cond));
,$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 elsif($cmd eq "peerChan") { ############################################# reg

View File

@ -190,7 +190,7 @@ my %culHmModel=(
"0092" => {name=>"Schueco_263-144" ,st=>'switch' ,cyc=>'' ,rxt=>'c' ,lst=>'4' ,chn=>"",}, # HM Switch Interface 3 switches "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=>"",}, # "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=>"",}, # "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"}, # ,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",}, # "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",}, # "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",}, #