Ready for package and object methode
This commit is contained in:
parent
4e0e9203c9
commit
c19f9728a0
@ -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}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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 {
|
||||||
|
@ -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
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -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};
|
||||||
|
@ -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 {
|
||||||
|
@ -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};
|
||||||
}
|
}
|
||||||
|
@ -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' );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user