mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-03 23:06:37 +00:00
buttonlog on/off correction
git-svn-id: https://svn.fhem.de/fhem/trunk@5621 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
579af0d285
commit
87f52c22a5
@ -955,7 +955,6 @@ sub CUL_HM_Parse($$) {#########################################################
|
|||||||
}
|
}
|
||||||
elsif(($mTp eq '02' &&$sType eq '01')|| # ackStatus
|
elsif(($mTp eq '02' &&$sType eq '01')|| # ackStatus
|
||||||
($mTp eq '10' &&$sType eq '06')){ # infoStatus
|
($mTp eq '10' &&$sType eq '06')){ # infoStatus
|
||||||
$chn = substr($p,2,2);
|
|
||||||
my $dTemp = hex(substr($p,4,2))/2;
|
my $dTemp = hex(substr($p,4,2))/2;
|
||||||
$dTemp = ($dTemp < 6 )?'off':
|
$dTemp = ($dTemp < 6 )?'off':
|
||||||
($dTemp >30 )?'on' :sprintf("%0.1f", $dTemp);
|
($dTemp >30 )?'on' :sprintf("%0.1f", $dTemp);
|
||||||
@ -1012,11 +1011,11 @@ sub CUL_HM_Parse($$) {#########################################################
|
|||||||
elsif($md =~ m/(HM-CC-VD|ROTO_ZEL-STG-RM-FSA)/) { ###########################
|
elsif($md =~ m/(HM-CC-VD|ROTO_ZEL-STG-RM-FSA)/) { ###########################
|
||||||
if($mTp eq "02" && $p =~ m/^(..)(..)(..)(..)/) {#subtype+chn+value+err
|
if($mTp eq "02" && $p =~ m/^(..)(..)(..)(..)/) {#subtype+chn+value+err
|
||||||
my ($chn,$vp, $err) = (hex($2),hex($3), hex($4));
|
my ($chn,$vp, $err) = (hex($2),hex($3), hex($4));
|
||||||
$chn = sprintf("%02X",$chn&0x3f);
|
$chn = sprintf("%02X",$chn&0x3f);
|
||||||
$vp = int($vp)/2; # valve position in %
|
$vp = int($vp)/2; # valve position in %
|
||||||
push @evtEt,[$shash,1,"ValvePosition:$vp"];
|
push @evtEt,[$shash,1,"ValvePosition:$vp"];
|
||||||
push @evtEt,[$shash,1,"state:$vp"];
|
push @evtEt,[$shash,1,"state:$vp"];
|
||||||
$shash = $modules{CUL_HM}{defptr}{"$src$chn"}
|
$shash = $modules{CUL_HM}{defptr}{"$src$chn"}
|
||||||
if($modules{CUL_HM}{defptr}{"$src$chn"});
|
if($modules{CUL_HM}{defptr}{"$src$chn"});
|
||||||
|
|
||||||
my $stErr = ($err >>1) & 0x7; # Status-Byte Evaluation
|
my $stErr = ($err >>1) & 0x7; # Status-Byte Evaluation
|
||||||
@ -1279,8 +1278,7 @@ sub CUL_HM_Parse($$) {#########################################################
|
|||||||
if (($mTp eq "02" && $p =~ m/^01/) || #Ack_Status
|
if (($mTp eq "02" && $p =~ m/^01/) || #Ack_Status
|
||||||
($mTp eq "10" && $p =~ m/^06/)) { #Info_Status
|
($mTp eq "10" && $p =~ m/^06/)) { #Info_Status
|
||||||
|
|
||||||
my ($subType,$chn,$val,$err) = ($1,hex($2),$3,hex($4))
|
my ($subType,$chn,$val,$err) = ($mI[0],hex($mI[1]),$mI[2],hex($mI[3]));
|
||||||
if($p =~ m/^(..)(..)(..)(..)/);
|
|
||||||
$chn = sprintf("%02X",$chn&0x3f);
|
$chn = sprintf("%02X",$chn&0x3f);
|
||||||
my $chId = $src.$chn;
|
my $chId = $src.$chn;
|
||||||
$shash = $modules{CUL_HM}{defptr}{$chId}
|
$shash = $modules{CUL_HM}{defptr}{$chId}
|
||||||
@ -1307,7 +1305,7 @@ sub CUL_HM_Parse($$) {#########################################################
|
|||||||
|
|
||||||
push @evtEt,[$shash,0,'.level:'.($val eq "off"?"0":"100")];
|
push @evtEt,[$shash,0,'.level:'.($val eq "off"?"0":"100")];
|
||||||
|
|
||||||
if ($mNo eq "00" && $chn eq "02" && $val eq "on"){
|
if ($mNo eq "00" && $chn eq "02" && $val eq "on"){
|
||||||
$hHash->{helper}{pOn} = 1;
|
$hHash->{helper}{pOn} = 1;
|
||||||
}
|
}
|
||||||
elsif ($mNo eq "01" && $chn eq "01" &&
|
elsif ($mNo eq "01" && $chn eq "01" &&
|
||||||
@ -1324,13 +1322,11 @@ sub CUL_HM_Parse($$) {#########################################################
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif ($mTp eq "41") { #eventonAtRain
|
elsif ($mTp eq "41") { #eventonAtRain
|
||||||
my ($chn,$bno,$val) = unpack('(A2)*',$p);
|
my ($chn,$bno,$val) = @mI;
|
||||||
my $mdCh = $md.$chn;
|
|
||||||
$chn = sprintf("%02X",hex($chn)&0x3f);
|
$chn = sprintf("%02X",hex($chn)&0x3f);
|
||||||
my $chId = $src.$chn;
|
$shash = $modules{CUL_HM}{defptr}{$src.$chn}
|
||||||
$shash = $modules{CUL_HM}{defptr}{$chId}
|
if($modules{CUL_HM}{defptr}{$src.$chn});
|
||||||
if($modules{CUL_HM}{defptr}{$chId});
|
push @evtEt,[$shash,1,"trigger:".hex($bno).":".$lvlStr{mdCh}{$md.$chn}{$val}.$target];
|
||||||
push @evtEt,[$shash,1,"trigger:".hex($bno).":".$lvlStr{mdCh}{$mdCh}{$val}.$target];
|
|
||||||
if ($mNo eq "01" && $bno eq "01" &&
|
if ($mNo eq "01" && $bno eq "01" &&
|
||||||
$hHash->{helper}{pOn} && $hHash->{helper}{pOn} == 1){
|
$hHash->{helper}{pOn} && $hHash->{helper}{pOn} == 1){
|
||||||
$pon = 1;
|
$pon = 1;
|
||||||
@ -1482,17 +1478,16 @@ sub CUL_HM_Parse($$) {#########################################################
|
|||||||
my $state = "";
|
my $state = "";
|
||||||
my $chnHash = $modules{CUL_HM}{defptr}{$src.sprintf("%02X",$buttonID)};
|
my $chnHash = $modules{CUL_HM}{defptr}{$src.sprintf("%02X",$buttonID)};
|
||||||
|
|
||||||
if ($chnHash){# use userdefined name - ignore this irritating on-off naming
|
if ($chnHash){# use userdefined name - ignore irritating on-off naming
|
||||||
$btnName = $chnHash->{NAME};
|
$btnName = $chnHash->{NAME};
|
||||||
}
|
}
|
||||||
else{# Button not defined, use default naming
|
else{# Button not defined, use default naming
|
||||||
$chnHash = $shash;
|
$chnHash = $shash;
|
||||||
if ($st eq "swi"){#maintain history for event naming
|
if ($st eq "swi"){#maintain history for event naming
|
||||||
$btnName = "Btn$chn";
|
$btnName = "Btn$chn";
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
my $btn = int((($chn&0x3f)+1)/2);
|
$btnName = "Btn".int(($buttonID+1)/2);
|
||||||
$btnName = "Btn$btn";
|
|
||||||
$state = ($chn&1 ? "off" : "on")
|
$state = ($chn&1 ? "off" : "on")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1512,10 +1507,10 @@ sub CUL_HM_Parse($$) {#########################################################
|
|||||||
$trigType = "Short";
|
$trigType = "Short";
|
||||||
}
|
}
|
||||||
$shash->{helper}{addVal} = $chn; #store to handle changesFread
|
$shash->{helper}{addVal} = $chn; #store to handle changesFread
|
||||||
push @evtEt,[$chnHash,1,"state:".$state.$target];
|
push @evtEt,[$chnHash,1,"state:".$state.$target] if ($shash ne $chnHash);
|
||||||
push @evtEt,[$chnHash,1,"trigger:".$trigType."_".$bno];
|
push @evtEt,[$chnHash,1,"trigger:".$trigType."_".$bno];
|
||||||
push @evtEt,[$shash,1,"battery:". (($chn&0x80)?"low":"ok")];
|
push @evtEt,[$shash,1,"battery:". (($chn&0x80)?"low":"ok")];
|
||||||
push @evtEt,[$shash,1,"state:$btnName $state$target"] if ($shash ne $chnHash);
|
push @evtEt,[$shash,1,"state:$btnName $state$target"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif($st eq "powerMeter") {#################################################
|
elsif($st eq "powerMeter") {#################################################
|
||||||
|
@ -409,7 +409,7 @@ my $K_actDetID = '000000'; # id of actionDetector
|
|||||||
backAtCharge =>{a=> 13.5,s=>0.1,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"Backlight at Charge" ,lit=>{off=>0,on=>1}},
|
backAtCharge =>{a=> 13.5,s=>0.1,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>1,t=>"Backlight at Charge" ,lit=>{off=>0,on=>1}},
|
||||||
stbyTime =>{a=> 14.0,s=>1.0,l=>0,min=>1 ,max=>99 ,c=>'' ,f=>'' ,u=>'s' ,d=>1,t=>"Standby Time"},
|
stbyTime =>{a=> 14.0,s=>1.0,l=>0,min=>1 ,max=>99 ,c=>'' ,f=>'' ,u=>'s' ,d=>1,t=>"Standby Time"},
|
||||||
backOnTime =>{a=> 14.0,s=>1.0,l=>0,min=>0 ,max=>255 ,c=>'' ,f=>'' ,u=>'s' ,d=>1,t=>"Backlight On Time"},
|
backOnTime =>{a=> 14.0,s=>1.0,l=>0,min=>0 ,max=>255 ,c=>'' ,f=>'' ,u=>'s' ,d=>1,t=>"Backlight On Time"},
|
||||||
btnLock =>{a=> 15.0,s=>1.0,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Button Lock" ,lit=>{off=>0,on=>200}},
|
btnLock =>{a=> 15.0,s=>1.0,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Button Lock" ,lit=>{off=>0,on=>1}},#1 is proofen
|
||||||
|
|
||||||
# keymatic/winmatic secific register
|
# keymatic/winmatic secific register
|
||||||
keypressSignal =>{a=> 3.0,s=>0.1,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Keypress beep" ,lit=>{off=>0,on=>1}},
|
keypressSignal =>{a=> 3.0,s=>0.1,l=>0,min=>0 ,max=>1 ,c=>'lit' ,f=>'' ,u=>'' ,d=>0,t=>"Keypress beep" ,lit=>{off=>0,on=>1}},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user