Ready for package and object methode

This commit is contained in:
Marko Oldenburg 2020-06-03 18:00:56 +02:00
parent 4e0e9203c9
commit c19f9728a0
8 changed files with 175 additions and 196 deletions

View File

@ -46,9 +46,6 @@ use utf8;
use GPUtils qw(GP_Import); use GPUtils qw(GP_Import);
my $shutters = $FHEM::Automation::ShuttersControl::shutters;
my $ascDev = $FHEM::Automation::ShuttersControl::ascDev;
## Import der FHEM Funktionen ## Import der FHEM Funktionen
BEGIN { BEGIN {
GP_Import( GP_Import(
@ -74,7 +71,7 @@ sub getBrightnessMinVal {
return $self->{ASC_brightness}->{triggermin} return $self->{ASC_brightness}->{triggermin}
if ( exists( $self->{ASC_brightness}->{LASTGETTIME} ) if ( exists( $self->{ASC_brightness}->{LASTGETTIME} )
&& ( gettimeofday() - $self->{ASC_brightness}->{LASTGETTIME} ) < 2 ); && ( gettimeofday() - $self->{ASC_brightness}->{LASTGETTIME} ) < 2 );
$ascDev->getBrightnessMaxVal; $FHEM::Automation::ShuttersControl::ascDev->getBrightnessMaxVal;
return $self->{ASC_brightness}->{triggermin}; return $self->{ASC_brightness}->{triggermin};
} }
@ -212,7 +209,7 @@ sub getTempSensorReading {
return $self->{ASC_tempSensor}->{reading} return $self->{ASC_tempSensor}->{reading}
if ( exists( $self->{ASC_tempSensor}->{LASTGETTIME} ) if ( exists( $self->{ASC_tempSensor}->{LASTGETTIME} )
&& ( gettimeofday() - $self->{ASC_tempSensor}->{LASTGETTIME} ) < 2 ); && ( gettimeofday() - $self->{ASC_tempSensor}->{LASTGETTIME} ) < 2 );
$ascDev->_getTempSensor; $FHEM::Automation::ShuttersControl::ascDev->_getTempSensor;
return $self->{ASC_tempSensor}->{reading}; return $self->{ASC_tempSensor}->{reading};
} }
@ -244,7 +241,7 @@ sub getResidentsReading {
return $self->{ASC_residentsDev}->{reading} return $self->{ASC_residentsDev}->{reading}
if ( exists( $self->{ASC_residentsDev}->{LASTGETTIME} ) if ( exists( $self->{ASC_residentsDev}->{LASTGETTIME} )
&& ( gettimeofday() - $self->{ASC_residentsDev}->{LASTGETTIME} ) < 2 ); && ( gettimeofday() - $self->{ASC_residentsDev}->{LASTGETTIME} ) < 2 );
$ascDev->_getResidentsDev; $FHEM::Automation::ShuttersControl::ascDev->_getResidentsDev;
return $self->{ASC_residentsDev}->{reading}; return $self->{ASC_residentsDev}->{reading};
} }
@ -275,7 +272,7 @@ sub _getRainSensor {
: ( $self->{ASC_rainSensor}->{triggermax} * 0 ) : ( $self->{ASC_rainSensor}->{triggermax} * 0 )
); );
$self->{ASC_rainSensor}->{shuttersClosedPos} = $self->{ASC_rainSensor}->{shuttersClosedPos} =
( $pos ne 'none' ? $pos : $shutters->getClosedPos ); ( $pos ne 'none' ? $pos : $FHEM::Automation::ShuttersControl::shutters->getClosedPos );
$self->{ASC_rainSensor}->{waitingTime} = $self->{ASC_rainSensor}->{waitingTime} =
( $pos ne 'none' ? $wait : 900 ); ( $pos ne 'none' ? $wait : 900 );
@ -290,7 +287,7 @@ sub getRainSensorReading {
return $self->{ASC_rainSensor}->{reading} return $self->{ASC_rainSensor}->{reading}
if ( exists( $self->{ASC_rainSensor}->{LASTGETTIME} ) if ( exists( $self->{ASC_rainSensor}->{LASTGETTIME} )
&& ( gettimeofday() - $self->{ASC_rainSensor}->{LASTGETTIME} ) < 2 ); && ( gettimeofday() - $self->{ASC_rainSensor}->{LASTGETTIME} ) < 2 );
$ascDev->_getRainSensor; $FHEM::Automation::ShuttersControl::ascDev->_getRainSensor;
return $self->{ASC_rainSensor}->{reading}; return $self->{ASC_rainSensor}->{reading};
} }
@ -302,7 +299,7 @@ sub getRainTriggerMax {
return $self->{ASC_rainSensor}->{triggermax} return $self->{ASC_rainSensor}->{triggermax}
if ( exists( $self->{ASC_rainSensor}->{LASTGETTIME} ) if ( exists( $self->{ASC_rainSensor}->{LASTGETTIME} )
&& ( gettimeofday() - $self->{ASC_rainSensor}->{LASTGETTIME} ) < 2 ); && ( gettimeofday() - $self->{ASC_rainSensor}->{LASTGETTIME} ) < 2 );
$ascDev->_getRainSensor; $FHEM::Automation::ShuttersControl::ascDev->_getRainSensor;
return $self->{ASC_rainSensor}->{triggermax}; return $self->{ASC_rainSensor}->{triggermax};
} }
@ -314,7 +311,7 @@ sub getRainTriggerMin {
return $self->{ASC_rainSensor}->{triggerhyst} return $self->{ASC_rainSensor}->{triggerhyst}
if ( exists( $self->{ASC_rainSensor}->{LASTGETTIME} ) if ( exists( $self->{ASC_rainSensor}->{LASTGETTIME} )
&& ( gettimeofday() - $self->{ASC_rainSensor}->{LASTGETTIME} ) < 2 ); && ( gettimeofday() - $self->{ASC_rainSensor}->{LASTGETTIME} ) < 2 );
$ascDev->_getRainSensor; $FHEM::Automation::ShuttersControl::ascDev->_getRainSensor;
return $self->{ASC_rainSensor}->{triggerhyst}; return $self->{ASC_rainSensor}->{triggerhyst};
} }
@ -326,7 +323,7 @@ sub getRainSensorShuttersClosedPos {
return $self->{ASC_rainSensor}->{shuttersClosedPos} return $self->{ASC_rainSensor}->{shuttersClosedPos}
if ( exists( $self->{ASC_rainSensor}->{LASTGETTIME} ) if ( exists( $self->{ASC_rainSensor}->{LASTGETTIME} )
&& ( gettimeofday() - $self->{ASC_rainSensor}->{LASTGETTIME} ) < 2 ); && ( gettimeofday() - $self->{ASC_rainSensor}->{LASTGETTIME} ) < 2 );
$ascDev->_getRainSensor; $FHEM::Automation::ShuttersControl::ascDev->_getRainSensor;
return $self->{ASC_rainSensor}->{shuttersClosedPos}; return $self->{ASC_rainSensor}->{shuttersClosedPos};
} }
@ -338,7 +335,7 @@ sub getRainWaitingTime {
return $self->{ASC_rainSensor}->{waitingTime} return $self->{ASC_rainSensor}->{waitingTime}
if ( exists( $self->{ASC_rainSensor}->{LASTGETTIME} ) if ( exists( $self->{ASC_rainSensor}->{LASTGETTIME} )
&& ( gettimeofday() - $self->{ASC_rainSensor}->{LASTGETTIME} ) < 2 ); && ( gettimeofday() - $self->{ASC_rainSensor}->{LASTGETTIME} ) < 2 );
$ascDev->_getRainSensor; $FHEM::Automation::ShuttersControl::ascDev->_getRainSensor;
return $self->{ASC_rainSensor}->{waitingTime}; return $self->{ASC_rainSensor}->{waitingTime};
} }
@ -371,7 +368,7 @@ sub getWindSensorReading {
return $self->{ASC_windSensor}->{reading} return $self->{ASC_windSensor}->{reading}
if ( exists( $self->{ASC_windSensor}->{LASTGETTIME} ) if ( exists( $self->{ASC_windSensor}->{LASTGETTIME} )
&& ( gettimeofday() - $self->{ASC_windSensor}->{LASTGETTIME} ) < 2 ); && ( gettimeofday() - $self->{ASC_windSensor}->{LASTGETTIME} ) < 2 );
$ascDev->_getWindSensor; $FHEM::Automation::ShuttersControl::ascDev->_getWindSensor;
return ( return (
defined( $self->{ASC_windSensor}->{reading} ) defined( $self->{ASC_windSensor}->{reading} )
? $self->{ASC_windSensor}->{reading} ? $self->{ASC_windSensor}->{reading}

View File

@ -46,9 +46,6 @@ use utf8;
use GPUtils qw(GP_Import); use GPUtils qw(GP_Import);
my $shutters = $FHEM::Automation::ShuttersControl::shutters;
my $ascDev = $FHEM::Automation::ShuttersControl::ascDev;
## Import der FHEM Funktionen ## Import der FHEM Funktionen
BEGIN { BEGIN {
GP_Import( GP_Import(
@ -66,8 +63,8 @@ sub setDelayCmdReading {
my $hash = $defs{$name}; my $hash = $defs{$name};
readingsSingleUpdate( $hash, readingsSingleUpdate( $hash,
$shutters->getShuttersDev . '_lastDelayPosValue', $FHEM::Automation::ShuttersControl::shutters->getShuttersDev . '_lastDelayPosValue',
$shutters->getDelayCmd, 1 ); $FHEM::Automation::ShuttersControl::shutters->getDelayCmd, 1 );
return; return;
} }
@ -79,7 +76,7 @@ sub setStateReading {
my $hash = $defs{$name}; my $hash = $defs{$name};
readingsSingleUpdate( $hash, 'state', readingsSingleUpdate( $hash, 'state',
( defined($value) ? $value : $shutters->getLastDrive ), 1 ); ( defined($value) ? $value : $FHEM::Automation::ShuttersControl::shutters->getLastDrive ), 1 );
return; return;
} }
@ -89,8 +86,8 @@ sub setPosReading {
my $name = $self->{name}; my $name = $self->{name};
my $hash = $defs{$name}; my $hash = $defs{$name};
readingsSingleUpdate( $hash, $shutters->getShuttersDev . '_PosValue', readingsSingleUpdate( $hash, $FHEM::Automation::ShuttersControl::shutters->getShuttersDev . '_PosValue',
$shutters->getStatus, 1 ); $FHEM::Automation::ShuttersControl::shutters->getStatus, 1 );
return; return;
} }
@ -100,8 +97,8 @@ sub setLastPosReading {
my $name = $self->{name}; my $name = $self->{name};
my $hash = $defs{$name}; my $hash = $defs{$name};
readingsSingleUpdate( $hash, $shutters->getShuttersDev . '_lastPosValue', readingsSingleUpdate( $hash, $FHEM::Automation::ShuttersControl::shutters->getShuttersDev . '_lastPosValue',
$shutters->getLastPos, 1 ); $FHEM::Automation::ShuttersControl::shutters->getLastPos, 1 );
return; return;
} }
@ -141,7 +138,7 @@ sub getMonitoredDevs {
sub getOutTemp { sub getOutTemp {
my $self = shift; my $self = shift;
return ReadingsVal( $ascDev->_getTempSensor, $ascDev->getTempSensorReading, return ReadingsVal( $FHEM::Automation::ShuttersControl::ascDev->_getTempSensor, $FHEM::Automation::ShuttersControl::ascDev->getTempSensorReading,
-100 ); -100 );
} }
@ -149,7 +146,7 @@ sub getResidentsStatus {
my $self = shift; my $self = shift;
my $val = my $val =
ReadingsVal( $ascDev->_getResidentsDev, $ascDev->getResidentsReading, ReadingsVal( $FHEM::Automation::ShuttersControl::ascDev->_getResidentsDev, $FHEM::Automation::ShuttersControl::ascDev->getResidentsReading,
'none' ); 'none' );
if ( $val =~ m{^(?:(.+)_)?(.+)$}xms ) { if ( $val =~ m{^(?:(.+)_)?(.+)$}xms ) {
@ -157,7 +154,7 @@ sub getResidentsStatus {
return $1 && $1 eq 'pet' ? 'absent' : $2; return $1 && $1 eq 'pet' ? 'absent' : $2;
} }
elsif ( elsif (
ReadingsVal( $ascDev->_getResidentsDev, 'homealoneType', '-' ) eq ReadingsVal( $FHEM::Automation::ShuttersControl::ascDev->_getResidentsDev, 'homealoneType', '-' ) eq
'PET' ) 'PET' )
{ {
return ( 'pet', 'absent' ) if (wantarray); return ( 'pet', 'absent' ) if (wantarray);
@ -172,14 +169,14 @@ sub getResidentsStatus {
sub getResidentsLastStatus { sub getResidentsLastStatus {
my $self = shift; my $self = shift;
my $val = ReadingsVal( $ascDev->_getResidentsDev, 'lastState', 'none' ); my $val = ReadingsVal( $FHEM::Automation::ShuttersControl::ascDev->_getResidentsDev, 'lastState', 'none' );
if ( $val =~ m{^(?:(.+)_)?(.+)$}xms ) { if ( $val =~ m{^(?:(.+)_)?(.+)$}xms ) {
return ( $1, $2 ) if (wantarray); return ( $1, $2 ) if (wantarray);
return $1 && $1 eq 'pet' ? 'absent' : $2; return $1 && $1 eq 'pet' ? 'absent' : $2;
} }
elsif ( elsif (
ReadingsVal( $ascDev->_getResidentsDev, 'lastHomealoneType', '-' ) eq ReadingsVal( $FHEM::Automation::ShuttersControl::ascDev->_getResidentsDev, 'lastHomealoneType', '-' ) eq
'PET' ) 'PET' )
{ {
return ( 'pet', 'absent' ) if (wantarray); return ( 'pet', 'absent' ) if (wantarray);
@ -212,10 +209,10 @@ sub getAzimuth {
my $azimuth; my $azimuth;
$azimuth = ReadingsVal( $ascDev->_getTwilightDevice, 'azimuth', -1 ) $azimuth = ReadingsVal( $FHEM::Automation::ShuttersControl::ascDev->_getTwilightDevice, 'azimuth', -1 )
if ( $defs{ $ascDev->_getTwilightDevice }->{TYPE} eq 'Twilight' ); if ( $defs{ $FHEM::Automation::ShuttersControl::ascDev->_getTwilightDevice }->{TYPE} eq 'Twilight' );
$azimuth = ReadingsVal( $ascDev->_getTwilightDevice, 'SunAz', -1 ) $azimuth = ReadingsVal( $FHEM::Automation::ShuttersControl::ascDev->_getTwilightDevice, 'SunAz', -1 )
if ( $defs{ $ascDev->_getTwilightDevice }->{TYPE} eq 'Astro' ); if ( $defs{ $FHEM::Automation::ShuttersControl::ascDev->_getTwilightDevice }->{TYPE} eq 'Astro' );
return $azimuth; return $azimuth;
} }
@ -225,10 +222,10 @@ sub getElevation {
my $elevation; my $elevation;
$elevation = ReadingsVal( $ascDev->_getTwilightDevice, 'elevation', -1 ) $elevation = ReadingsVal( $FHEM::Automation::ShuttersControl::ascDev->_getTwilightDevice, 'elevation', -1 )
if ( $defs{ $ascDev->_getTwilightDevice }->{TYPE} eq 'Twilight' ); if ( $defs{ $FHEM::Automation::ShuttersControl::ascDev->_getTwilightDevice }->{TYPE} eq 'Twilight' );
$elevation = ReadingsVal( $ascDev->_getTwilightDevice, 'SunAlt', -1 ) $elevation = ReadingsVal( $FHEM::Automation::ShuttersControl::ascDev->_getTwilightDevice, 'SunAlt', -1 )
if ( $defs{ $ascDev->_getTwilightDevice }->{TYPE} eq 'Astro' ); if ( $defs{ $FHEM::Automation::ShuttersControl::ascDev->_getTwilightDevice }->{TYPE} eq 'Astro' );
return $elevation; return $elevation;
} }

View File

@ -46,8 +46,6 @@ use utf8;
use GPUtils qw(GP_Import); use GPUtils qw(GP_Import);
my $shutters = $FHEM::Automation::ShuttersControl::shutters;
## Import der FHEM Funktionen ## Import der FHEM Funktionen
BEGIN { BEGIN {
GP_Import( GP_Import(
@ -61,7 +59,7 @@ sub _getRoommateStatus {
my $roommate = $self->{roommate}; my $roommate = $self->{roommate};
return ReadingsVal( $roommate, $shutters->getRoommatesReading, 'none' ); return ReadingsVal( $roommate, $FHEM::Automation::ShuttersControl::shutters->getRoommatesReading, 'none' );
} }
sub _getRoommateLastStatus { sub _getRoommateLastStatus {

View File

@ -59,9 +59,6 @@ use utf8;
use GPUtils qw(GP_Import); use GPUtils qw(GP_Import);
my $shutters = $FHEM::Automation::ShuttersControl::shutters;
my $ascDev = $FHEM::Automation::ShuttersControl::ascDev;
## Import der FHEM Funktionen ## Import der FHEM Funktionen
BEGIN { BEGIN {
GP_Import( GP_Import(
@ -113,19 +110,19 @@ sub setHardLockOut {
my $self = shift; my $self = shift;
my $cmd = shift; my $cmd = shift;
if ( $shutters->getLockOut eq 'hard' if ( $FHEM::Automation::ShuttersControl::shutters->getLockOut eq 'hard'
&& $shutters->getLockOutCmd ne 'none' ) && $FHEM::Automation::ShuttersControl::shutters->getLockOutCmd ne 'none' )
{ {
CommandSet( undef, $self->{shuttersDev} . ' inhibit ' . $cmd ) CommandSet( undef, $self->{shuttersDev} . ' inhibit ' . $cmd )
if ( $shutters->getLockOutCmd eq 'inhibit' ); if ( $FHEM::Automation::ShuttersControl::shutters->getLockOutCmd eq 'inhibit' );
CommandSet( undef, CommandSet( undef,
$self->{shuttersDev} . ' ' $self->{shuttersDev} . ' '
. ( $cmd eq 'on' ? 'blocked' : 'unblocked' ) ) . ( $cmd eq 'on' ? 'blocked' : 'unblocked' ) )
if ( $shutters->getLockOutCmd eq 'blocked' ); if ( $FHEM::Automation::ShuttersControl::shutters->getLockOutCmd eq 'blocked' );
CommandSet( undef, CommandSet( undef,
$self->{shuttersDev} . ' ' $self->{shuttersDev} . ' '
. ( $cmd eq 'on' ? 'protectionOn' : 'protectionOff' ) ) . ( $cmd eq 'on' ? 'protectionOn' : 'protectionOff' ) )
if ( $shutters->getLockOutCmd eq 'protected' ); if ( $FHEM::Automation::ShuttersControl::shutters->getLockOutCmd eq 'protected' );
} }
return; return;
} }
@ -156,47 +153,47 @@ sub setDriveCmd {
my $offSetStart; my $offSetStart;
if ( if (
( $shutters->getPartyMode eq 'on' && $ascDev->getPartyMode eq 'on' ) ( $FHEM::Automation::ShuttersControl::shutters->getPartyMode eq 'on' && $FHEM::Automation::ShuttersControl::ascDev->getPartyMode eq 'on' )
|| ( $shutters->getAdv || ( $FHEM::Automation::ShuttersControl::shutters->getAdv
&& !$shutters->getQueryShuttersPos($posValue) && !$FHEM::Automation::ShuttersControl::shutters->getQueryShuttersPos($posValue)
&& !$shutters->getAdvDelay && !$FHEM::Automation::ShuttersControl::shutters->getAdvDelay
&& !$shutters->getExternalTriggerState && !$FHEM::Automation::ShuttersControl::shutters->getExternalTriggerState
&& !$shutters->getSelfDefenseState ) && !$FHEM::Automation::ShuttersControl::shutters->getSelfDefenseState )
) )
{ {
$shutters->setDelayCmd($posValue); $FHEM::Automation::ShuttersControl::shutters->setDelayCmd($posValue);
$ascDev->setDelayCmdReading; $FHEM::Automation::ShuttersControl::ascDev->setDelayCmdReading;
$shutters->setNoDelay(0); $FHEM::Automation::ShuttersControl::shutters->setNoDelay(0);
$shutters->setExternalTriggerState(0) $FHEM::Automation::ShuttersControl::shutters->setExternalTriggerState(0)
if ( $shutters->getExternalTriggerState ); if ( $FHEM::Automation::ShuttersControl::shutters->getExternalTriggerState );
FHEM::AutoShuttersControl::ASC_Debug( 'setDriveCmd: ' FHEM::Automation::ShuttersControl::ASC_Debug( 'setDriveCmd: '
. $shutters->getShuttersDev . $FHEM::Automation::ShuttersControl::shutters->getShuttersDev
. ' - Die Fahrt wird zurückgestellt. Grund kann ein geöffnetes Fenster sein oder ein aktivierter Party Modus oder Weihnachtszeit' . ' - Die Fahrt wird zurückgestellt. Grund kann ein geöffnetes Fenster sein oder ein aktivierter Party Modus oder Weihnachtszeit'
); );
} }
else { else {
$shutters->setAdvDelay(0) $FHEM::Automation::ShuttersControl::shutters->setAdvDelay(0)
if ( $shutters->getAdvDelay ); if ( $FHEM::Automation::ShuttersControl::shutters->getAdvDelay );
$shutters->setDelayCmd('none') $FHEM::Automation::ShuttersControl::shutters->setDelayCmd('none')
if ( $shutters->getDelayCmd ne 'none' ) if ( $FHEM::Automation::ShuttersControl::shutters->getDelayCmd ne 'none' )
; # setzt den Wert auf none da der Rolladen nun gesteuert werden kann. ; # setzt den Wert auf none da der Rolladen nun gesteuert werden kann.
$shutters->setExternalTriggerState(0) $FHEM::Automation::ShuttersControl::shutters->setExternalTriggerState(0)
if ( $shutters->getExternalTriggerState ); if ( $FHEM::Automation::ShuttersControl::shutters->getExternalTriggerState );
### antifreeze Routine ### antifreeze Routine
if ( $shutters->getAntiFreezeStatus > 0 ) { if ( $FHEM::Automation::ShuttersControl::shutters->getAntiFreezeStatus > 0 ) {
if ( $shutters->getAntiFreezeStatus != 1 ) { if ( $FHEM::Automation::ShuttersControl::shutters->getAntiFreezeStatus != 1 ) {
$posValue = $shutters->getStatus; $posValue = $FHEM::Automation::ShuttersControl::shutters->getStatus;
$shutters->setLastDrive('no drive - antifreeze defense'); $FHEM::Automation::ShuttersControl::shutters->setLastDrive('no drive - antifreeze defense');
$shutters->setLastDriveReading; $FHEM::Automation::ShuttersControl::shutters->setLastDriveReading;
$ascDev->setStateReading; $FHEM::Automation::ShuttersControl::ascDev->setStateReading;
} }
elsif ( $posValue == $shutters->getClosedPos ) { elsif ( $posValue == $FHEM::Automation::ShuttersControl::shutters->getClosedPos ) {
$posValue = $shutters->getAntiFreezePos; $posValue = $FHEM::Automation::ShuttersControl::shutters->getAntiFreezePos;
$shutters->setLastDrive( $FHEM::Automation::ShuttersControl::shutters->setLastDrive(
$shutters->getLastDrive . ' - antifreeze mode' ); $FHEM::Automation::ShuttersControl::shutters->getLastDrive . ' - antifreeze mode' );
} }
} }
@ -205,44 +202,44 @@ sub setDriveCmd {
posValue => $posValue, posValue => $posValue,
); );
$offSet = $shutters->getDelay if ( $shutters->getDelay > -1 ); $offSet = $FHEM::Automation::ShuttersControl::shutters->getDelay if ( $FHEM::Automation::ShuttersControl::shutters->getDelay > -1 );
$offSet = $ascDev->getShuttersOffset if ( $shutters->getDelay < 0 ); $offSet = $FHEM::Automation::ShuttersControl::ascDev->getShuttersOffset if ( $FHEM::Automation::ShuttersControl::shutters->getDelay < 0 );
$offSetStart = $shutters->getDelayStart; $offSetStart = $FHEM::Automation::ShuttersControl::shutters->getDelayStart;
if ( $shutters->getSelfDefenseAbsent if ( $FHEM::Automation::ShuttersControl::shutters->getSelfDefenseAbsent
&& !$shutters->getSelfDefenseAbsentTimerrun && !$FHEM::Automation::ShuttersControl::shutters->getSelfDefenseAbsentTimerrun
&& $shutters->getSelfDefenseMode ne 'off' && $FHEM::Automation::ShuttersControl::shutters->getSelfDefenseMode ne 'off'
&& $shutters->getSelfDefenseState && $FHEM::Automation::ShuttersControl::shutters->getSelfDefenseState
&& $ascDev->getSelfDefense eq 'on' ) && $FHEM::Automation::ShuttersControl::ascDev->getSelfDefense eq 'on' )
{ {
InternalTimer( InternalTimer(
gettimeofday() + $shutters->getSelfDefenseAbsentDelay, gettimeofday() + $FHEM::Automation::ShuttersControl::shutters->getSelfDefenseAbsentDelay,
\&FHEM::Automation::ShuttersControl::_SetCmdFn, \%h ); \&FHEM::Automation::ShuttersControl::_SetCmdFn, \%h );
$shutters->setSelfDefenseAbsent( 1, 0, \%h ); $FHEM::Automation::ShuttersControl::shutters->setSelfDefenseAbsent( 1, 0, \%h );
} }
elsif ( $offSetStart > 0 && !$shutters->getNoDelay ) { elsif ( $offSetStart > 0 && !$FHEM::Automation::ShuttersControl::shutters->getNoDelay ) {
InternalTimer( InternalTimer(
gettimeofday() + gettimeofday() +
int( rand($offSet) + $shutters->getDelayStart ), int( rand($offSet) + $FHEM::Automation::ShuttersControl::shutters->getDelayStart ),
\&FHEM::Automation::ShuttersControl::_SetCmdFn, \%h \&FHEM::Automation::ShuttersControl::_SetCmdFn, \%h
); );
FHEM::AutoShuttersControl::ASC_Debug( 'FnSetDriveCmd: ' FHEM::Automation::ShuttersControl::ASC_Debug( 'FnSetDriveCmd: '
. $shutters->getShuttersDev . $FHEM::Automation::ShuttersControl::shutters->getShuttersDev
. ' - versetztes fahren' ); . ' - versetztes fahren' );
} }
elsif ( $offSetStart < 1 || $shutters->getNoDelay ) { elsif ( $offSetStart < 1 || $FHEM::Automation::ShuttersControl::shutters->getNoDelay ) {
FHEM::Automation::ShuttersControl::_SetCmdFn( \%h ); FHEM::Automation::ShuttersControl::_SetCmdFn( \%h );
FHEM::AutoShuttersControl::ASC_Debug( 'FnSetDriveCmd: ' FHEM::Automation::ShuttersControl::ASC_Debug( 'FnSetDriveCmd: '
. $shutters->getShuttersDev . $FHEM::Automation::ShuttersControl::shutters->getShuttersDev
. ' - NICHT versetztes fahren' ); . ' - NICHT versetztes fahren' );
} }
FHEM::AutoShuttersControl::ASC_Debug( 'FnSetDriveCmd: ' FHEM::Automation::ShuttersControl::ASC_Debug( 'FnSetDriveCmd: '
. $shutters->getShuttersDev . $FHEM::Automation::ShuttersControl::shutters->getShuttersDev
. ' - NoDelay: ' . ' - NoDelay: '
. ( $shutters->getNoDelay ? 'JA' : 'NEIN' ) ); . ( $FHEM::Automation::ShuttersControl::shutters->getNoDelay ? 'JA' : 'NEIN' ) );
$shutters->setNoDelay(0); $FHEM::Automation::ShuttersControl::shutters->setNoDelay(0);
} }
return; return;
@ -310,7 +307,7 @@ sub setLastDriveReading {
my %h = ( my %h = (
devHash => $shuttersDevHash, devHash => $shuttersDevHash,
lastDrive => $shutters->getLastDrive, lastDrive => $FHEM::Automation::ShuttersControl::shutters->getLastDrive,
); );
InternalTimer( gettimeofday() + 0.1, InternalTimer( gettimeofday() + 0.1,
@ -407,8 +404,8 @@ sub setAdvDelay {
sub getHomemode { sub getHomemode {
my $self = shift; my $self = shift;
my $homemode = $shutters->getRoommatesStatus; my $homemode = $FHEM::Automation::ShuttersControl::shutters->getRoommatesStatus;
$homemode = $ascDev->getResidentsStatus $homemode = $FHEM::Automation::ShuttersControl::ascDev->getResidentsStatus
if ( $homemode eq 'none' ); if ( $homemode eq 'none' );
return $homemode; return $homemode;
} }
@ -459,7 +456,7 @@ sub getAttrUpdateChanges {
sub getIsDay { sub getIsDay {
my $self = shift; my $self = shift;
return FHEM::AutoShuttersControl::_IsDay( $self->{shuttersDev} ); return FHEM::Automation::ShuttersControl::_IsDay( $self->{shuttersDev} );
} }
sub getAntiFreezeStatus { sub getAntiFreezeStatus {
@ -471,21 +468,21 @@ sub getAntiFreezeStatus {
? $daytime ? $daytime
: ( strftime( "%k", localtime() ) < 12 ? 'am' : 'pm' ) : ( strftime( "%k", localtime() ) < 12 ? 'am' : 'pm' )
); );
my $outTemp = $ascDev->getOutTemp; my $outTemp = $FHEM::Automation::ShuttersControl::ascDev->getOutTemp;
# $outTemp = $shutters->getOutTemp if ( $shutters->getOutTemp != -100 ); sollte raus das der Sensor im Rollo auch ein Innentemperatursensor sein kann. # $outTemp = $FHEM::Automation::ShuttersControl::shutters->getOutTemp if ( $FHEM::Automation::ShuttersControl::shutters->getOutTemp != -100 ); sollte raus das der Sensor im Rollo auch ein Innentemperatursensor sein kann.
if ( $shutters->getAntiFreeze ne 'off' if ( $FHEM::Automation::ShuttersControl::shutters->getAntiFreeze ne 'off'
&& $outTemp <= $ascDev->getFreezeTemp ) && $outTemp <= $FHEM::Automation::ShuttersControl::ascDev->getFreezeTemp )
{ {
if ( $shutters->getAntiFreeze eq 'soft' ) { if ( $FHEM::Automation::ShuttersControl::shutters->getAntiFreeze eq 'soft' ) {
return 1; return 1;
} }
elsif ( $shutters->getAntiFreeze eq $daytime ) { elsif ( $FHEM::Automation::ShuttersControl::shutters->getAntiFreeze eq $daytime ) {
return 2; return 2;
} }
elsif ( $shutters->getAntiFreeze eq 'hard' ) { elsif ( $FHEM::Automation::ShuttersControl::shutters->getAntiFreeze eq 'hard' ) {
return 3; return 3;
} }
} }
@ -495,7 +492,7 @@ sub getAntiFreezeStatus {
sub getShuttersPosCmdValueNegate { sub getShuttersPosCmdValueNegate {
my $self = shift; my $self = shift;
return ( $shutters->getOpenPos < $shutters->getClosedPos ? 1 : 0 ); return ( $FHEM::Automation::ShuttersControl::shutters->getOpenPos < $FHEM::Automation::ShuttersControl::shutters->getClosedPos ? 1 : 0 );
} }
sub getQueryShuttersPos sub getQueryShuttersPos
@ -504,9 +501,9 @@ sub getQueryShuttersPos
my $posValue = shift; # wenn dem so ist wird 1 zurück gegeben ansonsten 0 my $posValue = shift; # wenn dem so ist wird 1 zurück gegeben ansonsten 0
return ( return (
$shutters->getShuttersPosCmdValueNegate $FHEM::Automation::ShuttersControl::shutters->getShuttersPosCmdValueNegate
? $shutters->getStatus > $posValue ? $FHEM::Automation::ShuttersControl::shutters->getStatus > $posValue
: $shutters->getStatus < $posValue : $FHEM::Automation::ShuttersControl::shutters->getStatus < $posValue
); );
} }
@ -516,7 +513,7 @@ sub getPosSetCmd {
return ( return (
defined( $self->{ $self->{shuttersDev} }{posSetCmd} ) defined( $self->{ $self->{shuttersDev} }{posSetCmd} )
? $self->{ $self->{shuttersDev} }{posSetCmd} ? $self->{ $self->{shuttersDev} }{posSetCmd}
: $shutters->getPosCmd : $FHEM::Automation::ShuttersControl::shutters->getPosCmd
); );
} }
@ -672,9 +669,9 @@ sub getRoommatesStatus {
); );
my $minPrio = 10; my $minPrio = 10;
for my $ro ( split( ",", $shutters->getRoommates ) ) { for my $ro ( split( ",", $FHEM::Automation::ShuttersControl::shutters->getRoommates ) ) {
$shutters->setRoommate($ro); $FHEM::Automation::ShuttersControl::shutters->setRoommate($ro);
my $currentPrio = $statePrio{ $shutters->_getRoommateStatus }; my $currentPrio = $statePrio{ $FHEM::Automation::ShuttersControl::shutters->_getRoommateStatus };
$minPrio = $currentPrio if ( $minPrio > $currentPrio ); $minPrio = $currentPrio if ( $minPrio > $currentPrio );
} }
@ -698,9 +695,9 @@ sub getRoommatesLastStatus {
); );
my $minPrio = 10; my $minPrio = 10;
for my $ro ( split( ",", $shutters->getRoommates ) ) { for my $ro ( split( ",", $FHEM::Automation::ShuttersControl::shutters->getRoommates ) ) {
$shutters->setRoommate($ro); $FHEM::Automation::ShuttersControl::shutters->setRoommate($ro);
my $currentPrio = $statePrio{ $shutters->_getRoommateLastStatus }; my $currentPrio = $statePrio{ $FHEM::Automation::ShuttersControl::shutters->_getRoommateLastStatus };
$minPrio = $currentPrio if ( $minPrio > $currentPrio ); $minPrio = $currentPrio if ( $minPrio > $currentPrio );
} }
@ -711,15 +708,15 @@ sub getRoommatesLastStatus {
sub getOutTemp { sub getOutTemp {
my $self = shift; my $self = shift;
return ReadingsVal( $shutters->_getTempSensor, return ReadingsVal( $FHEM::Automation::ShuttersControl::shutters->_getTempSensor,
$shutters->getTempSensorReading, -100 ); $FHEM::Automation::ShuttersControl::shutters->getTempSensorReading, -100 );
} }
sub getIdleDetection { sub getIdleDetection {
my $self = shift; my $self = shift;
return ReadingsVal( $self->{shuttersDev}, return ReadingsVal( $self->{shuttersDev},
$shutters->_getIdleDetectionReading, 'none' ); $FHEM::Automation::ShuttersControl::shutters->_getIdleDetectionReading, 'none' );
} }
### Begin Beschattung Objekt mit Daten befüllen ### Begin Beschattung Objekt mit Daten befüllen
@ -732,7 +729,7 @@ sub setShadingStatus {
&& exists( $self->{ $self->{shuttersDev} }{ShadingStatus}{VAL} ) && exists( $self->{ $self->{shuttersDev} }{ShadingStatus}{VAL} )
&& $self->{ $self->{shuttersDev} }{ShadingStatus}{VAL} eq $value ); && $self->{ $self->{shuttersDev} }{ShadingStatus}{VAL} eq $value );
$shutters->setShadingLastStatus( ( $value eq 'in' ? 'out' : 'in' ) ) $FHEM::Automation::ShuttersControl::shutters->setShadingLastStatus( ( $value eq 'in' ? 'out' : 'in' ) )
if ( $value eq 'in' if ( $value eq 'in'
|| $value eq 'out' ); || $value eq 'out' );
@ -817,7 +814,7 @@ sub setPushBrightnessInArray {
@{ @{
$self->{ $self->{shuttersDev} }->{BrightnessAverageArray}->{VAL} $self->{ $self->{shuttersDev} }->{BrightnessAverageArray}->{VAL}
} }
) > $shutters->getMaxBrightnessAverageArrayObjects ) > $FHEM::Automation::ShuttersControl::shutters->getMaxBrightnessAverageArrayObjects
); );
return; return;
@ -826,7 +823,7 @@ sub setPushBrightnessInArray {
sub getBrightnessAverage { sub getBrightnessAverage {
my $self = shift; my $self = shift;
return FHEM::AutoShuttersControl::_averageBrightness( return FHEM::Automation::ShuttersControl::_averageBrightness(
@{ $self->{ $self->{shuttersDev} }->{BrightnessAverageArray}->{VAL} } ) @{ $self->{ $self->{shuttersDev} }->{BrightnessAverageArray}->{VAL} } )
if ( if (
ref( $self->{ $self->{shuttersDev} }->{BrightnessAverageArray}->{VAL} ) ref( $self->{ $self->{shuttersDev} }->{BrightnessAverageArray}->{VAL} )
@ -881,8 +878,8 @@ sub getIfInShading {
return ( return (
( (
$shutters->getShadingMode ne 'off' $FHEM::Automation::ShuttersControl::shutters->getShadingMode ne 'off'
&& $shutters->getShadingLastStatus eq 'out' && $FHEM::Automation::ShuttersControl::shutters->getShadingLastStatus eq 'out'
) ? 1 : 0 ) ? 1 : 0
); );
} }

View File

@ -46,9 +46,6 @@ use utf8;
use GPUtils qw(GP_Import); use GPUtils qw(GP_Import);
my $shutters = $FHEM::Automation::ShuttersControl::shutters;
my %userAttrList = %FHEM::Automation::ShuttersControl::userAttrList;
## Import der FHEM Funktionen ## Import der FHEM Funktionen
BEGIN { BEGIN {
GP_Import( GP_Import(
@ -89,7 +86,7 @@ sub _getPosition {
if ( if (
AttrVal( $self->{shuttersDev}, $attr, AttrVal( $self->{shuttersDev}, $attr,
$userAttrList{$userAttrList} $FHEM::Automation::ShuttersControl::userAttrList{$userAttrList}
[ AttrVal( $self->{shuttersDev}, 'ASC', 2 ) ] ) =~ [ AttrVal( $self->{shuttersDev}, 'ASC', 2 ) ] ) =~
m{\A\{.+\}\z}xms m{\A\{.+\}\z}xms
) )
@ -98,7 +95,7 @@ sub _getPosition {
AttrVal( AttrVal(
$self->{shuttersDev}, $self->{shuttersDev},
$attr, $attr,
$userAttrList{$userAttrList} $FHEM::Automation::ShuttersControl::userAttrList{$userAttrList}
[ AttrVal( $self->{shuttersDev}, 'ASC', 2 ) ] [ AttrVal( $self->{shuttersDev}, 'ASC', 2 ) ]
) )
); );
@ -108,7 +105,7 @@ sub _getPosition {
$position = ( $position = (
$position =~ m{\A\d+(\.\d+)?\z}xms $position =~ m{\A\d+(\.\d+)?\z}xms
? $position ? $position
: $userAttrList{$userAttrList} : $FHEM::Automation::ShuttersControl::userAttrList{$userAttrList}
[ AttrVal( $self->{shuttersDev}, 'ASC', 2 ) ] [ AttrVal( $self->{shuttersDev}, 'ASC', 2 ) ]
); );
@ -123,7 +120,7 @@ sub _getPosition {
FHEM::Automation::ShuttersControl::GetAttrValues( FHEM::Automation::ShuttersControl::GetAttrValues(
$self->{shuttersDev}, $self->{shuttersDev},
$attr, $attr,
$userAttrList{$userAttrList} $FHEM::Automation::ShuttersControl::userAttrList{$userAttrList}
[ AttrVal( $self->{shuttersDev}, 'ASC', 2 ) ] [ AttrVal( $self->{shuttersDev}, 'ASC', 2 ) ]
); );
} }
@ -153,7 +150,7 @@ sub _getPosition {
$self->{ $self->{shuttersDev} }->{$attr}->{position} =~ $self->{ $self->{shuttersDev} }->{$attr}->{position} =~
m{^\d+(\.\d+)?$}xms m{^\d+(\.\d+)?$}xms
? $self->{ $self->{shuttersDev} }->{$attr}->{position} ? $self->{ $self->{shuttersDev} }->{$attr}->{position}
: $userAttrList{$userAttrList} : $FHEM::Automation::ShuttersControl::userAttrList{$userAttrList}
[ AttrVal( $self->{shuttersDev}, 'ASC', 2 ) ] [ AttrVal( $self->{shuttersDev}, 'ASC', 2 ) ]
); );
} }
@ -170,7 +167,7 @@ sub _getPositionAssignment {
&& ( gettimeofday() - && ( gettimeofday() -
$self->{ $self->{shuttersDev} }->{$attr}->{LASTGETTIME} ) < 2 $self->{ $self->{shuttersDev} }->{$attr}->{LASTGETTIME} ) < 2
); );
$shutters->$getFn; $FHEM::Automation::ShuttersControl::shutters->$getFn;
return ( $self->{ $self->{shuttersDev} }->{$attr}->{posAssignment} ); return ( $self->{ $self->{shuttersDev} }->{$attr}->{posAssignment} );
} }
@ -187,7 +184,7 @@ sub setAntiFreezePos {
sub getAntiFreezePos { sub getAntiFreezePos {
my $self = shift; my $self = shift;
return $shutters->_getPosition( 'ASC_Antifreeze_Pos', return $FHEM::Automation::ShuttersControl::shutters->_getPosition( 'ASC_Antifreeze_Pos',
'ASC_Antifreeze_Pos:5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100' 'ASC_Antifreeze_Pos:5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100'
); );
} }
@ -195,7 +192,7 @@ sub getAntiFreezePos {
sub getAntiFreezePosAssignment { sub getAntiFreezePosAssignment {
my $self = shift; my $self = shift;
return $shutters->_getPositionAssignment( 'ASC_Antifreeze_Pos', return $FHEM::Automation::ShuttersControl::shutters->_getPositionAssignment( 'ASC_Antifreeze_Pos',
'getAntiFreezePos' ); 'getAntiFreezePos' );
} }
@ -270,7 +267,7 @@ sub getSlatDevice {
$self->{ $self->{shuttersDev} }->{ASC_SlatPosCmd_SlatDevice} $self->{ $self->{shuttersDev} }->{ASC_SlatPosCmd_SlatDevice}
->{LASTGETTIME} ) < 2 ->{LASTGETTIME} ) < 2
); );
$shutters->getSlatPosCmd; $FHEM::Automation::ShuttersControl::shutters->getSlatPosCmd;
return ( return (
$self->{ $self->{shuttersDev} }->{ASC_SlatPosCmd_SlatDevice}->{device} $self->{ $self->{shuttersDev} }->{ASC_SlatPosCmd_SlatDevice}->{device}
@ -316,8 +313,8 @@ sub getPrivacyUpTime {
->{upbrightnessval} = ->{upbrightnessval} =
( $upBrightnessVal ne 'none' ? $upBrightnessVal : -1 ); ( $upBrightnessVal ne 'none' ? $upBrightnessVal : -1 );
$shutters->setPrivacyUpStatus(0) $FHEM::Automation::ShuttersControl::shutters->setPrivacyUpStatus(0)
if ( defined( $shutters->getPrivacyUpStatus ) if ( defined( $FHEM::Automation::ShuttersControl::shutters->getPrivacyUpStatus )
&& $self->{ $self->{shuttersDev} }->{ASC_PrivacyUpValue_beforeDayOpen} && $self->{ $self->{shuttersDev} }->{ASC_PrivacyUpValue_beforeDayOpen}
->{uptime} == -1 ); ->{uptime} == -1 );
@ -339,7 +336,7 @@ sub getPrivacyUpBrightnessVal {
$self->{ $self->{shuttersDev} }->{ASC_PrivacyUpValue_beforeDayOpen} $self->{ $self->{shuttersDev} }->{ASC_PrivacyUpValue_beforeDayOpen}
->{LASTGETTIME} ) < 2 ->{LASTGETTIME} ) < 2
); );
$shutters->getPrivacyUpTime; $FHEM::Automation::ShuttersControl::shutters->getPrivacyUpTime;
return ( return (
defined( defined(
@ -391,8 +388,8 @@ sub getPrivacyDownTime {
->{downbrightnessval} = ->{downbrightnessval} =
( $downBrightnessVal ne 'none' ? $downBrightnessVal : -1 ); ( $downBrightnessVal ne 'none' ? $downBrightnessVal : -1 );
$shutters->setPrivacyDownStatus(0) $FHEM::Automation::ShuttersControl::shutters->setPrivacyDownStatus(0)
if ( defined( $shutters->getPrivacyDownStatus ) if ( defined( $FHEM::Automation::ShuttersControl::shutters->getPrivacyDownStatus )
&& $self->{ $self->{shuttersDev} } && $self->{ $self->{shuttersDev} }
->{ASC_PrivacyDownValue_beforeNightClose}->{downtime} == -1 ); ->{ASC_PrivacyDownValue_beforeNightClose}->{downtime} == -1 );
@ -414,7 +411,7 @@ sub getPrivacyDownBrightnessVal {
$self->{ $self->{shuttersDev} } $self->{ $self->{shuttersDev} }
->{ASC_PrivacyDownValue_beforeNightClose}->{LASTGETTIME} ) < 2 ->{ASC_PrivacyDownValue_beforeNightClose}->{LASTGETTIME} ) < 2
); );
$shutters->getPrivacyDownTime; $FHEM::Automation::ShuttersControl::shutters->getPrivacyDownTime;
return ( return (
defined( defined(
@ -439,13 +436,13 @@ sub setPrivacyUpPos {
sub getPrivacyUpPos { sub getPrivacyUpPos {
my $self = shift; my $self = shift;
return $shutters->_getPosition( 'ASC_PrivacyUp_Pos', 'ASC_PrivacyUp_Pos' ); return $FHEM::Automation::ShuttersControl::shutters->_getPosition( 'ASC_PrivacyUp_Pos', 'ASC_PrivacyUp_Pos' );
} }
sub getPrivacyUpPositionAssignment { sub getPrivacyUpPositionAssignment {
my $self = shift; my $self = shift;
return $shutters->_getPositionAssignment( 'ASC_PrivacyUp_Pos', return $FHEM::Automation::ShuttersControl::shutters->_getPositionAssignment( 'ASC_PrivacyUp_Pos',
'getPrivacyUpPos' ); 'getPrivacyUpPos' );
} }
@ -461,14 +458,14 @@ sub setPrivacyDownPos {
sub getPrivacyDownPos { sub getPrivacyDownPos {
my $self = shift; my $self = shift;
return $shutters->_getPosition( 'ASC_PrivacyDown_Pos', return $FHEM::Automation::ShuttersControl::shutters->_getPosition( 'ASC_PrivacyDown_Pos',
'ASC_PrivacyDown_Pos' ); 'ASC_PrivacyDown_Pos' );
} }
sub getPrivacyDownPositionAssignment { sub getPrivacyDownPositionAssignment {
my $self = shift; my $self = shift;
return $shutters->_getPositionAssignment( 'ASC_PrivacyDown_Pos', return $FHEM::Automation::ShuttersControl::shutters->_getPositionAssignment( 'ASC_PrivacyDown_Pos',
'getPrivacyDownPos' ); 'getPrivacyDownPos' );
} }
@ -550,14 +547,14 @@ sub setShadingPos {
sub getShadingPos { sub getShadingPos {
my $self = shift; my $self = shift;
return $shutters->_getPosition( 'ASC_Shading_Pos', return $FHEM::Automation::ShuttersControl::shutters->_getPosition( 'ASC_Shading_Pos',
'ASC_Shading_Pos:10,20,30,40,50,60,70,80,90,100' ); 'ASC_Shading_Pos:10,20,30,40,50,60,70,80,90,100' );
} }
sub getShadingPositionAssignment { sub getShadingPositionAssignment {
my $self = shift; my $self = shift;
return $shutters->_getPositionAssignment( 'ASC_Shading_Pos', return $FHEM::Automation::ShuttersControl::shutters->_getPositionAssignment( 'ASC_Shading_Pos',
'getShadingPos' ); 'getShadingPos' );
} }
@ -615,7 +612,7 @@ sub getTempSensorReading {
$self->{ $self->{shuttersDev} }->{ASC_TempSensor}->{LASTGETTIME} ) $self->{ $self->{shuttersDev} }->{ASC_TempSensor}->{LASTGETTIME} )
< 2 < 2
); );
$shutters->_getTempSensor; $FHEM::Automation::ShuttersControl::shutters->_getTempSensor;
return ( return (
defined( $self->{ $self->{shuttersDev} }->{ASC_TempSensor}->{reading} ) defined( $self->{ $self->{shuttersDev} }->{ASC_TempSensor}->{reading} )
@ -678,7 +675,7 @@ sub getIdleDetectionValue {
$self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection} $self->{ $self->{shuttersDev} }->{ASC_Shutter_IdleDetection}
->{LASTGETTIME} ) < 2 ->{LASTGETTIME} ) < 2
); );
$shutters->_getIdleDetectionReading; $FHEM::Automation::ShuttersControl::shutters->_getIdleDetectionReading;
return ( return (
defined( defined(
@ -744,7 +741,7 @@ sub getBrightnessReading {
$self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor} $self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor}
->{LASTGETTIME} ) < 2 ->{LASTGETTIME} ) < 2
); );
$shutters->_getBrightnessSensor; $FHEM::Automation::ShuttersControl::shutters->_getBrightnessSensor;
return ( return (
defined( defined(
@ -769,7 +766,7 @@ sub getShadingAzimuthLeft {
$self->{ $self->{shuttersDev} }->{ASC_Shading_InOutAzimuth} $self->{ $self->{shuttersDev} }->{ASC_Shading_InOutAzimuth}
->{LASTGETTIME} ) < 2 ->{LASTGETTIME} ) < 2
); );
$shutters->getShadingAzimuthRight; $FHEM::Automation::ShuttersControl::shutters->getShadingAzimuthRight;
return $self->{ $self->{shuttersDev} }->{ASC_Shading_InOutAzimuth} return $self->{ $self->{shuttersDev} }->{ASC_Shading_InOutAzimuth}
->{leftVal}; ->{leftVal};
@ -889,7 +886,7 @@ sub getShadingMaxElevation {
$self->{ $self->{shuttersDev} }->{ASC_Shading_MinMax_Elevation} $self->{ $self->{shuttersDev} }->{ASC_Shading_MinMax_Elevation}
->{LASTGETTIME} ) < 2 ->{LASTGETTIME} ) < 2
); );
$shutters->getShadingMinElevation; $FHEM::Automation::ShuttersControl::shutters->getShadingMinElevation;
return $self->{ $self->{shuttersDev} }->{ASC_Shading_MinMax_Elevation} return $self->{ $self->{shuttersDev} }->{ASC_Shading_MinMax_Elevation}
->{maxVal}; ->{maxVal};
@ -958,7 +955,7 @@ sub getShadingStateChangeCloudy {
$self->{ $self->{shuttersDev} } $self->{ $self->{shuttersDev} }
->{ASC_Shading_StateChange_SunnyCloudy}->{LASTGETTIME} ) < 2 ->{ASC_Shading_StateChange_SunnyCloudy}->{LASTGETTIME} ) < 2
); );
$shutters->getShadingStateChangeSunny; $FHEM::Automation::ShuttersControl::shutters->getShadingStateChangeSunny;
return $self->{ $self->{shuttersDev} } return $self->{ $self->{shuttersDev} }
->{ASC_Shading_StateChange_SunnyCloudy}->{cloudy}; ->{ASC_Shading_StateChange_SunnyCloudy}->{cloudy};
@ -978,7 +975,7 @@ sub getMaxBrightnessAverageArrayObjects {
$self->{ $self->{shuttersDev} } $self->{ $self->{shuttersDev} }
->{ASC_Shading_StateChange_SunnyCloudy}->{LASTGETTIME} ) < 2 ->{ASC_Shading_StateChange_SunnyCloudy}->{LASTGETTIME} ) < 2
); );
$shutters->getShadingStateChangeSunny; $FHEM::Automation::ShuttersControl::shutters->getShadingStateChangeSunny;
return $self->{ $self->{shuttersDev} }->{BrightnessAverageArray} return $self->{ $self->{shuttersDev} }->{BrightnessAverageArray}
->{MAXOBJECT}; ->{MAXOBJECT};
@ -1043,7 +1040,7 @@ sub getExternalTriggerDevice {
$self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{posactive} = $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{posactive} =
$posActive; $posActive;
$self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{posinactive} = $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{posinactive} =
( $posInactive ne 'none' ? $posInactive : $shutters->getLastPos ); ( $posInactive ne 'none' ? $posInactive : $FHEM::Automation::ShuttersControl::shutters->getLastPos );
$self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{valueactive2} = $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{valueactive2} =
$valueActive2; $valueActive2;
$self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{posactive2} = $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{posactive2} =
@ -1066,7 +1063,7 @@ sub getExternalTriggerReading {
$self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger} $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}
->{LASTGETTIME} ) < 2 ->{LASTGETTIME} ) < 2
); );
$shutters->getExternalTriggerDevice; $FHEM::Automation::ShuttersControl::shutters->getExternalTriggerDevice;
return $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{reading}; return $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{reading};
} }
@ -1084,7 +1081,7 @@ sub getExternalTriggerValueActive {
$self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger} $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}
->{LASTGETTIME} ) < 2 ->{LASTGETTIME} ) < 2
); );
$shutters->getExternalTriggerDevice; $FHEM::Automation::ShuttersControl::shutters->getExternalTriggerDevice;
return $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger} return $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}
->{valueactive}; ->{valueactive};
@ -1104,7 +1101,7 @@ sub getExternalTriggerValueActive2 {
$self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger} $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}
->{LASTGETTIME} ) < 2 ->{LASTGETTIME} ) < 2
); );
$shutters->getExternalTriggerDevice; $FHEM::Automation::ShuttersControl::shutters->getExternalTriggerDevice;
return $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger} return $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}
->{valueactive2}; ->{valueactive2};
@ -1124,7 +1121,7 @@ sub getExternalTriggerValueInactive {
$self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger} $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}
->{LASTGETTIME} ) < 2 ->{LASTGETTIME} ) < 2
); );
$shutters->getExternalTriggerDevice; $FHEM::Automation::ShuttersControl::shutters->getExternalTriggerDevice;
return $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger} return $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}
->{valueinactive}; ->{valueinactive};
@ -1143,7 +1140,7 @@ sub getExternalTriggerPosActive {
$self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger} $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}
->{LASTGETTIME} ) < 2 ->{LASTGETTIME} ) < 2
); );
$shutters->getExternalTriggerDevice; $FHEM::Automation::ShuttersControl::shutters->getExternalTriggerDevice;
return $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{posactive}; return $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{posactive};
} }
@ -1161,7 +1158,7 @@ sub getExternalTriggerPosActive2 {
$self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger} $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}
->{LASTGETTIME} ) < 2 ->{LASTGETTIME} ) < 2
); );
$shutters->getExternalTriggerDevice; $FHEM::Automation::ShuttersControl::shutters->getExternalTriggerDevice;
return $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{posactive2}; return $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}->{posactive2};
} }
@ -1179,7 +1176,7 @@ sub getExternalTriggerPosInactive {
$self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger} $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}
->{LASTGETTIME} ) < 2 ->{LASTGETTIME} ) < 2
); );
$shutters->getExternalTriggerDevice; $FHEM::Automation::ShuttersControl::shutters->getExternalTriggerDevice;
return $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger} return $self->{ $self->{shuttersDev} }->{ASC_ExternalTrigger}
->{posinactive}; ->{posinactive};
@ -1295,7 +1292,7 @@ sub getPosCmd {
my $self = shift; my $self = shift;
return AttrVal( $self->{shuttersDev}, 'ASC_Pos_Reading', return AttrVal( $self->{shuttersDev}, 'ASC_Pos_Reading',
$userAttrList{'ASC_Pos_Reading'} $FHEM::Automation::ShuttersControl::userAttrList{'ASC_Pos_Reading'}
[ AttrVal( $self->{shuttersDev}, 'ASC', 1 ) ] ); [ AttrVal( $self->{shuttersDev}, 'ASC', 1 ) ] );
} }
@ -1311,14 +1308,14 @@ sub setOpenPos {
sub getOpenPos { sub getOpenPos {
my $self = shift; my $self = shift;
return $shutters->_getPosition( 'ASC_Open_Pos', return $FHEM::Automation::ShuttersControl::shutters->_getPosition( 'ASC_Open_Pos',
'ASC_Open_Pos:0,10,20,30,40,50,60,70,80,90,100' ); 'ASC_Open_Pos:0,10,20,30,40,50,60,70,80,90,100' );
} }
sub getOpenPositionAssignment { sub getOpenPositionAssignment {
my $self = shift; my $self = shift;
return $shutters->_getPositionAssignment( 'ASC_Open_Pos', 'getOpenPos' ); return $FHEM::Automation::ShuttersControl::shutters->_getPositionAssignment( 'ASC_Open_Pos', 'getOpenPos' );
} }
sub setVentilatePos { sub setVentilatePos {
@ -1333,14 +1330,14 @@ sub setVentilatePos {
sub getVentilatePos { sub getVentilatePos {
my $self = shift; my $self = shift;
return $shutters->_getPosition( 'ASC_Ventilate_Pos', return $FHEM::Automation::ShuttersControl::shutters->_getPosition( 'ASC_Ventilate_Pos',
'ASC_Ventilate_Pos:10,20,30,40,50,60,70,80,90,100' ); 'ASC_Ventilate_Pos:10,20,30,40,50,60,70,80,90,100' );
} }
sub getVentilatePositionAssignment { sub getVentilatePositionAssignment {
my $self = shift; my $self = shift;
return $shutters->_getPositionAssignment( 'ASC_Ventilate_Pos', return $FHEM::Automation::ShuttersControl::shutters->_getPositionAssignment( 'ASC_Ventilate_Pos',
'getVentilatePos' ); 'getVentilatePos' );
} }
@ -1373,14 +1370,14 @@ sub setClosedPos {
sub getClosedPos { sub getClosedPos {
my $self = shift; my $self = shift;
return $shutters->_getPosition( 'ASC_Closed_Pos', return $FHEM::Automation::ShuttersControl::shutters->_getPosition( 'ASC_Closed_Pos',
'ASC_Closed_Pos:0,10,20,30,40,50,60,70,80,90,100' ); 'ASC_Closed_Pos:0,10,20,30,40,50,60,70,80,90,100' );
} }
sub getClosedPositionAssignment { sub getClosedPositionAssignment {
my $self = shift; my $self = shift;
return $shutters->_getPositionAssignment( 'ASC_Closed_Pos', return $FHEM::Automation::ShuttersControl::shutters->_getPositionAssignment( 'ASC_Closed_Pos',
'getClosedPos' ); 'getClosedPos' );
} }
@ -1396,14 +1393,14 @@ sub setSleepPos {
sub getSleepPos { sub getSleepPos {
my $self = shift; my $self = shift;
return $shutters->_getPosition( 'ASC_Sleep_Pos', return $FHEM::Automation::ShuttersControl::shutters->_getPosition( 'ASC_Sleep_Pos',
'ASC_Sleep_Pos:0,10,20,30,40,50,60,70,80,90,100' ); 'ASC_Sleep_Pos:0,10,20,30,40,50,60,70,80,90,100' );
} }
sub getSleepPositionAssignment { sub getSleepPositionAssignment {
my $self = shift; my $self = shift;
return $shutters->_getPositionAssignment( 'ASC_Sleep_Pos', 'getSleepPos' ); return $FHEM::Automation::ShuttersControl::shutters->_getPositionAssignment( 'ASC_Sleep_Pos', 'getSleepPos' );
} }
sub setVentilateOpen { sub setVentilateOpen {
@ -1434,14 +1431,14 @@ sub setComfortOpenPos {
sub getComfortOpenPos { sub getComfortOpenPos {
my $self = shift; my $self = shift;
return $shutters->_getPosition( 'ASC_ComfortOpen_Pos', return $FHEM::Automation::ShuttersControl::shutters->_getPosition( 'ASC_ComfortOpen_Pos',
'ASC_ComfortOpen_Pos:0,10,20,30,40,50,60,70,80,90,100' ); 'ASC_ComfortOpen_Pos:0,10,20,30,40,50,60,70,80,90,100' );
} }
sub getComfortOpenPositionAssignment { sub getComfortOpenPositionAssignment {
my $self = shift; my $self = shift;
return $shutters->_getPositionAssignment( 'ASC_ComfortOpen_Pos', return $FHEM::Automation::ShuttersControl::shutters->_getPositionAssignment( 'ASC_ComfortOpen_Pos',
'getComfortOpenPos' ); 'getComfortOpenPos' );
} }
@ -1504,7 +1501,7 @@ sub getWindPos {
$self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{LASTGETTIME} $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{LASTGETTIME}
) < 2 ) < 2
); );
$shutters->getWindMax; $FHEM::Automation::ShuttersControl::shutters->getWindMax;
return $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{closedPos}; return $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{closedPos};
} }
@ -1536,7 +1533,7 @@ sub getWindMax {
$self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{triggerhyst} = $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{triggerhyst} =
( $hyst ne 'none' ? $max - $hyst : $max - 20 ); ( $hyst ne 'none' ? $max - $hyst : $max - 20 );
$self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{closedPos} = $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{closedPos} =
( $pos ne 'none' ? $pos : $shutters->getOpenPos ); ( $pos ne 'none' ? $pos : $FHEM::Automation::ShuttersControl::shutters->getOpenPos );
return $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{triggermax}; return $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{triggermax};
} }
@ -1564,7 +1561,7 @@ sub getWindMin {
$self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{LASTGETTIME} $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{LASTGETTIME}
) < 2 ) < 2
); );
$shutters->getWindMax; $FHEM::Automation::ShuttersControl::shutters->getWindMax;
return $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{triggerhyst}; return $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{triggerhyst};
} }
@ -1907,7 +1904,7 @@ sub getBrightnessMinVal {
$self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor} $self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor}
->{LASTGETTIME} ) < 2 ->{LASTGETTIME} ) < 2
); );
$shutters->_getBrightnessSensor; $FHEM::Automation::ShuttersControl::shutters->_getBrightnessSensor;
return $self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor} return $self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor}
->{triggermin}; ->{triggermin};
@ -1926,7 +1923,7 @@ sub getBrightnessMaxVal {
$self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor} $self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor}
->{LASTGETTIME} ) < 2 ->{LASTGETTIME} ) < 2
); );
$shutters->_getBrightnessSensor; $FHEM::Automation::ShuttersControl::shutters->_getBrightnessSensor;
return $self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor} return $self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor}
->{triggermax}; ->{triggermax};

