change homemmode condition for shading in shadingDrive Fn
This commit is contained in:
parent
4011a56656
commit
ed631686d9
@ -339,16 +339,16 @@ sub Define($$) {
|
|||||||
|
|
||||||
my $name = $a[0];
|
my $name = $a[0];
|
||||||
|
|
||||||
$hash->{MID} = 'da39a3ee5e6b4b0d3255bfef95601890afd80709'
|
$hash->{MID} = 'da39a3ee5e6b4b0d3255bfef95601890afd80709'
|
||||||
; # eine Ein Eindeutige ID für interne FHEM Belange / nicht weiter wichtig
|
; # eine Ein Eindeutige ID für interne FHEM Belange / nicht weiter wichtig
|
||||||
|
|
||||||
# ### Versionierung ###
|
|
||||||
# Stable Version
|
|
||||||
# $hash->{VERSION} = version->parse($VERSION)->normal;
|
|
||||||
# Developer Version
|
|
||||||
$hash->{DEV_VERSION} = FHEM::Meta::Get( $hash, 'x_developmentversion' );
|
|
||||||
|
|
||||||
$hash->{NOTIFYDEV} = 'global,'
|
# ### Versionierung ###
|
||||||
|
# Stable Version
|
||||||
|
# $hash->{VERSION} = version->parse($VERSION)->normal;
|
||||||
|
# Developer Version
|
||||||
|
$hash->{DEV_VERSION} = FHEM::Meta::Get( $hash, 'x_developmentversion' );
|
||||||
|
|
||||||
|
$hash->{NOTIFYDEV} = 'global,'
|
||||||
. $name; # Liste aller Devices auf deren Events gehört werden sollen
|
. $name; # Liste aller Devices auf deren Events gehört werden sollen
|
||||||
#$hash->{shutters} = $shutters;
|
#$hash->{shutters} = $shutters;
|
||||||
#$hash->{ascDev} = $ascDev;
|
#$hash->{ascDev} = $ascDev;
|
||||||
@ -726,16 +726,16 @@ sub ShuttersDeviceScan($) {
|
|||||||
if ( ReadingsVal( $_, 'ASC_Enable', 'none' ) eq 'none' );
|
if ( ReadingsVal( $_, 'ASC_Enable', 'none' ) eq 'none' );
|
||||||
}
|
}
|
||||||
|
|
||||||
# ### Temporär und muss später entfernt werden
|
# ### Temporär und muss später entfernt werden
|
||||||
# CommandAttr( undef,
|
# CommandAttr( undef,
|
||||||
# $name
|
# $name
|
||||||
# . ' ASC_brightnessDriveUpDown '
|
# . ' ASC_brightnessDriveUpDown '
|
||||||
# . AttrVal( $name, 'ASC_brightnessMinVal', 500 ) . ':'
|
# . AttrVal( $name, 'ASC_brightnessMinVal', 500 ) . ':'
|
||||||
# . AttrVal( $name, 'ASC_brightnessMaxVal', 800 ) )
|
# . AttrVal( $name, 'ASC_brightnessMaxVal', 800 ) )
|
||||||
# if ( AttrVal( $name, 'ASC_brightnessMinVal', 'none' ) ne 'none' );
|
# if ( AttrVal( $name, 'ASC_brightnessMinVal', 'none' ) ne 'none' );
|
||||||
#
|
#
|
||||||
# CommandDeleteAttr( undef, $name . ' ASC_brightnessMaxVal' )
|
# CommandDeleteAttr( undef, $name . ' ASC_brightnessMaxVal' )
|
||||||
# if ( AttrVal( $name, 'ASC_brightnessMaxVal', 'none' ) ne 'none' );
|
# if ( AttrVal( $name, 'ASC_brightnessMaxVal', 'none' ) ne 'none' );
|
||||||
|
|
||||||
$hash->{NOTIFYDEV} = "global," . $name . $shuttersList;
|
$hash->{NOTIFYDEV} = "global," . $name . $shuttersList;
|
||||||
|
|
||||||
@ -1739,19 +1739,10 @@ sub EventProcessingShadingBrightness($@) {
|
|||||||
. ' WindProtection: '
|
. ' WindProtection: '
|
||||||
. $shutters->getWindProtectionStatus );
|
. $shutters->getWindProtectionStatus );
|
||||||
|
|
||||||
my $homemode = $shutters->getRoommatesStatus;
|
if ( IsDay($shuttersDev)
|
||||||
$homemode = $ascDev->getResidentsStatus if ( $homemode eq 'none' );
|
|
||||||
|
|
||||||
if (
|
|
||||||
(
|
|
||||||
$shutters->getShadingMode eq 'always'
|
|
||||||
or $shutters->getShadingMode eq $homemode
|
|
||||||
)
|
|
||||||
and IsDay($shuttersDev)
|
|
||||||
and $ascDev->getAutoShuttersControlShading eq 'on'
|
and $ascDev->getAutoShuttersControlShading eq 'on'
|
||||||
and $shutters->getRainProtectionStatus eq 'unprotected'
|
and $shutters->getRainProtectionStatus eq 'unprotected'
|
||||||
and $shutters->getWindProtectionStatus eq 'unprotected'
|
and $shutters->getWindProtectionStatus eq 'unprotected' )
|
||||||
)
|
|
||||||
{
|
{
|
||||||
ShadingProcessing(
|
ShadingProcessing(
|
||||||
$hash,
|
$hash,
|
||||||
@ -1771,7 +1762,6 @@ sub EventProcessingShadingBrightness($@) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
elsif ( $shutters->getShadingStatus eq 'in'
|
elsif ( $shutters->getShadingStatus eq 'in'
|
||||||
and $shutters->getShadingMode ne $homemode
|
|
||||||
and $shutters->getRainProtectionStatus eq 'unprotected'
|
and $shutters->getRainProtectionStatus eq 'unprotected'
|
||||||
and $shutters->getWindProtectionStatus eq 'unprotected' )
|
and $shutters->getWindProtectionStatus eq 'unprotected' )
|
||||||
{
|
{
|
||||||
@ -2070,22 +2060,51 @@ sub ShadingProcessingDriveCommand($$) {
|
|||||||
my $getShadingPos = $shutters->getShadingPos;
|
my $getShadingPos = $shutters->getShadingPos;
|
||||||
my $getStatus = $shutters->getStatus;
|
my $getStatus = $shutters->getStatus;
|
||||||
|
|
||||||
$shutters->setShadingStatus( $shutters->getShadingStatus )
|
my $homemode = $shutters->getRoommatesStatus;
|
||||||
if (
|
$homemode = $ascDev->getResidentsStatus if ( $homemode eq 'none' );
|
||||||
( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) >
|
|
||||||
( $shutters->getShadingWaitingPeriod / 2 ) );
|
|
||||||
|
|
||||||
if ( $shutters->getShadingStatus eq 'in'
|
if ( $shutters->getShadingMode eq 'always'
|
||||||
and $getShadingPos != $getStatus )
|
or $shutters->getShadingMode eq $homemode )
|
||||||
{
|
{
|
||||||
if (
|
$shutters->setShadingStatus( $shutters->getShadingStatus )
|
||||||
not $shutters->getQueryShuttersPos( $shutters->getShadingPos )
|
if (
|
||||||
and not( CheckIfShuttersWindowRecOpen($shuttersDev) == 2
|
( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) >
|
||||||
and $shutters->getShuttersPlace eq 'terrace' )
|
( $shutters->getShadingWaitingPeriod / 2 ) );
|
||||||
)
|
|
||||||
|
if ( $shutters->getShadingStatus eq 'in'
|
||||||
|
and $getShadingPos != $getStatus )
|
||||||
{
|
{
|
||||||
$shutters->setLastDrive('shading in');
|
if (
|
||||||
ShuttersCommandSet( $hash, $shuttersDev, $getShadingPos );
|
not $shutters->getQueryShuttersPos( $shutters->getShadingPos )
|
||||||
|
and not( CheckIfShuttersWindowRecOpen($shuttersDev) == 2
|
||||||
|
and $shutters->getShuttersPlace eq 'terrace' )
|
||||||
|
)
|
||||||
|
{
|
||||||
|
$shutters->setLastDrive('shading in');
|
||||||
|
ShuttersCommandSet( $hash, $shuttersDev, $getShadingPos );
|
||||||
|
|
||||||
|
ASC_Debug( 'ShadingProcessing: '
|
||||||
|
. $shutters->getShuttersDev
|
||||||
|
. ' - Der aktuelle Beschattungsstatus ist: '
|
||||||
|
. $shutters->getShadingStatus
|
||||||
|
. ' und somit wird nun in die Position: '
|
||||||
|
. $getShadingPos
|
||||||
|
. ' zum Beschatten gefahren' );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif ( $shutters->getShadingStatus eq 'out'
|
||||||
|
and $getShadingPos == $getStatus )
|
||||||
|
{
|
||||||
|
$shutters->setLastDrive('shading out');
|
||||||
|
ShuttersCommandSet(
|
||||||
|
$hash,
|
||||||
|
$shuttersDev,
|
||||||
|
(
|
||||||
|
$shutters->getShadingPos == $shutters->getLastPos
|
||||||
|
? $shutters->getOpenPos
|
||||||
|
: $shutters->getLastPos
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
ASC_Debug( 'ShadingProcessing: '
|
ASC_Debug( 'ShadingProcessing: '
|
||||||
. $shutters->getShuttersDev
|
. $shutters->getShuttersDev
|
||||||
@ -2093,46 +2112,24 @@ sub ShadingProcessingDriveCommand($$) {
|
|||||||
. $shutters->getShadingStatus
|
. $shutters->getShadingStatus
|
||||||
. ' und somit wird nun in die Position: '
|
. ' und somit wird nun in die Position: '
|
||||||
. $getShadingPos
|
. $getShadingPos
|
||||||
. ' zum Beschatten gefahren' );
|
. ' zum beenden der Beschattung gefahren' );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
elsif ( $shutters->getShadingStatus eq 'out'
|
|
||||||
and $getShadingPos == $getStatus )
|
|
||||||
{
|
|
||||||
$shutters->setLastDrive('shading out');
|
|
||||||
ShuttersCommandSet(
|
|
||||||
$hash,
|
|
||||||
$shuttersDev,
|
|
||||||
(
|
|
||||||
$shutters->getShadingPos == $shutters->getLastPos
|
|
||||||
? $shutters->getOpenPos
|
|
||||||
: $shutters->getLastPos
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
ASC_Debug( 'ShadingProcessing: '
|
Log3( $name, 4,
|
||||||
|
"AutoShuttersControl ($name) - Shading Processing - In der Routine zum fahren der Rollläden, Shading Wert: "
|
||||||
|
. $shutters->getShadingStatus );
|
||||||
|
|
||||||
|
ASC_Debug(
|
||||||
|
'ShadingProcessing: '
|
||||||
. $shutters->getShuttersDev
|
. $shutters->getShuttersDev
|
||||||
. ' - Der aktuelle Beschattungsstatus ist: '
|
. ' - Der aktuelle Beschattungsstatus ist: '
|
||||||
. $shutters->getShadingStatus
|
. $shutters->getShadingStatus
|
||||||
. ' und somit wird nun in die Position: '
|
. ', Beschattungsstatus Zeitstempel: '
|
||||||
. $getShadingPos
|
. strftime(
|
||||||
. ' zum beenden der Beschattung gefahren' );
|
"%Y.%m.%e %T", localtime( $shutters->getShadingStatusTimestamp )
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Log3( $name, 4,
|
|
||||||
"AutoShuttersControl ($name) - Shading Processing - In der Routine zum fahren der Rollläden, Shading Wert: "
|
|
||||||
. $shutters->getShadingStatus );
|
|
||||||
|
|
||||||
ASC_Debug(
|
|
||||||
'ShadingProcessing: '
|
|
||||||
. $shutters->getShuttersDev
|
|
||||||
. ' - Der aktuelle Beschattungsstatus ist: '
|
|
||||||
. $shutters->getShadingStatus
|
|
||||||
. ', Beschattungsstatus Zeitstempel: '
|
|
||||||
. strftime(
|
|
||||||
"%Y.%m.%e %T", localtime( $shutters->getShadingStatusTimestamp )
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub EventProcessingPartyMode($) {
|
sub EventProcessingPartyMode($) {
|
||||||
@ -6173,7 +6170,7 @@ sub getblockAscDrivesAfterManual {
|
|||||||
"release_status": "under develop",
|
"release_status": "under develop",
|
||||||
"license": "GPL_2",
|
"license": "GPL_2",
|
||||||
"version": "v0.6.19",
|
"version": "v0.6.19",
|
||||||
"x_developmentversion": "v0.6.19.5",
|
"x_developmentversion": "v0.6.19.6",
|
||||||
"author": [
|
"author": [
|
||||||
"Marko Oldenburg <leongaultier@gmail.com>"
|
"Marko Oldenburg <leongaultier@gmail.com>"
|
||||||
],
|
],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user