From 6f8d613d4beae9299c4d7910c30ec4d33fa92a07 Mon Sep 17 00:00:00 2001 From: martinp876 <> Date: Sat, 28 Nov 2015 09:53:59 +0000 Subject: [PATCH] HMInfo: remove test routines git-svn-id: https://svn.fhem.de/fhem/trunk@10026 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_HMinfo.pm | 238 ++++++++++++++++------------------------- 1 file changed, 95 insertions(+), 143 deletions(-) diff --git a/fhem/FHEM/98_HMinfo.pm b/fhem/FHEM/98_HMinfo.pm index 8c8efb4a8..6d14d5881 100644 --- a/fhem/FHEM/98_HMinfo.pm +++ b/fhem/FHEM/98_HMinfo.pm @@ -1140,7 +1140,7 @@ sub HMinfo_GetFn($@) {######################################################### $ret = ""; } else{ - $ret = HMinfo_configCheck (join(",",("$name;;",$opt,$filter))); + (undef,undef,undef,$ret) = split(";",HMinfo_configCheck (join(",",("$name;;",$opt,$filter))),4); $ret =~s/-ret-/\n/g; } } @@ -1211,57 +1211,6 @@ sub HMinfo_GetFn($@) {######################################################### "HMinfo_bpAbort", "$name:0"); $hash->{nb}{$id}{$_} = $bl->{$_} foreach (keys %{$bl}); $ret = ""; -################### -# # devicenameFilter -# my $RegReply = ""; -# my @noReg; -# foreach my $dName (HMinfo_getEntities($opt."v",$filter)){ -# my $regs = CUL_HM_Get(CUL_HM_name2Hash($dName),$dName,"reg","all"); -# if ($regs !~ m/[0-6]:/){ -# push @noReg,$dName; -# next; -# } -# my ($peerOld,$ptOld,$ptLine,$peerLine) = ("","",pack('A23',""),pack('A23',"")); -# foreach my $reg (split("\n",$regs)){ -# my ($peer,$h1) = split ("\t",$reg); -# $peer =~s/ //g; -# if ($peer !~ m/3:/){ -# $RegReply .= $reg."\n"; -# next; -# } -# next if (!$h1); -# $peer =~s/3://; -# my ($regN,$h2) = split (":",$h1); -# my ($pt,$rN) = unpack 'A2A*',$regN; -# if (!defined($hash->{helper}{r}{$rN})){ -# $hash->{helper}{r}{$rN}{v} = ""; -# $hash->{helper}{r}{$rN}{u} = pack('A5',""); -# } -# my ($val,$unit) = split (" ",$h2); -# $hash->{helper}{r}{$rN}{v} .= pack('A16',$val); -# $hash->{helper}{r}{$rN}{u} = pack('A5',"[".$unit."]") if ($unit); -# if ($pt ne $ptOld){ -# $ptLine .= pack('A16',$pt); -# $ptOld = $pt; -# } -# if ($peer ne $peerOld){ -# $peerLine .= pack('A32',$peer); -# $peerOld = $peer; -# } -# } -# $RegReply .= $peerLine."\n".$ptLine."\n"; -# 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 .= pack ('A18',$rN) -# .$hash->{helper}{r}{$rN}{u} -# .$hash->{helper}{r}{$rN}{v} -# ."\n"; -# } -# delete $hash->{helper}{r}; -# } -# $ret = "No regs found for:".join(",",sort @noReg)."\n\n" -# .$RegReply; } elsif($cmd eq "param") {##print param ---------------------------------- my @paramList; @@ -1323,10 +1272,10 @@ sub HMinfo_GetFn($@) {######################################################### ) .join"\n ", @model; } - elsif($cmd eq "overview") { - my @entities = HMinfo_getEntities($opt."d",$filter); - return HMI_overview(\@entities,\@a); - } +# elsif($cmd eq "overview") { +# my @entities = HMinfo_getEntities($opt."d",$filter); +# return HMI_overview(\@entities,\@a); +# } elsif($cmd eq "help") { $ret = HMInfo_help(); @@ -1491,32 +1440,32 @@ sub HMinfo_SetFn($@) {######################################################### sub HMInfo_help(){ ############################################################ return " Unknown argument choose one of " ."\n ---checks---" - ."\n get configCheck [] # perform regCheck and regCheck" - ."\n get regCheck [] # find incomplete or inconsistant register readings" - ."\n get peerCheck [] # find incomplete or inconsistant peer lists" + ."\n get configCheck [-typeFilter-] # perform regCheck and regCheck" + ."\n get regCheck [-typeFilter-] # find incomplete or inconsistant register readings" + ."\n get peerCheck [-typeFilter-] # find incomplete or inconsistant peer lists" ."\n ---actions---" - ."\n set saveConfig [] [] # stores peers and register with saveConfig" - ."\n set archConfig [-a] [] # as saveConfig but only if data of entity is complete" - ."\n set purgeConfig [] # purge content of saved configfile " - ."\n set loadConfig [] # restores register and peer readings if missing" - ."\n set verifyConfig [] # compare curent date with configfile,report differences" - ."\n set autoReadReg [] # trigger update readings if attr autoReadReg is set" - ."\n set tempList [][save|restore|verify|status|genPlot][]# handle tempList of thermostat devices" + ."\n set saveConfig [-typeFilter-] [-file-] # stores peers and register with saveConfig" + ."\n set archConfig [-a] [-file-] # as saveConfig but only if data of entity is complete" + ."\n set purgeConfig [-file-] # purge content of saved configfile " + ."\n set loadConfig [-typeFilter-] -file- # restores register and peer readings if missing" + ."\n set verifyConfig [-typeFilter-] -file- # compare curent date with configfile,report differences" + ."\n set autoReadReg [-typeFilter-] # trigger update readings if attr autoReadReg is set" + ."\n set tempList [-typeFilter-][save|restore|verify|status|genPlot][-filename-]# handle tempList of thermostat devices" ."\n ---infos---" ."\n set update # update HMindfo counts" - ."\n get register [] # devicefilter parse devicename. Partial strings supported" - ."\n get peerXref [] # peer cross-reference" - ."\n get models [] # list of models incl native parameter" - ."\n get protoEvents [] [short|long] # protocol status - names can be filtered" + ."\n get register [-typeFilter-] # devicefilter parse devicename. Partial strings supported" + ."\n get peerXref [-typeFilter-] # peer cross-reference" + ."\n get models [-typeFilter-] # list of models incl native parameter" + ."\n get protoEvents [-typeFilter-] [short|long] # protocol status - names can be filtered" ."\n get msgStat # view message statistic" - ."\n get param [] [] [] ... # displays params for all entities as table" - ."\n get rssi [] # displays receive level of the HM devices" + ."\n get param [-typeFilter-] [-param1-] [-param2-] ... # displays params for all entities as table" + ."\n get rssi [-typeFilter-] # displays receive level of the HM devices" ."\n last: most recent" ."\n avg: average overall" ."\n range: min to max value" ."\n count: number of events in calculation" ."\n ---clear status---" - ."\n set clear [] [Protocol|readings|msgStat|register|rssi]" + ."\n set clear [-typeFilter-] [Protocol|readings|msgStat|register|rssi]" ."\n Protocol # delete all protocol-events" ."\n readings # delete all readings" ."\n register # delete all register-readings" @@ -1526,27 +1475,27 @@ sub HMInfo_help(){ ############################################################ ."\n ---help---" ."\n get help #" ."\n ***footnote***" - ."\n [] : only matiching names are processed - partial names are possible" - ."\n [] : any match in the output are searched. " + ."\n [-nameFilter-] : only matiching names are processed - partial names are possible" + ."\n [-modelsFilter-] : any match in the output are searched. " ."\n" - ."\n set cpRegs " + ."\n set cpRegs -src:peer- -dst:peer-" ."\n copy register for a channel or behavior of channel/peer" - ."\n set templateDef ...] : [:] ... " + ."\n set templateDef -templateName- -param1[:-param2-...] -description- -reg1-:-val1- [-reg2-:-val2-] ... " ."\n define a template" - ."\n set templateSet [ ...] " + ."\n set templateSet -entity- -templateName- -peer:[long|short]- [-param1- ...] " ."\n write register according to a given template" - ."\n set templateDel " + ."\n set templateDel -entity- -templateName- -peer:[long|short]- " ."\n remove a template set" - ."\n set templateExe " + ."\n set templateExe -templateName-" ."\n write all assigned templates to the file" - ."\n get templateUsg " + ."\n get templateUsg -templateName-" ."\n show template usage" - ."\n get templateChk [] [ ...] " + ."\n get templateChk [-typeFilter-] -templateName- -peer:[long|short]- [-param1- ...] " ."\n compare whether register match the template values" - ."\n get templateList [] # gives a list of templates or a description of the named template" + ."\n get templateList [-templateName-] # gives a list of templates or a description of the named template" ."\n list all currently defined templates or the structure of a given template" ."\n ======= typeFilter options: supress class of devices ====" - ."\n set [-dcasev] [-f ] [params]" + ."\n set -name- -cmd- [-dcasev] [-f -filter-] [params]" ."\n entities according to list will be processed" ."\n d - device :include devices" ."\n c - channels :include channels" @@ -1934,16 +1883,19 @@ sub HMinfo_configCheck ($){ ################################################### next if ($tr eq "unused"); push @tlr,"$e: $tr" if($tr); } - $ret .= "\n\n templist mismatch \n ".join("\n ",@tlr) if (@tlr); - $ret .= "\n\n templateCheck: \n"; + $ret .= "\n\n templist mismatch \n ".join("\n ",sort @tlr) if (@tlr); + + @tlr = (); foreach my $dName (HMinfo_getEntities($opt."v",$filter)){ next if (!defined $defs{$dName}{helper}{tmpl}); foreach (keys %{$defs{$dName}{helper}{tmpl}}){ my ($p,$t)=split(">",$_); my $tck = HMinfo_templateChk($dName,$t,$p,split(" ",$defs{$dName}{helper}{tmpl}{$_})); - $ret .= "\n ".$tck if ($tck); + push @tlr,$tck if ($tck); } } + $ret .= "\n\n template mismatch \n ".join("\n ",sort @tlr) if (@tlr); + $ret =~ s/\n/-ret-/g; # replace return with a placeholder - we cannot transfere direct return "$id;$ret"; } @@ -2413,62 +2365,62 @@ sub HMinfo_noDup(@) {#return list with no duplicates########################### # $p1: regexp to select devicenames # $p2: list of internals, readings and attributes to be displayed. Comma-separated, case sensitive. # -#use vars qw($FW_encoding); #for handover from fhemweb -sub HMI_overview(@) { - my ($p1,$paramList)=@_; - my @dd = @{$p1}; - my @p2l = ("DEF","peerList"); - if (!defined($paramList)){ - @p2l=@{$paramList}; - } - ######### prepare html - my $html =''."\n" - .'' - ."\n" - .'\n"; - ######### loop for output - my $row=0; - foreach my $d (sort @dd) { - $html.=HMI_output($defs{$d},1,$row++,\@p2l); - foreach my $c (CUL_HM_getAssChnNames($d)) { - $html.=HMI_output($defs{$c},2,$row++,\@p2l); - } - } - $html.="
Device/Channel' - .join('',@p2l) - ."
\n"; - return ('text/html; charset=UTF-8',$html); -} #end sub HMI_overview - -sub HMI_output(@) { - my ($hash,$lvl,$drow,$l)=@_; - my @list = @{$l}; - my $n=$hash->{NAME}; - my $class= ($lvl==1)?'HMIdev':'HMIchn'; - ######### device/channel - my $html.='" - .($lvl==2?"   ":"") - ."$n<\/a>" - .''; - ######### further values - - foreach my $p (@list) { - $html.=""; - foreach my $pp (split(',',CUL_HM_Get($defs{$n},$n,"param",$p))) { - $pp =~ s/(.*)/$1<\/a>/ if (defined($defs{$pp})); - $pp = "" if($pp eq "undefined"); - $html.=$pp.', ' if ($pp !~ /HASH.*/); - } - $_ =~ s/(.*), $/$1/; - $html.=''; - } - $html.="\n"; - return $html; -} #end sub HMI_output +# use vars qw($FW_encoding); #for handover from fhemweb +# sub HMI_overview(@) { +# my ($p1,$paramList)=@_; +# my @dd = @{$p1}; +# my @p2l = ("DEF","peerList"); +# if (!defined($paramList)){ +# @p2l=@{$paramList}; +# } +# ######### prepare html +# my $html =''."\n" +# .'' +# ."\n" +# .'\n"; +# ######### loop for output +# my $row=0; +# foreach my $d (sort @dd) { +# $html.=HMI_output($defs{$d},1,$row++,\@p2l); +# foreach my $c (CUL_HM_getAssChnNames($d)) { +# $html.=HMI_output($defs{$c},2,$row++,\@p2l); +# } +# } +# $html.="
Device/Channel' +# .join('',@p2l) +# ."
\n"; +# return ('text/html; charset=UTF-8',$html); +# } #end sub HMI_overview +# +# sub HMI_output(@) { +# my ($hash,$lvl,$drow,$l)=@_; +# my @list = @{$l}; +# my $n=$hash->{NAME}; +# my $class= ($lvl==1)?'HMIdev':'HMIchn'; +# ######### device/channel +# my $html.='" +# .($lvl==2?"   ":"") +# ."
$n<\/a>" +# .''; +# ######### further values +# +# foreach my $p (@list) { +# $html.=""; +# foreach my $pp (split(',',CUL_HM_Get($defs{$n},$n,"param",$p))) { +# $pp =~ s/(.*)/$1<\/a>/ if (defined($defs{$pp})); +# $pp = "" if($pp eq "undefined"); +# $html.=$pp.', ' if ($pp !~ /HASH.*/); +# } +# $_ =~ s/(.*), $/$1/; +# $html.=''; +# } +# $html.="\n"; +# return $html; +# } #end sub HMI_output 1;