2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-20 07:16:03 +00:00

CUL_HM:remove : from Reading names

git-svn-id: https://svn.fhem.de/fhem/trunk@10215 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinp876 2015-12-20 18:08:27 +00:00
parent 249488a9fb
commit c173108821
2 changed files with 54 additions and 46 deletions

View File

@ -224,6 +224,12 @@ sub CUL_HM_updateConfig($){
foreach my $name (@{$modules{CUL_HM}{helper}{updtCfgLst}}){ foreach my $name (@{$modules{CUL_HM}{helper}{updtCfgLst}}){
my $hash = $defs{$name}; my $hash = $defs{$name};
next if (!$hash->{DEF}); # likely renamed next if (!$hash->{DEF}); # likely renamed
foreach my $read (grep/RegL_0.:/,keys%{$defs{$name}{READINGS}}){
my $readN = $read;
$readN =~ s/(RegL_0.):/$1\./;
$defs{$name}{READINGS}{$readN} = $defs{$name}{READINGS}{$read};
delete $defs{$name}{READINGS}{$read};
}
my $id = $hash->{DEF}; my $id = $hash->{DEF};
my $nAttr = $modules{CUL_HM}{helper}{hmManualOper};# no update for attr my $nAttr = $modules{CUL_HM}{helper}{hmManualOper};# no update for attr
@ -2825,8 +2831,8 @@ sub CUL_HM_parseCommon(@){#####################################################
delete $mhp->{devH}{cmdStack}; delete $mhp->{devH}{cmdStack};
delete $mhp->{devH}{helper}{prt}{rspWait}; delete $mhp->{devH}{helper}{prt}{rspWait};
delete $mhp->{devH}{helper}{prt}{rspWaitSec}; delete $mhp->{devH}{helper}{prt}{rspWaitSec};
delete $mhp->{devH}{READINGS}{"RegL_00:"}; delete $mhp->{devH}{READINGS}{"RegL_00."};
delete $mhp->{devH}{READINGS}{".RegL_00:"}; delete $mhp->{devH}{READINGS}{".RegL_00."};
if (!$modules{CUL_HM}{helper}{hmManualOper}){ if (!$modules{CUL_HM}{helper}{hmManualOper}){
$attr{$mhp->{devN}}{IODev} = $ioN; $attr{$mhp->{devN}}{IODev} = $ioN;
@ -2924,7 +2930,7 @@ sub CUL_HM_parseCommon(@){#####################################################
$ret = "done"; $ret = "done";
} }
} }
elsif($mhp->{mStp} eq "02" ||$mhp->{mStp} eq "03"){ #ParamResp================== elsif($mhp->{mStp} eq "02" ||$mhp->{mStp} eq "03"){ #ParamResp==============
my $mNoInt = hex($mhp->{mNo}); my $mNoInt = hex($mhp->{mNo});
if ( $pendType eq "RegisterRead" && if ( $pendType eq "RegisterRead" &&
($rspWait->{mNo} == $mNoInt || $rspWait->{mNo} == $mNoInt-1)){ ($rspWait->{mNo} == $mNoInt || $rspWait->{mNo} == $mNoInt-1)){
@ -2955,7 +2961,7 @@ sub CUL_HM_parseCommon(@){#####################################################
} }
my $lastAddr = hex($1) if ($data =~ m/.*(..):..$/); my $lastAddr = hex($1) if ($data =~ m/.*(..):..$/);
my $peer = $rspWait->{forPeer}; my $peer = $rspWait->{forPeer};
my $regLNp = "RegL_$list:$peer";# pure, no expert my $regLNp = "RegL_".$list.".".$peer;# pure, no expert
my $regLN = ($mhp->{cHash}{helper}{expert}{raw}?"":".").$regLNp; my $regLN = ($mhp->{cHash}{helper}{expert}{raw}?"":".").$regLNp;
if ( defined $lastAddr if ( defined $lastAddr
&& ( $lastAddr > $rspWait->{nAddr} && ( $lastAddr > $rspWait->{nAddr}
@ -2988,7 +2994,7 @@ sub CUL_HM_parseCommon(@){#####################################################
elsif($mhp->{mStp} eq "04"){ #ParamChange=================================== elsif($mhp->{mStp} eq "04"){ #ParamChange===================================
my($peerID,$list,$data) = ($1,$2,$3,$4) if($mhp->{p} =~ m/^04..(........)(..)(.*)/); my($peerID,$list,$data) = ($1,$2,$3,$4) if($mhp->{p} =~ m/^04..(........)(..)(.*)/);
CUL_HM_m_setCh($mhp,substr($mhp->{p},2,2)); CUL_HM_m_setCh($mhp,substr($mhp->{p},2,2));
my $regLNp = "RegL_$list:".CUL_HM_id2Name($peerID); my $regLNp = "RegL_".$list.".".CUL_HM_id2Name($peerID);
$regLNp =~ s/broadcast//; $regLNp =~ s/broadcast//;
$regLNp =~ s/ /_/g; #remove blanks $regLNp =~ s/ /_/g; #remove blanks
my $regLN = ($mhp->{cHash}{helper}{expert}{raw}?"":".").$regLNp; my $regLN = ($mhp->{cHash}{helper}{expert}{raw}?"":".").$regLNp;
@ -3630,7 +3636,7 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
return "$a[2] not specified. choose 0-15 for brightness" if ($a[2]>15); return "$a[2] not specified. choose 0-15 for brightness" if ($a[2]>15);
return "$a[3] not specified. choose 0-127 for duration" if ($a[3]>127); return "$a[3] not specified. choose 0-127 for duration" if ($a[3]>127);
return "unsupported for channel, use $devName" if (!$roleD); return "unsupported for channel, use $devName" if (!$roleD);
splice @a,1,3, ("regBulk","RegL_00:",sprintf("04:%02X",$a[2]),sprintf("08:%02X",$a[3]*2)); splice @a,1,3, ("regBulk","RegL_00.",sprintf("04:%02X",$a[2]),sprintf("08:%02X",$a[3]*2));
} }
elsif($cmd eq "text") { ################################################# reg elsif($cmd eq "text") { ################################################# reg
my ($bn,$l1, $l2) = ($chn,$a[2],$a[3]); # Create CONFIG_WRITE_INDEX string my ($bn,$l1, $l2) = ($chn,$a[2],$a[3]); # Create CONFIG_WRITE_INDEX string
@ -3653,7 +3659,7 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
$l2 =~ s/\\_/ /g; $l2 =~ s/\\_/ /g;
$l2 = substr($l2."\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 0, 12); $l2 = substr($l2."\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 0, 12);
$l2 =~ s/(.)/sprintf(" %02X:%02X",$s++,ord($1))/ge; $l2 =~ s/(.)/sprintf(" %02X:%02X",$s++,ord($1))/ge;
@a = ($a[0],"regBulk","RegL_01:",split(" ",$l1.$l2)); @a = ($a[0],"regBulk","RegL_01.",split(" ",$l1.$l2));
} }
elsif($cmd =~ m /(displayMode|displayTemp|displayTempUnit|controlMode)/) { elsif($cmd =~ m /(displayMode|displayTemp|displayTempUnit|controlMode)/) {
if ($md =~ m/(HM-CC-TC|ROTO_ZEL-STG-RM-FWT)/){#controlMode different for RT if ($md =~ m/(HM-CC-TC|ROTO_ZEL-STG-RM-FWT)/){#controlMode different for RT
@ -3681,13 +3687,13 @@ sub CUL_HM_Set($@) {#+++++++++++++++++ set command+++++++++++++++++++++++++++++
my $cHash = CUL_HM_id2Hash($dst."02"); my $cHash = CUL_HM_id2Hash($dst."02");
$cHash->{helper}{partyReg} = sprintf("61%02X62%02X0000",$eH,$days); $cHash->{helper}{partyReg} = sprintf("61%02X62%02X0000",$eH,$days);
$cHash->{helper}{partyReg} =~ s/(..)(..)/ $1:$2/g; $cHash->{helper}{partyReg} =~ s/(..)(..)/ $1:$2/g;
if ($cHash->{READINGS}{"RegL_06:"}){#remove old settings if ($cHash->{READINGS}{"RegL_06."}){#remove old settings
$cHash->{READINGS}{"RegL_06:"}{VAL} =~ s/ 61:.*//; $cHash->{READINGS}{"RegL_06."}{VAL} =~ s/ 61:.*//;
$cHash->{READINGS}{"RegL_06:"}{VAL} =~ s/ 00:00//; $cHash->{READINGS}{"RegL_06."}{VAL} =~ s/ 00:00//;
$cHash->{READINGS}{"RegL_06:"}{VAL} .= $cHash->{helper}{partyReg}; $cHash->{READINGS}{"RegL_06."}{VAL} .= $cHash->{helper}{partyReg};
} }
else{ else{
$cHash->{READINGS}{"RegL_06:"}{VAL} = $cHash->{helper}{partyReg}; $cHash->{READINGS}{"RegL_06."}{VAL} = $cHash->{helper}{partyReg};
} }
CUL_HM_pushConfig($hash,$id,$dst,2,"000000","00",6, CUL_HM_pushConfig($hash,$id,$dst,2,"000000","00",6,
sprintf("61%02X62%02X",$eH,$days),$prep); sprintf("61%02X62%02X",$eH,$days),$prep);
@ -5644,7 +5650,7 @@ sub CUL_HM_pushConfig($$$$$$$$@) {#generate messages to config data to register
my $peerN = ($peerAddr ne "000000")?CUL_HM_peerChName($peerAddr.$peerChn,$dst):""; my $peerN = ($peerAddr ne "000000")?CUL_HM_peerChName($peerAddr.$peerChn,$dst):"";
$peerN =~ s/broadcast//; $peerN =~ s/broadcast//;
$peerN =~ s/ /_/g;#remote blanks $peerN =~ s/ /_/g;#remote blanks
my $regLNp = "RegL_".$list.":".$peerN; my $regLNp = "RegL_".$list.".".$peerN;
my $regPre = ($hash->{helper}{expert}{raw}?"":"."); my $regPre = ($hash->{helper}{expert}{raw}?"":".");
my $regLN = $regPre.$regLNp; my $regLN = $regPre.$regLNp;
#--- copy data from readings to shadow #--- copy data from readings to shadow
@ -5688,7 +5694,7 @@ sub CUL_HM_pushConfig($$$$$$$$@) {#generate messages to config data to register
$change =~ s/(\ |:)//g; $change =~ s/(\ |:)//g;
my $peerN; my $peerN;
$changed = 1;# yes, we did $changed = 1;# yes, we did
($list,$peerN) = ($1,$2) if($nrn =~ m/RegL_(..):(.*)/); ($list,$peerN) = ($1,$2) if($nrn =~ m/RegL_(..)\.(.*)/);
if ($peerN){($peerAddr,$peerChn) = unpack('A6A2', CUL_HM_name2Id($peerN,$hash));} if ($peerN){($peerAddr,$peerChn) = unpack('A6A2', CUL_HM_name2Id($peerN,$hash));}
else {($peerAddr,$peerChn) = ('000000','00');} else {($peerAddr,$peerChn) = ('000000','00');}
CUL_HM_updtRegDisp($hash,$list,$peerAddr.$peerChn); CUL_HM_updtRegDisp($hash,$list,$peerAddr.$peerChn);
@ -5811,7 +5817,7 @@ sub CUL_HM_responseSetup($$) {#store all we need to handle the response
$peer ="" if($list !~ m/^0[347]$/); $peer ="" if($list !~ m/^0[347]$/);
#empty val since reading will be cumulative #empty val since reading will be cumulative
my $rlName = ($chnhash->{helper}{expert}{raw}?"":".")."RegL_".$list.":".$peer; my $rlName = ($chnhash->{helper}{expert}{raw}?"":".")."RegL_".$list.".".$peer;
$chnhash->{READINGS}{$rlName}{VAL}=""; $chnhash->{READINGS}{$rlName}{VAL}="";
my $chnHash = $modules{CUL_HM}{defptr}{$dst.$chn}; my $chnHash = $modules{CUL_HM}{defptr}{$dst.$chn};
delete ($chnhash->{READINGS}{$rlName}{TIME}); delete ($chnhash->{READINGS}{$rlName}{TIME});
@ -6795,7 +6801,7 @@ sub CUL_HM_getRegFromStore($$$$@) {#read a register from backup data
my $dst = substr(CUL_HM_name2Id($name),0,6); my $dst = substr(CUL_HM_name2Id($name),0,6);
if(!$regLN){ if(!$regLN){
$regLN = ($hash->{helper}{expert}{raw}?"":".") $regLN = ($hash->{helper}{expert}{raw}?"":".")
.sprintf("RegL_%02X:",$list) .sprintf("RegL_%02X.",$list)
.($peerId?CUL_HM_peerChName($peerId, .($peerId?CUL_HM_peerChName($peerId,
$dst) $dst)
:""); :"");
@ -6925,7 +6931,7 @@ sub CUL_HM_updtRegDisp($$$) {
my @changedRead; my @changedRead;
my $regLN = ($hash->{helper}{expert}{raw}?"":".") my $regLN = ($hash->{helper}{expert}{raw}?"":".")
.sprintf("RegL_%02X:",$listNo) .sprintf("RegL_%02X.",$listNo)
.($peerId?CUL_HM_peerChName($peerId,$devId):""); .($peerId?CUL_HM_peerChName($peerId,$devId):"");
if (($md eq "HM-MOD-Re-8") && $listNo == 0){#handle Fw bug if (($md eq "HM-MOD-Re-8") && $listNo == 0){#handle Fw bug
@ -6987,7 +6993,7 @@ sub CUL_HM_refreshRegs($){ # renew all register readings from Regl_
my $peers = ReadingsVal($name,"peerList",""); my $peers = ReadingsVal($name,"peerList","");
my $dH = CUL_HM_getDeviceHash($defs{$name}); my $dH = CUL_HM_getDeviceHash($defs{$name});
foreach(grep /\.?RegL_/,keys %{$defs{$name}{READINGS}}){ foreach(grep /\.?RegL_/,keys %{$defs{$name}{READINGS}}){
my ($l,$p) = ($1,$2) if($_ =~ m/RegL_(..):(.*)/); my ($l,$p) = ($1,$2) if($_ =~ m/RegL_(..)\.(.*)/);
my $ps = $p; my $ps = $p;
$ps =~ s/_chn:.*//; $ps =~ s/_chn:.*//;
if (!$p || $peers =~ m /$ps/){ if (!$p || $peers =~ m /$ps/){
@ -7158,11 +7164,11 @@ sub CUL_HM_4DisText($) { # convert text for 4dis
my ($hash)=@_; my ($hash)=@_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my $regPre = ($hash->{helper}{expert}{raw}?"":"."); my $regPre = ($hash->{helper}{expert}{raw}?"":".");
my $reg1 = ReadingsVal($name,$regPre."RegL_01:" ,""); my $reg1 = ReadingsVal($name,$regPre."RegL_01." ,"");
my $pref = ""; my $pref = "";
if ($hash->{helper}{shadowReg}{"RegL_01:"}){ if ($hash->{helper}{shadowReg}{"RegL_01."}){
$pref = "set_"; $pref = "set_";
$reg1 = $hash->{helper}{shadowReg}{"RegL_01:"}; $reg1 = $hash->{helper}{shadowReg}{"RegL_01."};
} }
my %txt; my %txt;
foreach my $sAddr (54,70){ foreach my $sAddr (54,70){
@ -7187,8 +7193,8 @@ sub CUL_HM_TCtempReadings($) {# parse TC temperature readings
my ($hash)=@_; my ($hash)=@_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my $regPre = ($hash->{helper}{expert}{raw}?"":"."); my $regPre = ($hash->{helper}{expert}{raw}?"":".");
my $reg5 = ReadingsVal($name,$regPre."RegL_05:" ,""); my $reg5 = ReadingsVal($name,$regPre."RegL_05." ,"");
my $reg6 = ReadingsVal($name,$regPre."RegL_06:" ,""); my $reg6 = ReadingsVal($name,$regPre."RegL_06." ,"");
{ #update readings in device - oldfashioned style, copy from Readings { #update readings in device - oldfashioned style, copy from Readings
my @histVals; my @histVals;
foreach my $var ("displayMode","displayTemp","controlMode","decalcDay","displayTempUnit","day-temp","night-temp","party-temp"){ foreach my $var ("displayMode","displayTemp","controlMode","decalcDay","displayTempUnit","day-temp","night-temp","party-temp"){
@ -7213,7 +7219,7 @@ sub CUL_HM_TCtempReadings($) {# parse TC temperature readings
if ( $reg6 # ugly handling to add vanishing party register if ( $reg6 # ugly handling to add vanishing party register
&& $reg6 !~ m/ 61:/ && $reg6 !~ m/ 61:/
&& $hash->{helper}{partyReg}){ && $hash->{helper}{partyReg}){
$hash->{READINGS}{"RegL_06:"}{VAL} =~s/ 00:00/$hash->{helper}{partyReg}/; $hash->{READINGS}{"RegL_06."}{VAL} =~s/ 00:00/$hash->{helper}{partyReg}/;
} }
} }
else{ else{
@ -7243,8 +7249,8 @@ sub CUL_HM_TCtempReadings($) {# parse TC temperature readings
foreach (@time){$_=hex($_)*10}; foreach (@time){$_=hex($_)*10};
foreach (@temp){$_=hex($_)/2}; foreach (@temp){$_=hex($_)/2};
push (@changedRead,"R_tempList_State:". push (@changedRead,"R_tempList_State:".
(($hash->{helper}{shadowReg}{"RegL_05:"} || (($hash->{helper}{shadowReg}{"RegL_05."} ||
$hash->{helper}{shadowReg}{"RegL_06:"} )?"set":"verified")); $hash->{helper}{shadowReg}{"RegL_06."} )?"set":"verified"));
for (my $day = 0; $day < 7; $day++){ for (my $day = 0; $day < 7; $day++){
my $tSpan = 0; my $tSpan = 0;
my $dayRead = ""; my $dayRead = "";
@ -7280,7 +7286,7 @@ sub CUL_HM_TCITRTtempReadings($$@) {# parse RT - TC-IT temperature readings
my $ln = length($idxN{$lst})?substr($idxN{$lst},0,2):""; my $ln = length($idxN{$lst})?substr($idxN{$lst},0,2):"";
delete $hash->{READINGS}{$_} delete $hash->{READINGS}{$_}
foreach (grep !/_/,grep /tempList$ln/,keys %{$hash->{READINGS}}); foreach (grep !/_/,grep /tempList$ln/,keys %{$hash->{READINGS}});
my $tempRegs = ReadingsVal($name,$regPre."RegL_0$lst:",""); my $tempRegs = ReadingsVal($name,$regPre."RegL_0$lst.","");
if ($tempRegs !~ m/00:00/){ if ($tempRegs !~ m/00:00/){
for (my $day = 0;$day<7;$day++){ for (my $day = 0;$day<7;$day++){
push (@changedRead,"R_$idxN{$lst}${day}_tempList".$days[$day].":incomplete"); push (@changedRead,"R_$idxN{$lst}${day}_tempList".$days[$day].":incomplete");
@ -7295,9 +7301,9 @@ sub CUL_HM_TCITRTtempReadings($$@) {# parse RT - TC-IT temperature readings
$r1[hex($a)] = $d; $r1[hex($a)] = $d;
} }
if ($hash->{helper}{shadowReg}{"RegL_0$lst:"}){ if ($hash->{helper}{shadowReg}{"RegL_0$lst."}){
my $ch = 0; my $ch = 0;
foreach(split " ",$hash->{helper}{shadowReg}{"RegL_0$lst:"}){ foreach(split " ",$hash->{helper}{shadowReg}{"RegL_0$lst."}){
my ($a,$d) = split ":",$_; my ($a,$d) = split ":",$_;
$a = hex($a); $a = hex($a);
$ch = 1 if ((!$r1[$a] || $r1[$a] ne $d) && $a >= 20); $ch = 1 if ((!$r1[$a] || $r1[$a] ne $d) && $a >= 20);
@ -8547,7 +8553,7 @@ sub CUL_HM_tempListTmpl(@) { ##################################################
the 'internal links' it is necessary to issue <br> the 'internal links' it is necessary to issue <br>
'set &lt;name&gt; <a href="#CUL_HMregSet">regSet</a> intKeyVisib visib'<br> 'set &lt;name&gt; <a href="#CUL_HMregSet">regSet</a> intKeyVisib visib'<br>
or<br> or<br>
'set &lt;name&gt; <a href="#CUL_HMregBulk">regBulk</a> RegL_0: 2:81'<br> 'set &lt;name&gt; <a href="#CUL_HMregBulk">regBulk</a> RegL_0. 2:81'<br>
Reset it by replacing '81' with '01'<br> example:<br> Reset it by replacing '81' with '01'<br> example:<br>
@ -8621,8 +8627,8 @@ sub CUL_HM_tempListTmpl(@) { ##################################################
format.<br> format.<br>
Example:<br> Example:<br>
<ul><code> <ul><code>
set myChannel regBulk RegL_00: 02:01 0A:17 0B:43 0C:BF 15:FF 00:00<br> set myChannel regBulk RegL_00. 02:01 0A:17 0B:43 0C:BF 15:FF 00:00<br>
RegL_03:FB_Btn_07 RegL_03.FB_Btn_07
01:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:44 0C:54 0D:93 0E:00 0F:00 11:C8 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 1A:00 1B:00 1C:00 1D:FF 1E:93 1F:00 81:00 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:44 8C:54 8D:93 8E:00 8F:00 91:C8 92:00 93:00 94:00 95:00 96:00 97:00 98:00 99:00 9A:00 9B:00 9C:00 9D:05 9E:93 9F:00 00:00<br> 01:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:44 0C:54 0D:93 0E:00 0F:00 11:C8 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 1A:00 1B:00 1C:00 1D:FF 1E:93 1F:00 81:00 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:44 8C:54 8D:93 8E:00 8F:00 91:C8 92:00 93:00 94:00 95:00 96:00 97:00 98:00 99:00 9A:00 9B:00 9C:00 9D:05 9E:93 9F:00 00:00<br>
set myblind regBulk 01 0B:10<br> set myblind regBulk 01 0B:10<br>
set myblind regBulk 01 0C:00<br> set myblind regBulk 01 0C:00<br>
@ -9881,7 +9887,7 @@ sub CUL_HM_tempListTmpl(@) { ##################################################
zu bekommen ist es notwendig folgendes zu erstellen:<br> zu bekommen ist es notwendig folgendes zu erstellen:<br>
'set &lt;name&gt; <a href="#CUL_HMregSet">regSet</a> intKeyVisib visib'<br> 'set &lt;name&gt; <a href="#CUL_HMregSet">regSet</a> intKeyVisib visib'<br>
oder<br> oder<br>
'set &lt;name&gt; <a href="#CUL_HMregBulk">regBulk</a> RegL_0: 2:81'<br> 'set &lt;name&gt; <a href="#CUL_HMregBulk">regBulk</a> RegL_0. 2:81'<br>
Zur&uuml;cksetzen l&auml;sst es sich indem '81' mit '01' ersetzt wird.<br> example:<br> Zur&uuml;cksetzen l&auml;sst es sich indem '81' mit '01' ersetzt wird.<br> example:<br>
<ul><code> <ul><code>
@ -9957,8 +9963,8 @@ sub CUL_HM_tempListTmpl(@) { ##################################################
&lt;addr1:data1&gt; ist die Liste der Register im Hex-Format.<br> &lt;addr1:data1&gt; ist die Liste der Register im Hex-Format.<br>
Beispiel:<br> Beispiel:<br>
<ul><code> <ul><code>
set myChannel regBulk RegL_00: 02:01 0A:17 0B:43 0C:BF 15:FF 00:00<br> set myChannel regBulk RegL_00. 02:01 0A:17 0B:43 0C:BF 15:FF 00:00<br>
RegL_03:FB_Btn_07 RegL_03.FB_Btn_07
01:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:44 0C:54 0D:93 0E:00 0F:00 11:C8 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 1A:00 1B:00 1C:00 1D:FF 1E:93 1F:00 81:00 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:44 8C:54 8D:93 8E:00 8F:00 91:C8 92:00 93:00 94:00 95:00 96:00 97:00 98:00 99:00 9A:00 9B:00 9C:00 9D:05 9E:93 9F:00 00:00<br> 01:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:44 0C:54 0D:93 0E:00 0F:00 11:C8 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 1A:00 1B:00 1C:00 1D:FF 1E:93 1F:00 81:00 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:44 8C:54 8D:93 8E:00 8F:00 91:C8 92:00 93:00 94:00 95:00 96:00 97:00 98:00 99:00 9A:00 9B:00 9C:00 9D:05 9E:93 9F:00 00:00<br>
set myblind regBulk 01 0B:10<br> set myblind regBulk 01 0B:10<br>
set myblind regBulk 01 0C:00<br> set myblind regBulk 01 0C:00<br>

View File

@ -1562,7 +1562,7 @@ sub HMinfo_verifyConfig($@) {##################################################
} }
} }
elsif($cmd eq "regBulk"){ elsif($cmd eq "regBulk"){
next if($param !~ m/RegL_0[0-9]:/); next if($param !~ m/RegL_0[0-9][:\.]/);#allow . and : for the time to convert to . only
$param =~ s/\.RegL/RegL/; $param =~ s/\.RegL/RegL/;
my ($reg,$data) = split(" ",$param,2); my ($reg,$data) = split(" ",$param,2);
my $eReg = ReadingsVal($eN,($defs{$eN}{helper}{expert}{raw}?"":".").$reg,""); my $eReg = ReadingsVal($eN,($defs{$eN}{helper}{expert}{raw}?"":".").$reg,"");
@ -1688,13 +1688,14 @@ sub HMinfo_loadConfig($@) {####################################################
} }
} }
elsif($cmd eq "regBulk"){ elsif($cmd eq "regBulk"){
next if($param !~ m/RegL_0[0-9]:/); next if($param !~ m/RegL_0[0-9][:\.]/);#allow . and : for the time to convert to . only
$param =~ s/\.RegL/RegL/; $param =~ s/\.RegL/RegL/;
$param = ".".$param if (!$defs{$eN}{helper}{expert}{raw}); $param = ".".$param if (!$defs{$eN}{helper}{expert}{raw});
my ($reg,$data) = split(" ",$param,2); my ($reg,$data) = split(" ",$param,2);
my @rla = CUL_HM_reglUsed($eN); my @rla = CUL_HM_reglUsed($eN);
next if (!$rla[0]); next if (!$rla[0]);
my $rl = join",",@rla; my $rl = join",",@rla;
$reg =~ s/(RegL_0.):/$1\./;# conversion - : not allowed anymore. Update old versions
my $r2 = $reg; my $r2 = $reg;
$r2 =~ s/^\.//; $r2 =~ s/^\.//;
next if ($rl !~ m/$r2/); next if ($rl !~ m/$r2/);
@ -1722,7 +1723,7 @@ sub HMinfo_loadConfig($@) {####################################################
foreach my $reg (keys %{$changes{$eN}}){ foreach my $reg (keys %{$changes{$eN}}){
$defs{$eN}{READINGS}{$reg}{VAL} = $changes{$eN}{$reg}{d}; $defs{$eN}{READINGS}{$reg}{VAL} = $changes{$eN}{$reg}{d};
$defs{$eN}{READINGS}{$reg}{TIME} = $changes{$eN}{$reg}{t}; $defs{$eN}{READINGS}{$reg}{TIME} = $changes{$eN}{$reg}{t};
my ($list,$pN) = ($1,$2) if ($reg =~ m/RegL_(..):(.*)/); my ($list,$pN) = ($1,$2) if ($reg =~ m/RegL_(..)\.(.*)/);
next if (!$list); next if (!$list);
my $pId = CUL_HM_peerChId($pN,substr($defs{$eN}{DEF},0,6)); my $pId = CUL_HM_peerChId($pN,substr($defs{$eN}{DEF},0,6));
CUL_HM_updtRegDisp($defs{$eN},$list,$pId); CUL_HM_updtRegDisp($defs{$eN},$list,$pId);
@ -1763,6 +1764,7 @@ sub HMinfo_purgeConfig($) {####################################################
my ($cmd,$eN,$typ,$p1,$p2) = split(" ",$command,5); my ($cmd,$eN,$typ,$p1,$p2) = split(" ",$command,5);
if ($cmd eq "set" && $typ eq "regBulk"){ if ($cmd eq "set" && $typ eq "regBulk"){
$p1 =~ s/\.RegL_/RegL_/; $p1 =~ s/\.RegL_/RegL_/;
$p1 =~ s/(RegL_0.):/$1\./;#replace old : with .
$typ .= " $p1"; $typ .= " $p1";
$p1 = $p2; $p1 = $p2;
} }
@ -1787,10 +1789,10 @@ sub HMinfo_purgeConfig($) {####################################################
split",",$purgeH{$eN}{$cmd}{$typ}; split",",$purgeH{$eN}{$cmd}{$typ};
} }
elsif($typ =~ m/^regBulk/){# elsif($typ =~ m/^regBulk/){#
if ($typ !~ m/regBulk RegL_..:(self..)?$/){# only if peer is mentioned if ($typ !~ m/regBulk RegL_..\.(self..)?$/){# only if peer is mentioned
my $found = 0; my $found = 0;
foreach my $p (@peers){ foreach my $p (@peers){
if ($typ =~ m/regBulk RegL_..:$p/){ if ($typ =~ m/regBulk RegL_..\.$p/){
$found = 1; $found = 1;
last; last;
} }
@ -2341,17 +2343,17 @@ sub HMinfo_cpRegs(@){##########################################################
return "source peer not in peerlist" if ($attr{$srcCh}{peerIDs} !~ m/$srcPid/); return "source peer not in peerlist" if ($attr{$srcCh}{peerIDs} !~ m/$srcPid/);
return "destination peer not in peerlist" if ($attr{$dstCh}{peerIDs} !~ m/$dstPid/); return "destination peer not in peerlist" if ($attr{$dstCh}{peerIDs} !~ m/$dstPid/);
if ($defs{$srcCh}{READINGS}{"RegL_03:".$srcP}) {$srcRegLn = "RegL_03:".$srcP} if ($defs{$srcCh}{READINGS}{"RegL_03.".$srcP}) {$srcRegLn = "RegL_03.".$srcP}
elsif($defs{$srcCh}{READINGS}{".RegL_03:".$srcP}) {$srcRegLn = ".RegL_03:".$srcP} elsif($defs{$srcCh}{READINGS}{".RegL_03.".$srcP}) {$srcRegLn = ".RegL_03.".$srcP}
elsif($defs{$srcCh}{READINGS}{"RegL_04:".$srcP}) {$srcRegLn = "RegL_04:".$srcP} elsif($defs{$srcCh}{READINGS}{"RegL_04.".$srcP}) {$srcRegLn = "RegL_04.".$srcP}
elsif($defs{$srcCh}{READINGS}{".RegL_04:".$srcP}) {$srcRegLn = ".RegL_04:".$srcP} elsif($defs{$srcCh}{READINGS}{".RegL_04.".$srcP}) {$srcRegLn = ".RegL_04.".$srcP}
$dstRegLn = $srcRegLn; $dstRegLn = $srcRegLn;
$dstRegLn =~ s/:.*/:/; $dstRegLn =~ s/:.*/:/;
$dstRegLn .= $dstP; $dstRegLn .= $dstP;
} }
else{ else{
if ($defs{$srcCh}{READINGS}{"RegL_01:"}) {$srcRegLn = "RegL_01:"} if ($defs{$srcCh}{READINGS}{"RegL_01."}) {$srcRegLn = "RegL_01."}
elsif($defs{$srcCh}{READINGS}{".RegL_01:"}) {$srcRegLn = ".RegL_01:"} elsif($defs{$srcCh}{READINGS}{".RegL_01."}) {$srcRegLn = ".RegL_01."}
$dstRegLn = $srcRegLn; $dstRegLn = $srcRegLn;
} }
return "source register not available" if (!$srcRegLn); return "source register not available" if (!$srcRegLn);