diff --git a/fhem/FHEM/50_HP1000.pm b/fhem/FHEM/50_HP1000.pm index 330f891dc..7dd2d3b5c 100755 --- a/fhem/FHEM/50_HP1000.pm +++ b/fhem/FHEM/50_HP1000.pm @@ -98,6 +98,9 @@ sub HP1000_Define($$) { # create global unique device definition $modules{HP1000}{defptr} = $hash; + RemoveInternalTimer($hash); + InternalTimer( gettimeofday() + 120, "HP1000_SetAliveState", $hash ); + return undef; } @@ -111,6 +114,8 @@ sub HP1000_Undefine($$) { # release global unique device definition delete $modules{HP1000}{defptr}; + RemoveInternalTimer($hash); + return undef; } @@ -120,6 +125,26 @@ sub HP1000_Undefine($$) { # ############################################################################################################ +##################################### +sub HP1000_SetAliveState($;$) { + my ( $hash, $alive ) = @_; + my $name = $hash->{NAME}; + + Log3 $name, 5, "HP1000 $name: called function HP1000_SetAliveState()"; + RemoveInternalTimer($hash); + + my $activity = "dead"; + $activity = "alive" if ($alive); + + readingsBeginUpdate($hash); + readingsBulkUpdateIfChanged( $hash, "Activity", $activity ); + readingsEndUpdate( $hash, 1 ); + + InternalTimer( gettimeofday() + 120, "HP1000_SetAliveState", $hash ); + + return; +} + ################################### sub HP1000_CGI() { @@ -171,6 +196,8 @@ sub HP1000_CGI() { $hash = $defs{$name}; + HP1000_SetAliveState( $hash, 1 ); + $hash->{SWVERSION} = $webArgs->{softwaretype}; $hash->{INTERVAL} = ( $hash->{SYSTEMTIME_UTC}