mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-19 00:26:03 +00:00
bug fixed in HMInfo
git-svn-id: https://svn.fhem.de/fhem/trunk@6383 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
1db520bf94
commit
8c3a77893f
@ -3376,8 +3376,9 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
|
|||||||
if (!grep /^$regName$/,@regArr );
|
if (!grep /^$regName$/,@regArr );
|
||||||
|
|
||||||
my $reg = $culHmRegDefine->{$regName};
|
my $reg = $culHmRegDefine->{$regName};
|
||||||
|
my $conv = $reg->{c};
|
||||||
return $st." - ".$regName # give some help
|
return $st." - ".$regName # give some help
|
||||||
.($reg->{c} eq "lit"? " literal:".join(",",keys%{$reg->{lit}})." "
|
.($conv eq "lit"? " literal:".join(",",keys%{$reg->{lit}})." "
|
||||||
: " range:". $reg->{min}." to ".$reg->{max}.$reg->{u}
|
: " range:". $reg->{min}." to ".$reg->{max}.$reg->{u}
|
||||||
.($reg->{lit}?" special:".join(",",keys%{$reg->{lit}})." "
|
.($reg->{lit}?" special:".join(",",keys%{$reg->{lit}})." "
|
||||||
:""
|
:""
|
||||||
@ -3387,13 +3388,12 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
|
|||||||
if ($data eq "?");
|
if ($data eq "?");
|
||||||
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 (!($reg->{c} =~ m/^(lit|hex|min2time)$/)&&
|
if (!($conv =~ m/^(lit|hex|min2time)$/)&&
|
||||||
($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 ($reg->{c} eq 'lit' && !defined($reg->{lit}{$data}));
|
if ($conv eq 'lit' && !defined($reg->{lit}{$data}));
|
||||||
|
|
||||||
my $conv = $reg->{c};
|
if ($conv ne 'lit' && $reg->{lit} && $reg->{lit}{$data}){
|
||||||
if (!$conv && $reg->{lit} && $reg->{lit}{$data}){
|
|
||||||
$data = $reg->{lit}{$data}; #conv special value prior to calculation
|
$data = $reg->{lit}{$data}; #conv special value prior to calculation
|
||||||
}
|
}
|
||||||
$data *= $reg->{f} if($reg->{f});# obey factor befor possible conversion
|
$data *= $reg->{f} if($reg->{f});# obey factor befor possible conversion
|
||||||
@ -4153,8 +4153,7 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
|
|||||||
my ($pDev,$pCh) = unpack 'A6A2',$pId;
|
my ($pDev,$pCh) = unpack 'A6A2',$pId;
|
||||||
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
|
||||||
######################
|
|
||||||
#CUL_HM_PushCmdStack($hash,
|
|
||||||
my $msg = sprintf("3E%s%s%s40%02X%02X",
|
my $msg = sprintf("3E%s%s%s40%02X%02X",
|
||||||
$id,$dst,$pDev,
|
$id,$dst,$pDev,
|
||||||
hex($pCh)+$mode,
|
hex($pCh)+$mode,
|
||||||
@ -4164,12 +4163,6 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
|
|||||||
select(undef, undef, undef, $repDly);
|
select(undef, undef, undef, $repDly);
|
||||||
}
|
}
|
||||||
CUL_HM_SndCmd($hash, "++${flag}$msg");
|
CUL_HM_SndCmd($hash, "++${flag}$msg");
|
||||||
######################
|
|
||||||
|
|
||||||
#CUL_HM_PushCmdStack($hash, sprintf("++%s3E%s%s%s40%02X%02X",$flag,
|
|
||||||
# $id,$dst,$pDev,
|
|
||||||
# hex($pCh)+$mode,
|
|
||||||
# $pressCnt));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif($cmd eq "fwUpdate") { #################################################
|
elsif($cmd eq "fwUpdate") { #################################################
|
||||||
@ -4365,7 +4358,7 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
|
|||||||
}
|
}
|
||||||
|
|
||||||
# First the remote (one loop for on, one for off)
|
# First the remote (one loop for on, one for off)
|
||||||
if (!$target || $target =~ m/^(remote|both)$/){
|
if ($target =~ m/^(remote|both)$/){
|
||||||
my $burst;
|
my $burst;
|
||||||
if ($culHmRegModel->{$md}{peerNeedsBurst}|| #peerNeedsBurst supported
|
if ($culHmRegModel->{$md}{peerNeedsBurst}|| #peerNeedsBurst supported
|
||||||
$culHmRegType->{$st}{peerNeedsBurst}){
|
$culHmRegType->{$st}{peerNeedsBurst}){
|
||||||
@ -4407,7 +4400,7 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!$target || $target =~ m/^(actor|both)$/ ){
|
if ($target =~ m/^(actor|both)$/ ){
|
||||||
if ($modules{CUL_HM}{defptr}{$peerDst}){# is defined or ID only?
|
if ($modules{CUL_HM}{defptr}{$peerDst}){# is defined or ID only?
|
||||||
if ($pSt eq "virtual"){
|
if ($pSt eq "virtual"){
|
||||||
CUL_HM_ID2PeerList ($peerN,$dst.sprintf("%02X",$b[2]),$set);
|
CUL_HM_ID2PeerList ($peerN,$dst.sprintf("%02X",$b[2]),$set);
|
||||||
@ -5477,6 +5470,7 @@ sub CUL_HM_ID2PeerList ($$$) {
|
|||||||
$peerNames .= CUL_HM_peerChName($pId,$dId).",";
|
$peerNames .= CUL_HM_peerChName($pId,$dId).",";
|
||||||
}
|
}
|
||||||
$attr{$name}{peerIDs} = $peerIDs; # make it public
|
$attr{$name}{peerIDs} = $peerIDs; # make it public
|
||||||
|
|
||||||
my $dHash = CUL_HM_getDeviceHash($hash);
|
my $dHash = CUL_HM_getDeviceHash($hash);
|
||||||
my $st = AttrVal($dHash->{NAME},"subType","");
|
my $st = AttrVal($dHash->{NAME},"subType","");
|
||||||
my $md = AttrVal($dHash->{NAME},"model","");
|
my $md = AttrVal($dHash->{NAME},"model","");
|
||||||
@ -5894,8 +5888,9 @@ sub CUL_HM_getRegFromStore($$$$@) {#read a register from backup data
|
|||||||
} else { return " conv undefined - please contact admin";
|
} else { return " conv undefined - please contact admin";
|
||||||
}
|
}
|
||||||
$data /= $factor if ($factor);# obey factor after possible conversion
|
$data /= $factor if ($factor);# obey factor after possible conversion
|
||||||
if (!$conv && $reg->{litInv} && $reg->{litInv}{$data} ){
|
if ($conv ne "lit" && $reg->{litInv} && $reg->{litInv}{$data} ){
|
||||||
$data = $reg->{litInv}{$data};#conv special value past to calculation
|
$data = $reg->{litInv}{$data};#conv special value past to calculation
|
||||||
|
$unit = "";
|
||||||
}
|
}
|
||||||
return $convFlg.$data.$unit;
|
return $convFlg.$data.$unit;
|
||||||
}
|
}
|
||||||
@ -7707,6 +7702,7 @@ sub CUL_HM_tempListTmpl(@) { ##################################################
|
|||||||
<ul>
|
<ul>
|
||||||
<li><B><a href="#CUL_HMpeerChan">peerChan</a></B> see remote</li>
|
<li><B><a href="#CUL_HMpeerChan">peerChan</a></B> see remote</li>
|
||||||
<li><B><a name="CUL_HMpress"></a>press [long|short] [<peer>] [<repCount>] [<repDelay>] </B>
|
<li><B><a name="CUL_HMpress"></a>press [long|short] [<peer>] [<repCount>] [<repDelay>] </B>
|
||||||
|
<ul>
|
||||||
simulates button press for an actor from a peered sensor.
|
simulates button press for an actor from a peered sensor.
|
||||||
will be sent of type "long".
|
will be sent of type "long".
|
||||||
<li>[long|short] defines whether long or short press shall be simulated. Defaults to short
|
<li>[long|short] defines whether long or short press shall be simulated. Defaults to short
|
||||||
@ -7717,6 +7713,7 @@ sub CUL_HM_tempListTmpl(@) { ##################################################
|
|||||||
</li>
|
</li>
|
||||||
<li>[<repDelay>] Valid for long press only. defines wait time between the single messages.
|
<li>[<repDelay>] Valid for long press only. defines wait time between the single messages.
|
||||||
</li>
|
</li>
|
||||||
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><B>virtTemp <[off -10..50]><a name="CUL_HMvirtTemp"></a></B>
|
<li><B>virtTemp <[off -10..50]><a name="CUL_HMvirtTemp"></a></B>
|
||||||
simulates a thermostat. If peered to a device it periodically sends the
|
simulates a thermostat. If peered to a device it periodically sends the
|
||||||
@ -8965,11 +8962,13 @@ sub CUL_HM_tempListTmpl(@) { ##################################################
|
|||||||
<ul>
|
<ul>
|
||||||
<li><B><a href="#CUL_HMpeerChan">peerChan</a></B> siehe remote</li>
|
<li><B><a href="#CUL_HMpeerChan">peerChan</a></B> siehe remote</li>
|
||||||
<li><B><a name="CUL_HMpress"></a>press [long|short] [<peer>] [<repCount>] [<repDelay>] </B>
|
<li><B><a name="CUL_HMpress"></a>press [long|short] [<peer>] [<repCount>] [<repDelay>] </B>
|
||||||
|
<ul>
|
||||||
Simuliert den Tastendruck am Aktor eines gepeerted Sensors
|
Simuliert den Tastendruck am Aktor eines gepeerted Sensors
|
||||||
<li>[long|short] soll ein langer oder kurzer Taastendrucl simuliert werden? Default ist kurz. </li>
|
<li>[long|short] soll ein langer oder kurzer Taastendrucl simuliert werden? Default ist kurz. </li>
|
||||||
<li>[<peer>] legt fest, wessen peer's trigger simuliert werden soll.Default ist self(channelNo).</li>
|
<li>[<peer>] legt fest, wessen peer's trigger simuliert werden soll.Default ist self(channelNo).</li>
|
||||||
<li>[<repCount>] nur gueltig fuer long. wie viele messages sollen gesendet werden? (Laenge des Button press). Default ist 1.</li>
|
<li>[<repCount>] nur gueltig fuer long. wie viele messages sollen gesendet werden? (Laenge des Button press). Default ist 1.</li>
|
||||||
<li>[<repDelay>] nur gueltig fuer long. definiert die Zeit zwischen den einzelnen Messages. </li>
|
<li>[<repDelay>] nur gueltig fuer long. definiert die Zeit zwischen den einzelnen Messages. </li>
|
||||||
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><B>virtTemp <[off -10..50]><a name="CUL_HMvirtTemp"></a></B>
|
<li><B>virtTemp <[off -10..50]><a name="CUL_HMvirtTemp"></a></B>
|
||||||
Simuliert ein Thermostat. Wenn mit einem Gerät gepeert wird periodisch eine Temperatur gesendet,
|
Simuliert ein Thermostat. Wenn mit einem Gerät gepeert wird periodisch eine Temperatur gesendet,
|
||||||
|
@ -939,6 +939,8 @@ sub HMinfo_GetFn($@) {#########################################################
|
|||||||
}
|
}
|
||||||
$RegReply .= $peerLine."\n".$ptLine."\n";
|
$RegReply .= $peerLine."\n".$ptLine."\n";
|
||||||
foreach my $rN (sort keys %{$hash->{helper}{r}}){
|
foreach my $rN (sort keys %{$hash->{helper}{r}}){
|
||||||
|
$hash->{helper}{r}{$rN} =~ s/( o..)/$1 /g
|
||||||
|
if($rN =~ m/^MultiExec /); #shift thhis reading since it does not appear for short
|
||||||
$RegReply .= $rN.$hash->{helper}{r}{$rN}."\n";
|
$RegReply .= $rN.$hash->{helper}{r}{$rN}."\n";
|
||||||
}
|
}
|
||||||
delete $hash->{helper}{r};
|
delete $hash->{helper}{r};
|
||||||
@ -1584,11 +1586,15 @@ sub HMinfo_archConfigExec($) {################################################
|
|||||||
,"c"
|
,"c"
|
||||||
,"\^(".join("|",@archs).")\$")
|
,"\^(".join("|",@archs).")\$")
|
||||||
,"strict"));
|
,"strict"));
|
||||||
return (@eN ? join(",",@eN) : "");
|
return "$id,".(@eN ? join(",",@eN) : "");
|
||||||
}
|
}
|
||||||
sub HMinfo_archConfigPost($) {################################################
|
sub HMinfo_archConfigPost($) {################################################
|
||||||
my $post = shift;
|
my @arr = split(",",shift);
|
||||||
push @{$modules{CUL_HM}{helper}{confUpdt}},split(",",$post) if ($post);
|
my ($name,$id) = split(":",$arr[0]);
|
||||||
|
shift @arr;
|
||||||
|
push @{$modules{CUL_HM}{helper}{confUpdt}},@arr;
|
||||||
|
delete $defs{$name}{nb}{$id};
|
||||||
|
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user