10_CUL_HM:repair peerSmart
git-svn-id: https://svn.fhem.de/fhem/trunk@22069 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
@@ -634,7 +634,7 @@ sub CUL_HM_Undef($$) {###############################
|
|||||||
if ($chn){# delete a channel
|
if ($chn){# delete a channel
|
||||||
my $devHash = $defs{$devName};
|
my $devHash = $defs{$devName};
|
||||||
delete $devHash->{"channel_$chn"} if ($devName);
|
delete $devHash->{"channel_$chn"} if ($devName);
|
||||||
$devHash->{helper}{role}{chn}=1 if($chn eq "01");# return chan 01 role
|
$devHash->{helper}{role}{chn} = 1 if($chn eq "01");# return chan 01 role
|
||||||
}
|
}
|
||||||
else{# delete a device
|
else{# delete a device
|
||||||
CommandDelete(undef,$hash->{$_}) foreach (grep(/^channel_/,keys %{$hash}));
|
CommandDelete(undef,$hash->{$_}) foreach (grep(/^channel_/,keys %{$hash}));
|
||||||
@@ -3977,6 +3977,7 @@ sub CUL_HM_Get($@) {#+++++++++++++++++ get command+++++++++++++++++++++++++++++
|
|||||||
$info .= join("\n",sort @arr);
|
$info .= join("\n",sort @arr);
|
||||||
$info .= "\n\n Sets ------\n";
|
$info .= "\n\n Sets ------\n";
|
||||||
$hash->{helper}{cmds}{TmplTs}=gettimeofday();# force re-arrange of template commands
|
$hash->{helper}{cmds}{TmplTs}=gettimeofday();# force re-arrange of template commands
|
||||||
|
$hash->{helper}{cmds}{cmdKey}="";
|
||||||
$info .= join("\n",map{if($_ !~ m/]../){(my $foo = $_) =~ s/\|/\n\t/g; $foo;}else{$_}} sort (CUL_HM_SetList($name)));
|
$info .= join("\n",map{if($_ !~ m/]../){(my $foo = $_) =~ s/\|/\n\t/g; $foo;}else{$_}} sort (CUL_HM_SetList($name)));
|
||||||
|
|
||||||
#my $a = CUL_HMTmplSetCmd($name)." ";
|
#my $a = CUL_HMTmplSetCmd($name)." ";
|
||||||
@@ -4189,7 +4190,12 @@ sub CUL_HM_SetList($) {#+++++++++++++++++ get command basic list++++++++++++++++
|
|||||||
if( $culHmChanSets->{$md."xx"} && $roleC){foreach(keys %{$culHmChanSets->{$md."xx"}} ){push @arr1,"$_:".${$culHmChanSets->{$md."xx"}}{$_} }};
|
if( $culHmChanSets->{$md."xx"} && $roleC){foreach(keys %{$culHmChanSets->{$md."xx"}} ){push @arr1,"$_:".${$culHmChanSets->{$md."xx"}}{$_} }};
|
||||||
if( $culHmChanSets->{$md.$chn} && $roleC){foreach(keys %{$culHmChanSets->{$md.$chn}} ){push @arr1,"$_:".${$culHmChanSets->{$md.$chn}}{$_} }};
|
if( $culHmChanSets->{$md.$chn} && $roleC){foreach(keys %{$culHmChanSets->{$md.$chn}} ){push @arr1,"$_:".${$culHmChanSets->{$md.$chn}}{$_} }};
|
||||||
if( $culHmFunctSets->{$fkt} && $roleC){foreach(keys %{$culHmFunctSets->{$fkt}} ){push @arr1,"$_:".${$culHmFunctSets->{$fkt}}{$_} }};
|
if( $culHmFunctSets->{$fkt} && $roleC){foreach(keys %{$culHmFunctSets->{$fkt}} ){push @arr1,"$_:".${$culHmFunctSets->{$fkt}}{$_} }};
|
||||||
|
my $pl = CUL_HM_getPeerOption($name);
|
||||||
|
$pl =~ s/,/|/g;
|
||||||
|
push @arr1,"peerSmart:[$pl]" if ($pl);
|
||||||
|
|
||||||
my @arr1cmd = CUL_HM_noDup(@arr1);
|
my @arr1cmd = CUL_HM_noDup(@arr1);
|
||||||
|
|
||||||
$hash->{helper}{cmds}{cmdList} = \@arr1cmd;
|
$hash->{helper}{cmds}{cmdList} = \@arr1cmd;
|
||||||
$hash->{helper}{cmds}{cmdKey} = $cmdKey;
|
$hash->{helper}{cmds}{cmdKey} = $cmdKey;
|
||||||
}
|
}
|
||||||
@@ -4211,32 +4217,6 @@ sub CUL_HM_SetList($) {#+++++++++++++++++ get command basic list++++++++++++++++
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (@{$hash->{helper}{cmds}{cmdList}},@{$hash->{helper}{cmds}{TmplCmds}});
|
return (@{$hash->{helper}{cmds}{cmdList}},@{$hash->{helper}{cmds}{TmplCmds}});
|
||||||
# foreach(@arr1){
|
|
||||||
# next if(!$_);
|
|
||||||
# my ($cmdS,$val) = split(":",$_,2);
|
|
||||||
# if (!$val){ # no agruments possible
|
|
||||||
# $_ = "$cmdS:noArg";
|
|
||||||
# }
|
|
||||||
# elsif($val !~ m/^\[.*\]$/ ||
|
|
||||||
# $val =~ m/\[.*\[/ ||
|
|
||||||
# $val =~ m/(\<|\>)]/
|
|
||||||
# ){
|
|
||||||
# $_ = $cmdS;
|
|
||||||
# }
|
|
||||||
# else{
|
|
||||||
# $val =~ s/(\[|\])//g;
|
|
||||||
# my @vArr = split('\|',$val);
|
|
||||||
# foreach (@vArr){
|
|
||||||
# if ($_ =~ m/(.*)\.\.(.*)/ ){
|
|
||||||
# my @list = map { ($_.".0", $_+0.5) } (($1+0)..($2+0));
|
|
||||||
# pop @list;
|
|
||||||
# $_ = join(",",@list);
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# $_ = "$cmdS:".join(",",@vArr);
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
# @arr1 = ("--") if (!scalar @arr1);
|
|
||||||
}
|
}
|
||||||
sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
|
sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
|
||||||
my ($hash, @a) = @_;
|
my ($hash, @a) = @_;
|
||||||
@@ -4308,9 +4288,6 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
|
|||||||
@cmdArr = ("--") if (!scalar @cmdArr);
|
@cmdArr = ("--") if (!scalar @cmdArr);
|
||||||
my $usg = "Unknown argument $cmd, choose one of ".join(" ",sort @cmdArr)." ";
|
my $usg = "Unknown argument $cmd, choose one of ".join(" ",sort @cmdArr)." ";
|
||||||
|
|
||||||
my $pl = CUL_HM_getPeerOption($name);
|
|
||||||
$usg .= " peerSmart:$pl" if ($pl);
|
|
||||||
|
|
||||||
$usg =~ s/ pct/ pct:slider,0,1,100/;
|
$usg =~ s/ pct/ pct:slider,0,1,100/;
|
||||||
$usg =~ s/ pctSlat/ pctSlat:slider,0,1,100/;
|
$usg =~ s/ pctSlat/ pctSlat:slider,0,1,100/;
|
||||||
$usg =~ s/ virtual/ virtual:slider,1,1,50/;
|
$usg =~ s/ virtual/ virtual:slider,1,1,50/;
|
||||||
@@ -4825,6 +4802,7 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
|
|||||||
return "value:$data out of range $reg->{min} to $reg->{max} for Reg \""
|
return "value:$data out of range $reg->{min} to $reg->{max} for Reg \""
|
||||||
.$regName."\""
|
.$regName."\""
|
||||||
if (!($conv =~ m/^(lit|hex|min2time)$/)&&
|
if (!($conv =~ m/^(lit|hex|min2time)$/)&&
|
||||||
|
$data !~ m/^set_/ &&
|
||||||
($data < $reg->{min} ||$data > $reg->{max})); # none number
|
($data < $reg->{min} ||$data > $reg->{max})); # none number
|
||||||
return"invalid value. use:". join(",",sort keys%{$reg->{lit}})
|
return"invalid value. use:". join(",",sort keys%{$reg->{lit}})
|
||||||
if ($conv eq 'lit' && !defined($reg->{lit}{$data}));
|
if ($conv eq 'lit' && !defined($reg->{lit}{$data}));
|
||||||
@@ -5994,7 +5972,7 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
|
|||||||
my ($pDev,$pCh) = unpack 'A6A2',CUL_HM_name2Id($peer,$devHash)."01";
|
my ($pDev,$pCh) = unpack 'A6A2',CUL_HM_name2Id($peer,$devHash)."01";
|
||||||
return "button cannot be identified" if (!$pCh);
|
return "button cannot be identified" if (!$pCh);
|
||||||
delete $hash->{helper}{dlvl};#stop desiredLevel supervision
|
delete $hash->{helper}{dlvl};#stop desiredLevel supervision
|
||||||
my $msg = sprintf("3E%s%s%s%s%02X%02X",
|
my $msg = sprintf("3E%s%s%s%s%02X%02X%s",
|
||||||
$id,$dst,$pDev,$modeCode
|
$id,$dst,$pDev,$modeCode
|
||||||
,hex($pCh)+$mode
|
,hex($pCh)+$mode
|
||||||
,$hash->{helper}{count}
|
,$hash->{helper}{count}
|
||||||
@@ -8766,8 +8744,8 @@ sub CUL_HM_getRegInfo($) { #
|
|||||||
my $devHash = CUL_HM_getDeviceHash($hash);
|
my $devHash = CUL_HM_getDeviceHash($hash);
|
||||||
my $st = AttrVal ($devHash->{NAME},"subType", "" );
|
my $st = AttrVal ($devHash->{NAME},"subType", "" );
|
||||||
my $md = CUL_HM_getAliasModel($hash);#AttrVal ($devHash->{NAME},"model" , "" );
|
my $md = CUL_HM_getAliasModel($hash);#AttrVal ($devHash->{NAME},"model" , "" );
|
||||||
my $roleD = $hash->{helper}{role}{dev};
|
my $roleD = $hash->{helper}{role}{dev} ? 1 : 0;
|
||||||
my $roleC = $hash->{helper}{role}{chn};
|
my $roleC = $hash->{helper}{role}{chn} ? 1 : 0;
|
||||||
my $chn = $roleD ? "00" : InternalVal($hash->{NAME} ,"chanNo" ,"00");
|
my $chn = $roleD ? "00" : InternalVal($hash->{NAME} ,"chanNo" ,"00");
|
||||||
my @regArr = CUL_HM_getRegN($st,$md,$chn);
|
my @regArr = CUL_HM_getRegN($st,$md,$chn);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user