59_HCS: Query $init_done only in DefFn.

git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@15782 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
hjr 2018-01-05 10:04:16 +00:00
parent 397bb60ae3
commit df9b44b3d1

View File

@ -30,7 +30,7 @@ sub HCS_Initialize($$);
sub HCS_Define($$); sub HCS_Define($$);
sub HCS_Undef($$); sub HCS_Undef($$);
sub HCS_Notify($$); sub HCS_Notify($$);
sub HCS_DoInit($); sub HCS_DoInit($$);
sub HCS_checkState($); sub HCS_checkState($);
sub HCS_Get($@); sub HCS_Get($@);
sub HCS_Set($@); sub HCS_Set($@);
@ -117,7 +117,7 @@ HCS_Define($$) {
if(!defined($defs{$a[2]})) { if(!defined($defs{$a[2]})) {
my $ret = "Device $a[2] not defined. Please add this device first!"; my $ret = "Device $a[2] not defined. Please add this device first!";
Log 1, "$type $name $ret"; Log3 $name, 1, "$type $name $ret";
return $ret; return $ret;
} }
@ -125,7 +125,7 @@ HCS_Define($$) {
$hash->{STATE} = "Defined"; $hash->{STATE} = "Defined";
$hash->{NOTIFYDEV} = "global"; # NotifyFn nur aufrufen wenn global events (INITIALIZED) $hash->{NOTIFYDEV} = "global"; # NotifyFn nur aufrufen wenn global events (INITIALIZED)
HCS_DoInit($hash); HCS_DoInit($hash,$init_done);
return undef; return undef;
} }
@ -151,15 +151,15 @@ HCS_Notify($$) {
return if(!grep(m/^INITIALIZED$/, @{$dev->{CHANGED}}) && !grep(m/^REREADCFG$/, @{$dev->{CHANGED}})); return if(!grep(m/^INITIALIZED$/, @{$dev->{CHANGED}}) && !grep(m/^REREADCFG$/, @{$dev->{CHANGED}}));
return if(AttrVal($name,"disable","")); return if(AttrVal($name,"disable",""));
HCS_DoInit($hash); HCS_DoInit($hash,1);
return undef; return undef;
} }
##################################### #####################################
sub sub
HCS_DoInit($) { HCS_DoInit($$) {
my ($hash) = @_; my ($hash,$complete_init) = @_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my $type = $hash->{TYPE}; my $type = $hash->{TYPE};
@ -179,14 +179,14 @@ HCS_DoInit($) {
Log3 $name, 1, "$type $name unknown attribute mode '".$attr{$name}{mode}."'. Please use 'thermostat' or 'valve'."; Log3 $name, 1, "$type $name unknown attribute mode '".$attr{$name}{mode}."'. Please use 'thermostat' or 'valve'.";
return undef; return undef;
} }
$attr{$name}{thermostatThresholdOn} = AttrVal($name,"thermostatThresholdOn",$defaults{thermostatThresholdOn}); $attr{$name}{thermostatThresholdOn} = AttrVal($name,"thermostatThresholdOn",$defaults{thermostatThresholdOn});
$attr{$name}{thermostatThresholdOff} = AttrVal($name,"thermostatThresholdOff",$defaults{thermostatThresholdOff}); $attr{$name}{thermostatThresholdOff} = AttrVal($name,"thermostatThresholdOff",$defaults{thermostatThresholdOff});
$attr{$name}{valveThresholdOn} = AttrVal($name,"valveThresholdOn",$defaults{valveThresholdOn}); $attr{$name}{valveThresholdOn} = AttrVal($name,"valveThresholdOn",$defaults{valveThresholdOn});
$attr{$name}{valveThresholdOff} = AttrVal($name,"valveThresholdOff",$defaults{valveThresholdOff}); $attr{$name}{valveThresholdOff} = AttrVal($name,"valveThresholdOff",$defaults{valveThresholdOff});
$hash->{STATE} = "Initialized"; $hash->{STATE} = "Initialized";
if($init_done || defined($hash->{READINGS}{state})) { if($complete_init) {
my $ret = HCS_getValues($hash,0); my $ret = HCS_getValues($hash,0);
HCS_setState($hash,$ret); HCS_setState($hash,$ret);