2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-05-03 13:45:36 +00:00

CUL_HM: dimmer allows explizit old

git-svn-id: https://svn.fhem.de/fhem/trunk@10910 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinp876 2016-02-21 18:27:33 +00:00
parent 4727ec2414
commit 859718bd5b
3 changed files with 11 additions and 9 deletions

View File

@ -1076,7 +1076,7 @@ sub CUL_HM_Parse($$) {#########################################################
} }
#----------CUL aesCommReq handling--------- #----------CUL aesCommReq handling---------
if ( $mh{devH}->{IODev}->{TYPE} eq "CUL" if ( AttrVal($mh{devH}{IODev}{NAME},"rfmode","") eq "HomeMatic" # $mh{devH}->{IODev}->{TYPE} eq "CUL"
&& $cryptFunc == 1 && $cryptFunc == 1
&& $ioId eq $mh{dst} && $ioId eq $mh{dst}
&& AttrVal($mh{devN},"aesCommReq",0)) { #aesCommReq enabled for device && AttrVal($mh{devN},"aesCommReq",0)) { #aesCommReq enabled for device
@ -2769,7 +2769,7 @@ sub CUL_HM_parseCommon(@){#####################################################
my (undef,$challenge,$aesKeyNbr) = unpack'A2A12A2',$mhp->{p}; my (undef,$challenge,$aesKeyNbr) = unpack'A2A12A2',$mhp->{p};
push @evtEt,[$mhp->{devH},1,"aesKeyNbr:".$aesKeyNbr] if (defined $aesKeyNbr);# if ($mh{msgStat} =~ m/AESKey/) push @evtEt,[$mhp->{devH},1,"aesKeyNbr:".$aesKeyNbr] if (defined $aesKeyNbr);# if ($mh{msgStat} =~ m/AESKey/)
if ($mhp->{devH}{IODev}->{TYPE} eq "CUL" && #IO is CUL if (AttrVal($mhp->{devH}{IODev}{NAME},"rfmode","") eq "HomeMatic" &&
defined($aesKeyNbr)) { defined($aesKeyNbr)) {
if ($cryptFunc == 1 && #AES is available if ($cryptFunc == 1 && #AES is available
$mhp->{devH}{helper}{prt}{rspWait}{cmd}){ #There is a previously executed command $mhp->{devH}{helper}{prt}{rspWait}{cmd}){ #There is a previously executed command
@ -4212,8 +4212,9 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
CUL_HM_UpdtReadSingle($hash,"inhibit","set_$a[2]",1); CUL_HM_UpdtReadSingle($hash,"inhibit","set_$a[2]",1);
CUL_HM_PushCmdStack($hash,'++'.$flag.'11'.$id.$dst.$val.$chn); # SET_LOCK CUL_HM_PushCmdStack($hash,'++'.$flag.'11'.$id.$dst.$val.$chn); # SET_LOCK
} }
elsif($cmd =~ m/^(up|down|pct)$/) { ######################################### elsif($cmd =~ m/^(up|down|pct|old)$/) { #####################################
my ($lvl,$tval,$rval,$duration) = (($a[2]?$a[2]:0),"","",0); my ($lvl,$tval,$rval,$duration) = (($cmd eq "old"?"old":($a[2]?$a[2]:0))
,"","",0);
my($lvlMin,$lvlMax) = split",",AttrVal($name, "levelRange", "0,100"); my($lvlMin,$lvlMax) = split",",AttrVal($name, "levelRange", "0,100");
my $lvlInv = (AttrVal($name, "param", "") =~ m /levelInverse/)?1:0; my $lvlInv = (AttrVal($name, "param", "") =~ m /levelInverse/)?1:0;
@ -5331,7 +5332,7 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
my ($key1,$key2); my ($key1,$key2);
if ($hash->{IODev}->{TYPE} eq "CUL") { if (AttrVal($hash->{IODev}{NAME},"rfmode","") eq "HomeMatic" ) {
return "$cmd needs Crypt::Rijndael for updating keys with CUL" return "$cmd needs Crypt::Rijndael for updating keys with CUL"
if ($cryptFunc != 1); if ($cryptFunc != 1);
@ -6338,7 +6339,7 @@ sub CUL_HM_FWupdateEnd($){#end FW update
sub CUL_HM_FWupdateSpeed($$){#set IO speed sub CUL_HM_FWupdateSpeed($$){#set IO speed
my ($name,$speed) = @_; my ($name,$speed) = @_;
my $hash = $defs{$name}; my $hash = $defs{$name};
if ($hash->{IODev}->{TYPE} ne "CUL"){ if (AttrVal($hash->{IODev}{NAME},"rfmode","") ne "HomeMatic"){
my $msg = sprintf("G%02X",$speed); my $msg = sprintf("G%02X",$speed);
IOWrite($hash, "cmd",$msg); IOWrite($hash, "cmd",$msg);
} }

View File

@ -160,14 +160,14 @@ sub HMinfo_Attr(@) {###########################################################
my %culAH; my %culAH;
foreach (split" ",$modules{CUL_HM}{AttrList}){ foreach (split" ",$modules{CUL_HM}{AttrList}){
my ($p,$v) = split(":",$_); my ($p,$v) = split(":",$_);
$culAH{$p} = ",$v,"; $culAH{$p} = $v?",$v,":"";
} }
foreach (split(",",$attrVal)){ foreach (split(",",$attrVal)){
my ($para,$val) = split(":",$_,2); my ($para,$val) = split(":",$_,2);
return "no value defined for $para" if (!defined "val"); return "no value defined for $para" if (!defined "val");
return "param $para not allowed" if (!grep /$para/,@defpara); return "param $para not allowed" if (!grep /$para/,@defpara);
return "param $para :$val not allowed, use $culAH{$para}" if ($culAH{$para} !~ m/,$val,/); return "param $para :$val not allowed, use $culAH{$para}" if ($culAH{$para} && $culAH{$para} !~ m/,$val,/);
$modules{CUL_HM}{AttrListDef}{$para} = $val; $modules{CUL_HM}{AttrListDef}{$para} = $val;
} }
} }

View File

@ -1458,8 +1458,9 @@ $culHmSubTypeDevSets{blindActuator} = $culHmSubTypeDevSets{switch};
,"on-till" =>"-time- [-ramptime-]..." ,"on-till" =>"-time- [-ramptime-]..."
,on =>"" ,on =>""
,off =>"" ,off =>""
,old =>""
,toggle =>"" ,toggle =>""
,pct =>"-value- ... [-ontime-] [-ramptime-]" ,pct =>"[-value-|old] ... [-ontime-] [-ramptime-]"
,stop =>"" ,stop =>""
,press =>"[long|short] [on|off|-peer-] [-repCount(long only)-] [-repDelay-] ..." ,press =>"[long|short] [on|off|-peer-] [-repCount(long only)-] [-repDelay-] ..."
,up =>"[-changeValue-] [-ontime-] [-ramptime-] ..." ,up =>"[-changeValue-] [-ontime-] [-ramptime-] ..."