mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-10 08:04:00 +00:00
75_msgConfig.pm: new setter addLocation
git-svn-id: https://svn.fhem.de/fhem/trunk@9816 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
1c69000c74
commit
e966257d92
@ -184,25 +184,61 @@ sub msgConfig_Undefine($$) {
|
||||
sub msgConfig_Set($@) {
|
||||
my ( $hash, @a ) = @_;
|
||||
my $name = $hash->{NAME};
|
||||
my $what = "";
|
||||
shift @a;
|
||||
my $what = shift @a;
|
||||
|
||||
Log3 $name, 5, "msgConfig $name: called function msgConfig_Set()";
|
||||
|
||||
my @msgTypes =
|
||||
( "audio", "light", "mail", "push", "screen" );
|
||||
|
||||
$what = $a[1];
|
||||
|
||||
# cleanReadings
|
||||
if ( lc($what) eq "cleanreadings" ) {
|
||||
my $device = defined($a[2]) ? $a[2] : ".*";
|
||||
my $device = defined($a[0]) ? $a[0] : ".*";
|
||||
|
||||
return fhem ("deletereading $device fhemMsg.*", 1);
|
||||
}
|
||||
|
||||
# addLocation
|
||||
elsif ( lc($what) eq "addlocation" ) {
|
||||
my $location = join(" ", @a);
|
||||
my $group = AttrVal($name, "group", "msgConfig");
|
||||
my $room = AttrVal($name, "room", "");
|
||||
my $return = "";
|
||||
|
||||
return "Missing argument 'location'"
|
||||
if ($location eq "");
|
||||
|
||||
my $device = "msgRoom_" . $location;
|
||||
$device =~ s/[\s\t-]+/_/g;
|
||||
|
||||
return "Device $device is already existing"
|
||||
if (defined($defs{$device}) && $defs{$device}{TYPE} ne "dummy");
|
||||
|
||||
if (!defined($defs{$device})) {
|
||||
$return = fhem ("define $device dummy", 1);
|
||||
$return .= "Device $device was created"
|
||||
if ($return eq "");
|
||||
} else {
|
||||
$return = "Existing dummy device $device was updated";
|
||||
}
|
||||
|
||||
$attr{$device}{group} = $group if (!defined($attr{$device}{group}));
|
||||
$attr{$device}{room} = $room if (!defined($attr{$device}{room}) && $room ne "");
|
||||
$attr{$device}{comment} = "Auto-created by $name" if (!defined($attr{$device}{comment}));
|
||||
$attr{$device}{userattr} .= " msgLocationName" if (defined($attr{$device}{userattr}) && $attr{$device}{userattr} !~ /^msgLocationName$|^msgLocationName\s|\smsgLocationName\s|\smsgLocationName$/);
|
||||
$attr{$device}{userattr} = "msgLocationName" if (!defined($attr{$device}{userattr}));
|
||||
$attr{$device}{msgLocationName} = $location;
|
||||
|
||||
$attr{$name}{msgLocationDevs} .= ",".$device if (defined($attr{$name}{msgLocationDevs}) && $attr{$name}{msgLocationDevs} !~ /^$device\$|^$device,|,$device,|,$device$/);
|
||||
$attr{$name}{msgLocationDevs} = $device if (!defined($attr{$name}{msgLocationDevs}));
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
else {
|
||||
return
|
||||
"Unknown argument $what, choose one of cleanReadings";
|
||||
"Unknown argument $what, choose one of cleanReadings addLocation";
|
||||
}
|
||||
}
|
||||
|
||||
@ -210,20 +246,19 @@ sub msgConfig_Set($@) {
|
||||
sub msgConfig_Get($@) {
|
||||
my ( $hash, @a ) = @_;
|
||||
my $name = $hash->{NAME};
|
||||
my $what = "";
|
||||
shift @a;
|
||||
my $what = shift @a;
|
||||
|
||||
Log3 $name, 5, "msgConfig $name: called function msgConfig_Get()";
|
||||
|
||||
my @msgTypes =
|
||||
( "audio", "light", "mail", "push", "screen" );
|
||||
|
||||
$what = $a[1];
|
||||
|
||||
# routeCmd
|
||||
if ( lc($what) eq "routecmd" ) {
|
||||
my $return = "";
|
||||
my $msgTypesReq = defined($a[2]) ? lc($a[2]) : join( ',', @msgTypes );
|
||||
my $devicesReq = defined($a[3]) ? $a[3] : $name;
|
||||
my $msgTypesReq = defined($a[0]) ? lc($a[0]) : join( ',', @msgTypes );
|
||||
my $devicesReq = defined($a[1]) ? $a[1] : $name;
|
||||
my $cmdSchema = msgSchema::get();
|
||||
my $UserDeviceTypes = "";
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user