2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-28 02:44:53 +00:00

fhem.pl: add good{Device|Reading}Name/make{Device|Reading}Name (Forum )

git-svn-id: https://svn.fhem.de/fhem/trunk@14924 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2017-08-19 11:19:54 +00:00
parent 77a7de4237
commit a5f4f3d2d6

@ -1883,7 +1883,7 @@ CommandDefine($$)
if(int(@a) < 2);
return "$name already defined, delete it first" if(defined($defs{$name}));
return "Invalid characters in name (not A-Za-z0-9._): $name"
if($name !~ m/^[a-z0-9._]*$/i);
if(!goodDeviceName($name));
my $m = $a[1];
if(!$modules{$m}) { # Perhaps just wrong case?
@ -2857,7 +2857,7 @@ CommandSetstate($$)
Log3 $d, 3, "WARNING: unsupported character in reading $sname ".
"(not A-Za-z/\\d_\\.-), notify the $d->{TYPE} module maintainer."
if($sname !~ m/^[A-Za-z\d_\.\-\/]+$/ && $sname !~ m/^\./);
if(!goodReadingName($sname));
if(!defined($d->{READINGS}{$sname}) ||
!defined($d->{READINGS}{$sname}{TIME}) ||
@ -5110,5 +5110,38 @@ getPawList($)
return @dob;
}
sub
goodDeviceName($)
{
my ($name) = @_;
return ($name && $name =~ m/^[a-z0-9._]*$/i);
}
sub
makeDeviceName($) # Convert non-valid characters to _
{
my ($name) = @_;
$name = "UNDEFINED" if(!defined($name));
$name =~ s/[^a-z0-9._]/_/gi;
return $name;
}
sub
goodReadingName($)
{
my ($name) = @_;
return ($name && ($name =~ m/^[a-z0-9._\-\/]+$/i || $name =~ m/^\./));
}
sub
makeReadingName($) # Convert non-valid characters to _
{
my ($name) = @_;
$name = "UNDEFINED" if(!defined($name));
return $name if($name =~ m/^\./);
$name =~ s/[^a-z0-9._\-\/]/_/gi;
return $name;
}
1;