View File

@ -47,9 +47,6 @@ use utf8;
use GPUtils qw(GP_Import); use GPUtils qw(GP_Import);
my $shutters = $FHEM::Automation::ShuttersControl::shutters;
my $ascDev = $FHEM::Automation::ShuttersControl::ascDev;
## Import der FHEM Funktionen ## Import der FHEM Funktionen
BEGIN { BEGIN {
GP_Import( GP_Import(
@ -62,21 +59,21 @@ BEGIN {
sub getBrightness { sub getBrightness {
my $self = shift; my $self = shift;
return ReadingsNum( $shutters->_getBrightnessSensor, return ReadingsNum( $FHEM::Automation::ShuttersControl::shutters->_getBrightnessSensor,
$shutters->getBrightnessReading, -1 ); $FHEM::Automation::ShuttersControl::shutters->getBrightnessReading, -1 );
} }
sub getWindStatus { sub getWindStatus {
my $self = shift; my $self = shift;
return ReadingsVal( $ascDev->_getWindSensor, return ReadingsVal( $FHEM::Automation::ShuttersControl::ascDev->_getWindSensor,
$ascDev->getWindSensorReading, -1 ); $FHEM::Automation::ShuttersControl::ascDev->getWindSensorReading, -1 );
} }
sub getStatus { sub getStatus {
my $self = shift; my $self = shift;
return ReadingsNum( $self->{shuttersDev}, $shutters->getPosCmd, 0 ); return ReadingsNum( $self->{shuttersDev}, $FHEM::Automation::ShuttersControl::shutters->getPosCmd, 0 );
} }
sub getDelayCmd { sub getDelayCmd {

View File

@ -46,8 +46,6 @@ use utf8;
use GPUtils qw(GP_Import); use GPUtils qw(GP_Import);
my $shutters = $FHEM::Automation::ShuttersControl::shutters;
## Import der FHEM Funktionen ## Import der FHEM Funktionen
BEGIN { BEGIN {
GP_Import( GP_Import(
@ -122,7 +120,7 @@ sub getWinDevReading {
$self->{ $self->{shuttersDev} }->{ASC_WindowRec}->{LASTGETTIME} ) < $self->{ $self->{shuttersDev} }->{ASC_WindowRec}->{LASTGETTIME} ) <
2 2
); );
$shutters->_getWinDev; $FHEM::Automation::ShuttersControl::shutters->_getWinDev;
return $self->{ $self->{shuttersDev} }->{ASC_WindowRec}->{reading}; return $self->{ $self->{shuttersDev} }->{ASC_WindowRec}->{reading};
} }

View File

@ -46,8 +46,6 @@ use utf8;
use GPUtils qw(GP_Import); use GPUtils qw(GP_Import);
my $shutters = $FHEM::Automation::ShuttersControl::shutters;
## Import der FHEM Funktionen ## Import der FHEM Funktionen
BEGIN { BEGIN {
GP_Import( GP_Import(
@ -59,7 +57,7 @@ BEGIN {
sub getWinStatus { sub getWinStatus {
my $self = shift; my $self = shift;
return ReadingsVal( $shutters->_getWinDev, $shutters->getWinDevReading, return ReadingsVal( $FHEM::Automation::ShuttersControl::shutters->_getWinDev, $FHEM::Automation::ShuttersControl::shutters->getWinDevReading,
'closed' ); 'closed' );
} }