2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-03 16:56:54 +00:00

98_weekprofile: fix defined {MASTERDEV}

git-svn-id: https://svn.fhem.de/fhem/trunk@10419 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
risiko79 2016-01-08 23:56:36 +00:00
parent 5689125718
commit 875d048d75

View File

@ -295,7 +295,7 @@ sub weekprofile_assignDev($)
my $me = $hash->{NAME};
my $prf = undef;
if ($hash->{MASTERDEV}->{NAME}) {
if (defined($hash->{MASTERDEV})) {
Log3 $me, 5, "$me(assignDev): assign to device $hash->{MASTERDEV}->{NAME}";
@ -388,8 +388,12 @@ sub weekprofile_Define($$)
my $me = $a[0];
$hash->{MASTERDEV}->{NAME} = undef;
$hash->{MASTERDEV}->{NAME} = $a[2] if (@a > 1);
my $devName = undef;
if (@a > 1) {
$devName = $a[2];
$devName =~ s/(^\s+|\s+$)//g;
}
$hash->{MASTERDEV}->{NAME} = $devName if (defined($devName));
$hash->{STATE} = "defined";
my @profiles = ();
@ -496,7 +500,7 @@ sub weekprofile_Set($$@)
if ( $prf->{NAME} eq $params[0]){
$prf->{DATA} = $data;
# automatic we send master profile to master device
if ($params[0] eq "master"){
if ( ($params[0] eq "master") && defined($hash->{MASTERDEV}) ){
weekprofile_sendDevProfile($hash->{MASTERDEV}->{NAME},$prf,$me);
} else {
weekprofile_writeProfilesToFile($hash);
@ -579,7 +583,7 @@ sub weekprofile_Set($$@)
$list.= " remove_profile";
if ($cmd eq 'remove_profile') {
return 'usage: remove_profile <name>' if(@params < 1);
return 'Error master profile can not removed' if($params[0] eq "master");
return 'Error master profile can not removed' if( ($params[0] eq "master") && defined($hash->{MASTERDEV}) );
return 'Error Remove last profile is not allowed' if(scalar(@{$hash->{PROFILES}}) == 1);
my ($delprf,$idx) = weekprofile_findPRF($hash,$params[0]);
@ -631,7 +635,7 @@ sub weekprofile_Notify($$)
}
}
if ($init_done && defined($own->{MASTERDEV}->{NAME}) &&
if ($init_done && defined($own->{MASTERDEV}) &&
($own->{MASTERDEV}->{NAME} eq $devName) &&
(@{$own->{PROFILES}} > 0) ) {
@ -686,7 +690,7 @@ sub weekprofile_writeProfilesToFile(@)
my ($hash) = @_;
my $me = $hash->{NAME};
my $start = (defined($hash->{MASTERDEV}->{NAME})) ? 1:0;
my $start = (defined($hash->{MASTERDEV})) ? 1:0;
my $prfCnt = scalar(@{$hash->{PROFILES}});
return if ($prfCnt <= $start);
@ -749,7 +753,7 @@ sub weekprofile_readProfilesFromFile(@)
$prfNew->{NAME} = $data[0];
$prfNew->{DATA} = $prfData;
if (!$hash->{MASTERDEV}->{NAME} && $rowCnt == 0) {
if (!$hash->{MASTERDEV} && $rowCnt == 0) {
$hash->{PROFILES}[0] = $prfNew; # replace default
} else {
push @{$hash->{PROFILES}}, $prfNew;
@ -836,6 +840,7 @@ sub weekprofile_findPRFDev($)
next if ("$module" ne "weekprofile");
next if (!defined($defs{$d}->{MASTERDEV}));
my $masterDev = $defs{$d}->{MASTERDEV}->{NAME};
next unless(defined($masterDev));
next if ($masterDev ne $device);