2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-15 03:59:11 +00:00

ROOMMATE: only load default attributes once after user define

git-svn-id: https://svn.fhem.de/fhem/trunk@7626 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
jpawlowski 2015-01-19 00:21:25 +00:00
parent 0122f095ad
commit 1e1e739b6a

View File

@ -129,67 +129,22 @@ sub ROOMMATE_Define($$) {
readingsBeginUpdate($hash);
# attr alias
$name_attr = "alias";
unless ( exists( $attr{$name}{$name_attr} ) ) {
Log3 $name, 4, "ROOMMATE $name: created new attribute '$name_attr'";
$attr{$name}{$name_attr} = "Status";
}
# attr devStateIcon
$name_attr = "devStateIcon";
unless ( exists( $attr{$name}{$name_attr} ) ) {
Log3 $name, 4, "ROOMMATE $name: created new attribute '$name_attr'";
$attr{$name}{$name_attr} =
".*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown";
}
# attr group
$name_attr = "group";
unless ( exists( $attr{$name}{$name_attr} ) ) {
# set default settings on first define
if ($init_done) {
my $groupname = $name;
$groupname =~ s/^rr_//;
Log3 $name, 4, "ROOMMATE $name: created new attribute '$name_attr'";
$attr{$name}{group} = $groupname;
$attr{$name}{$name_attr} = $groupname;
}
$attr{$name}{alias} = "Status";
$attr{$name}{devStateIcon} =
".*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown";
$attr{$name}{icon} = "people_sensor";
$attr{$name}{rr_realname} = "alias";
$attr{$name}{sortby} = "1";
$attr{$name}{webCmd} = "state";
# attr icon
$name_attr = "icon";
unless ( exists( $attr{$name}{$name_attr} ) ) {
Log3 $name, 4, "ROOMMATE $name: created new attribute '$name_attr'";
$attr{$name}{$name_attr} = "people_sensor";
}
# attr room
$name_attr = "room";
if ( @registeredResidentgroups
&& exists( $attr{ $registeredResidentgroups[0] }{$name_attr} )
&& !exists( $attr{$name}{$name_attr} ) )
{
Log3 $name, 4, "ROOMMATE $name: created new attribute '$name_attr'";
$attr{$name}{$name_attr} =
$attr{ $registeredResidentgroups[0] }{$name_attr};
}
# attr sortby
$name_attr = "sortby";
unless ( exists( $attr{$name}{$name_attr} ) ) {
Log3 $name, 4, "ROOMMATE $name: created new attribute '$name_attr'";
$attr{$name}{$name_attr} = "0";
}
# attr webCmd
$name_attr = "webCmd";
unless ( exists( $attr{$name}{$name_attr} ) ) {
Log3 $name, 4, "ROOMMATE $name: created new attribute '$name_attr'";
$attr{$name}{$name_attr} = "state:mood";
$attr{$name}{room} = $attr{ $registeredResidentgroups[0] }{room}
if (@registeredResidentgroups && exists($attr{$registeredResidentgroups[0]}{room}));
}
# trigger for modified objects