diff --git a/fhem/FHEM/10_ZWave.pm b/fhem/FHEM/10_ZWave.pm index 877bfacff..a0b3fdab3 100755 --- a/fhem/FHEM/10_ZWave.pm +++ b/fhem/FHEM/10_ZWave.pm @@ -681,16 +681,19 @@ ZWave_mfsParse($$$$) } sub -ZWave_cleanString($) +ZWave_cleanString($$) { - my ($c) = @_; + my ($c, $postfix) = @_; $c =~ s/[.,].*$//g; $c =~ s/[^A-Z]+(.)/uc($1)/gei; $c =~ s/[^A-Z]//i; + my $shortened=0; while(length($c) > 32) { # might be endless loop $c =~ s/[A-Z][^A-Z]*$//; + $shortened++; } - return $c; + $c .= $postfix if($shortened); + return ($c, $shortened);; } ################################### @@ -727,15 +730,20 @@ ZWave_configParseModel($) $h{index} = $1 if($line =~ m/index="([^"]*)"/i); # 1, 2, etc $h{read_only} = $1 if($line =~ m/read_only="([^"]*)"/i); # true,false $h{write_only} = $1 if($line =~ m/write_only="([^"]*)"/i); # true,false - $cmdName = "config".ZWave_cleanString($h{label}); + my ($cmd,$shortened) = ZWave_cleanString($h{label}, ""); + $cmdName = "config$cmd"; + $h{Help} = ""; + $h{Help} .= "Full text for $cmdName is $h{label}
" if($shortened); $hash{$cmdName} = \%h; } - $hash{$cmdName}{Help} = $1 if($line =~ m+^(.*)$+); + $hash{$cmdName}{Help} .= "$1
" if($line =~ m+^(.*)$+); if($line =~ m/^gzclose();