diff --git a/73_AutoShuttersControl.pm b/73_AutoShuttersControl.pm index 01d8d6f..aac9a3c 100644 --- a/73_AutoShuttersControl.pm +++ b/73_AutoShuttersControl.pm @@ -2702,6 +2702,7 @@ sub CreateSunRiseSetShuttersTimer($$) { my ( $hash, $shuttersDev ) = @_; my $name = $hash->{NAME}; my $shuttersDevHash = $defs{$shuttersDev}; + my %funcHash; $shutters->setShuttersDev($shuttersDev); return if ( IsDisabled($name) ); @@ -2759,16 +2760,10 @@ sub CreateSunRiseSetShuttersTimer($$) { ); readingsEndUpdate( $hash, 1 ); + RemoveInternalTimer( $shutters->getInTimerFuncHash ) if ( defined( $shutters->getInTimerFuncHash ) ); - ## kleine Hilfe für InternalTimer damit ich alle benötigten Variablen an die Funktion übergeben kann welche von Internal Timer aufgerufen wird. - my %funcHash = ( - hash => $hash, - shuttersdevice => $shuttersDev, - sunsettime => $shuttersSunsetUnixtime, - sunrisetime => $shuttersSunriseUnixtime - ); ## Setzt den Privacy Modus für die Sichtschutzfahrt auf den Status 0 ## 1 bedeutet das PrivacyDown Timer aktiviert wurde, 2 beudet das er im privacyDown ist @@ -2778,9 +2773,6 @@ sub CreateSunRiseSetShuttersTimer($$) { $shutters->setPrivacyDownStatus(0) if ( not defined( $shutters->getPrivacyDownStatus ) ); - ## Ich brauche beim löschen des InternalTimer den Hash welchen ich mitgegeben habe,dieser muss gesichert werden - $shutters->setInTimerFuncHash( \%funcHash ); - ## Abfrage für die Sichtschutzfahrt am Morgen vor dem eigentlichen kompletten öffnen if ( $shutters->getPrivacyUpTime > 0 ) { $shuttersSunriseUnixtime = @@ -2803,6 +2795,18 @@ sub CreateSunRiseSetShuttersTimer($$) { ReadingsVal( $shuttersDev, 'ASC_Time_PrivacyDriveDown', 'none' ) ); } + + ## kleine Hilfe für InternalTimer damit ich alle benötigten Variablen an die Funktion übergeben kann welche von Internal Timer aufgerufen wird. + %funcHash = ( + hash => $hash, + shuttersdevice => $shuttersDev, + sunsettime => $shuttersSunsetUnixtime, + sunrisetime => $shuttersSunriseUnixtime + ); + ## Ich brauche beim löschen des InternalTimer den Hash welchen ich mitgegeben habe,dieser muss gesichert werden + $shutters->setInTimerFuncHash( \%funcHash ); + + InternalTimer( $shuttersSunsetUnixtime, 'FHEM::AutoShuttersControl::SunSetShuttersAfterTimerFn', \%funcHash ); InternalTimer( $shuttersSunriseUnixtime, @@ -7343,7 +7347,7 @@ sub getblockAscDrivesAfterManual {

{ ascAPIget('Getter','SHUTTERS_DEVICENAME') }

- +
@@ -7447,7 +7451,7 @@ sub getblockAscDrivesAfterManual { -
Getter Description
+
@@ -7460,7 +7464,7 @@ sub getblockAscDrivesAfterManual {

{ ascAPIget('Getter') }

-
GetterErläuterung
+
@@ -7703,7 +7707,7 @@ sub getblockAscDrivesAfterManual { -
Getter Description
+
@@ -7735,7 +7739,7 @@ sub getblockAscDrivesAfterManual { -
GetterErläuterung
FreezeStatus1=soft, 2=Daytime, 3=hard
NoDelayWurde die Behandlung von Offset deaktiviert (Beispiel bei Fahrten über Fensterevents)
+
GetterErläuterung
QueryShuttersPosRückgabewert 1 bedeutet das die aktuelle Position des Rollos unterhalb der Valueposition ist. 0 oder nichts bedeutet oberhalb der Valueposition.
@@ -7744,7 +7748,7 @@ sub getblockAscDrivesAfterManual { - +
@@ -7776,7 +7780,7 @@ sub getblockAscDrivesAfterManual { ], "release_status": "under develop", "license": "GPL_2", - "version": "v0.8.2", + "version": "v0.8.3", "author": [ "Marko Oldenburg " ],
GetterErläuterung
OutTemp aktuelle Außentemperatur sofern ein Sensor definiert ist, wenn nicht kommt -100 als Wert zurück
ResidentsStatusaktueller Status des Residents Devices