mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 06:39:11 +00:00
73_AutoShuttersControl: change blocking handle, add privacy drive
git-svn-id: https://svn.fhem.de/fhem/trunk@18468 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
41918bcf0d
commit
7649c9cb54
@ -1,5 +1,6 @@
|
|||||||
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
||||||
# Do not insert empty lines here, update check depends on it.
|
# Do not insert empty lines here, update check depends on it.
|
||||||
|
- feature: 73_AutoShuttersControl: change blocking handle, add privacy drive
|
||||||
- bugfix: 49_SSCam: refresh snapgallery device if snap was done by itself
|
- bugfix: 49_SSCam: refresh snapgallery device if snap was done by itself
|
||||||
- feature: 49_SSCam: V8.7.0, send recordings by email is possible now
|
- feature: 49_SSCam: V8.7.0, send recordings by email is possible now
|
||||||
- bugfix: 10_MYSENSORS_DEVICE: fix enqueing method, Forum:#96518
|
- bugfix: 10_MYSENSORS_DEVICE: fix enqueing method, Forum:#96518
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Developed with Kate
|
# Developed with Kate
|
||||||
#
|
#
|
||||||
# (c) 2018 Copyright: Marko Oldenburg (leongaultier at gmail dot com)
|
# (c) 2018-2019 Copyright: Marko Oldenburg (leongaultier at gmail dot com)
|
||||||
# All rights reserved
|
# All rights reserved
|
||||||
#
|
#
|
||||||
# Special thanks goes to:
|
# Special thanks goes to:
|
||||||
@ -41,7 +41,7 @@ package main;
|
|||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
my $version = '0.2.3.3';
|
my $version = '0.4.0.2';
|
||||||
|
|
||||||
sub AutoShuttersControl_Initialize($) {
|
sub AutoShuttersControl_Initialize($) {
|
||||||
my ($hash) = @_;
|
my ($hash) = @_;
|
||||||
@ -159,6 +159,8 @@ my %userAttrList = (
|
|||||||
'ASC_Time_Up_WE_Holiday' => '08:30',
|
'ASC_Time_Up_WE_Holiday' => '08:30',
|
||||||
'ASC_Time_Down_Early' => '15:30',
|
'ASC_Time_Down_Early' => '15:30',
|
||||||
'ASC_Time_Down_Late' => '22:30',
|
'ASC_Time_Down_Late' => '22:30',
|
||||||
|
'ASC_PrivacyDownTime_beforNightClose' => -1,
|
||||||
|
'ASC_PrivacyDown_Pos' => 50,
|
||||||
'ASC_WindowRec' => 'none',
|
'ASC_WindowRec' => 'none',
|
||||||
'ASC_Ventilate_Window_Open:on,off' => 'on',
|
'ASC_Ventilate_Window_Open:on,off' => 'on',
|
||||||
'ASC_LockOut:soft,hard,off' => 'off',
|
'ASC_LockOut:soft,hard,off' => 'off',
|
||||||
@ -182,6 +184,7 @@ my %userAttrList = (
|
|||||||
# 'ASC_Shading_Fast_Open:on,off' => 'none',
|
# 'ASC_Shading_Fast_Open:on,off' => 'none',
|
||||||
# 'ASC_Shading_Fast_Close:on,off' => 'none',
|
# 'ASC_Shading_Fast_Close:on,off' => 'none',
|
||||||
'ASC_Drive_Offset' => -1,
|
'ASC_Drive_Offset' => -1,
|
||||||
|
'ASC_Drive_OffsetStart' => -1,
|
||||||
'ASC_WindowRec_subType:twostate,threestate' => 'twostate',
|
'ASC_WindowRec_subType:twostate,threestate' => 'twostate',
|
||||||
'ASC_ShuttersPlace:window,terrace' => 'window',
|
'ASC_ShuttersPlace:window,terrace' => 'window',
|
||||||
'ASC_Ventilate_Pos:10,20,30,40,50,60,70,80,90,100' => [ '', 70, 30 ],
|
'ASC_Ventilate_Pos:10,20,30,40,50,60,70,80,90,100' => [ '', 70, 30 ],
|
||||||
@ -382,7 +385,7 @@ sub Notify($$) {
|
|||||||
}
|
}
|
||||||
elsif (
|
elsif (
|
||||||
grep
|
grep
|
||||||
/^(ATTR|DELETEATTR)\s(.*ASC_Time_Up_WE_Holiday|.*ASC_Up|.*ASC_Down|.*ASC_AutoAstroModeMorning|.*ASC_AutoAstroModeMorningHorizon|.*ASC_AutoAstroModeEvening|.*ASC_AutoAstroModeEveningHorizon|.*ASC_Time_Up_Early|.*ASC_Time_Up_Late|.*ASC_Time_Down_Early|.*ASC_Time_Down_Late|.*ASC_autoAstroModeMorning|.*ASC_autoAstroModeMorningHorizon|.*ASC_autoAstroModeEvening|.*ASC_autoAstroModeEveningHorizon)(\s.*|$)/,
|
/^(ATTR|DELETEATTR)\s(.*ASC_Time_Up_WE_Holiday|.*ASC_Up|.*ASC_Down|.*ASC_AutoAstroModeMorning|.*ASC_AutoAstroModeMorningHorizon|.*ASC_AutoAstroModeEvening|.*ASC_AutoAstroModeEveningHorizon|.*ASC_Time_Up_Early|.*ASC_Time_Up_Late|.*ASC_Time_Down_Early|.*ASC_Time_Down_Late|.*ASC_autoAstroModeMorning|.*ASC_autoAstroModeMorningHorizon|.*ASC_PrivacyDownTime_beforNightClose|.*ASC_autoAstroModeEvening|.*ASC_autoAstroModeEveningHorizon)(\s.*|$)/,
|
||||||
@{$events}
|
@{$events}
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -455,7 +458,7 @@ m#^DELETEATTR\s(.*)\s(ASC_Roommate_Device|ASC_WindowRec|ASC_residentsDevice|ASC_
|
|||||||
DeleteNotifyDev( $hash, $1, $2 );
|
DeleteNotifyDev( $hash, $1, $2 );
|
||||||
}
|
}
|
||||||
elsif ( $events =~
|
elsif ( $events =~
|
||||||
m#^ATTR\s(.*)\s(ASC_Time_Up_WE_Holiday|ASC_Up|ASC_Down|ASC_AutoAstroModeMorning|ASC_AutoAstroModeMorningHorizon|ASC_AutoAstroModeEvening|ASC_AutoAstroModeEveningHorizon|ASC_Time_Up_Early|ASC_Time_Up_Late|ASC_Time_Down_Early|ASC_Time_Down_Late)\s(.*)$#
|
m#^ATTR\s(.*)\s(ASC_Time_Up_WE_Holiday|ASC_Up|ASC_Down|ASC_AutoAstroModeMorning|ASC_AutoAstroModeMorningHorizon|ASC_PrivacyDownTime_beforNightClose|ASC_AutoAstroModeEvening|ASC_AutoAstroModeEveningHorizon|ASC_Time_Up_Early|ASC_Time_Up_Late|ASC_Time_Down_Early|ASC_Time_Down_Late)\s(.*)$#
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
CreateSunRiseSetShuttersTimer( $hash, $1 )
|
CreateSunRiseSetShuttersTimer( $hash, $1 )
|
||||||
@ -766,7 +769,9 @@ sub EventProcessingWindowRec($@) {
|
|||||||
my ( $hash, $shuttersDev, $events ) = @_;
|
my ( $hash, $shuttersDev, $events ) = @_;
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
|
|
||||||
if ( $events =~ m#state:\s(open|closed|tilted)# ) {
|
if ( $events =~ m#state:\s(open|closed|tilted)#
|
||||||
|
and IsAfterShuttersManualBlocking($shuttersDev) )
|
||||||
|
{
|
||||||
$shutters->setShuttersDev($shuttersDev);
|
$shutters->setShuttersDev($shuttersDev);
|
||||||
|
|
||||||
#### Hardware Lock der Rollläden
|
#### Hardware Lock der Rollläden
|
||||||
@ -788,17 +793,18 @@ sub EventProcessingWindowRec($@) {
|
|||||||
: $shutters->getStatus < $shutters->getComfortOpenPos
|
: $shutters->getStatus < $shutters->getComfortOpenPos
|
||||||
);
|
);
|
||||||
|
|
||||||
if ( $shutters->getDelayCmd ne 'none' and $1 eq 'closed' )
|
# ## Wird erstmal deaktiviert da es Sinnlos ist in meinen Augen
|
||||||
{ # Es wird geschaut ob wärend der Fenster offen Phase ein Fahrbefehl über das Modul kam,wenn ja wird dieser aus geführt
|
# if ( $shutters->getDelayCmd ne 'none' and $1 eq 'closed' )
|
||||||
$shutters->setLastDrive('delayed drive - window closed');
|
# { # Es wird geschaut ob wärend der Fenster offen Phase ein Fahrbefehl über das Modul kam,wenn ja wird dieser aus geführt
|
||||||
ShuttersCommandSet( $hash, $shuttersDev, $shutters->getDelayCmd );
|
# $shutters->setLastDrive('delayed drive - window closed');
|
||||||
}
|
# ShuttersCommandSet( $hash, $shuttersDev, $shutters->getDelayCmd );
|
||||||
elsif ( $1 eq 'closed'
|
# }
|
||||||
and IsAfterShuttersTimeBlocking( $hash, $shuttersDev )
|
if ( $1 eq 'closed'
|
||||||
) # wenn nicht dann wird entsprechend dem Fensterkontakt Event der Rolladen geschlossen
|
and IsAfterShuttersTimeBlocking( $hash, $shuttersDev ) )
|
||||||
{
|
{
|
||||||
if ( $shutters->getStatus == $shutters->getVentilatePos
|
if ( $shutters->getStatus == $shutters->getVentilatePos
|
||||||
or $shutters->getStatus == $shutters->getComfortOpenPos )
|
or $shutters->getStatus == $shutters->getComfortOpenPos
|
||||||
|
or $shutters->getStatus == $shutters->getOpenPos )
|
||||||
{
|
{
|
||||||
my $homemode = $shutters->getRoommatesStatus;
|
my $homemode = $shutters->getRoommatesStatus;
|
||||||
$homemode = $ascDev->getResidentsStatus
|
$homemode = $ascDev->getResidentsStatus
|
||||||
@ -1340,7 +1346,7 @@ sub ShadingProcessing($@) {
|
|||||||
if ( not IsDay( $hash, $shuttersDev )
|
if ( not IsDay( $hash, $shuttersDev )
|
||||||
and $shutters->getShading ne 'out' );
|
and $shutters->getShading ne 'out' );
|
||||||
|
|
||||||
Log3( $name, 3,
|
Log3( $name, 4,
|
||||||
"AutoShuttersControl ($name) - Shading Processing, Rollladen: "
|
"AutoShuttersControl ($name) - Shading Processing, Rollladen: "
|
||||||
. $shuttersDev
|
. $shuttersDev
|
||||||
. " Azimuth: "
|
. " Azimuth: "
|
||||||
@ -1523,19 +1529,29 @@ sub ShuttersCommandSet($$$) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
$posValue != $shutters->getShadingPos
|
(
|
||||||
and ( $shutters->getPartyMode eq 'on'
|
$posValue != $shutters->getShadingPos
|
||||||
and $ascDev->getPartyMode eq 'on' )
|
or $shutters->getShuttersPlace eq 'terrace'
|
||||||
or ( CheckIfShuttersWindowRecOpen($shuttersDev) == 2
|
)
|
||||||
and $shutters->getSubTyp eq 'threestate'
|
and (
|
||||||
and $ascDev->getAutoShuttersControlComfort eq 'off'
|
(
|
||||||
and $shutters->getVentilateOpen eq 'on' )
|
$shutters->getPartyMode eq 'on'
|
||||||
or (
|
and $ascDev->getPartyMode eq 'on'
|
||||||
CheckIfShuttersWindowRecOpen($shuttersDev) == 2
|
)
|
||||||
and ( $shutters->getLockOut eq 'soft'
|
or (
|
||||||
or $shutters->getLockOut eq 'hard' )
|
CheckIfShuttersWindowRecOpen($shuttersDev) == 2
|
||||||
and $ascDev->getHardLockOut eq 'on'
|
and $shutters->getSubTyp eq 'threestate'
|
||||||
and not $queryShuttersPosValue
|
and ( $ascDev->getAutoShuttersControlComfort eq 'off'
|
||||||
|
or $shutters->getComfortOpenPos != $posValue )
|
||||||
|
and $shutters->getVentilateOpen eq 'on'
|
||||||
|
)
|
||||||
|
or (
|
||||||
|
CheckIfShuttersWindowRecOpen($shuttersDev) == 2
|
||||||
|
and ( $shutters->getLockOut eq 'soft'
|
||||||
|
or $shutters->getLockOut eq 'hard' )
|
||||||
|
and $ascDev->getHardLockOut eq 'on'
|
||||||
|
and not $queryShuttersPosValue
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -1622,6 +1638,7 @@ sub CreateSunRiseSetShuttersTimer($$) {
|
|||||||
my %funcHash = (
|
my %funcHash = (
|
||||||
hash => $hash,
|
hash => $hash,
|
||||||
shuttersdevice => $shuttersDev,
|
shuttersdevice => $shuttersDev,
|
||||||
|
privacyMode => 0,
|
||||||
sunsettime => $shuttersSunsetUnixtime,
|
sunsettime => $shuttersSunsetUnixtime,
|
||||||
sunrisetime => $shuttersSunriseUnixtime
|
sunrisetime => $shuttersSunriseUnixtime
|
||||||
);
|
);
|
||||||
@ -1629,6 +1646,26 @@ sub CreateSunRiseSetShuttersTimer($$) {
|
|||||||
## Ich brauche beim löschen des InternalTimer den Hash welchen ich mitgegeben habe,dieser muss gesichert werden
|
## Ich brauche beim löschen des InternalTimer den Hash welchen ich mitgegeben habe,dieser muss gesichert werden
|
||||||
$shutters->setInTimerFuncHash( \%funcHash );
|
$shutters->setInTimerFuncHash( \%funcHash );
|
||||||
|
|
||||||
|
## Abfrage für die Sichtschutzfahrt am Abend vor dem eigentlichen kompletten schließen
|
||||||
|
if ( $shutters->getPrivacyDownTime > 0 ) {
|
||||||
|
if ( ( $shuttersSunsetUnixtime - $shutters->getPrivacyDownTime ) >
|
||||||
|
( gettimeofday() + 1 ) )
|
||||||
|
{
|
||||||
|
$shuttersSunsetUnixtime =
|
||||||
|
$shuttersSunsetUnixtime - $shutters->getPrivacyDownTime;
|
||||||
|
readingsSingleUpdate(
|
||||||
|
$shuttersDevHash,
|
||||||
|
'ASC_Time_PrivacyDriveUp',
|
||||||
|
strftime(
|
||||||
|
"%e.%m.%Y - %H:%M",
|
||||||
|
localtime($shuttersSunsetUnixtime)
|
||||||
|
),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
$funcHash{privacyMode} = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
InternalTimer( $shuttersSunsetUnixtime,
|
InternalTimer( $shuttersSunsetUnixtime,
|
||||||
'AutoShuttersControl::SunSetShuttersAfterTimerFn', \%funcHash )
|
'AutoShuttersControl::SunSetShuttersAfterTimerFn', \%funcHash )
|
||||||
if ( $ascDev->getAutoShuttersControlEvening eq 'on' );
|
if ( $ascDev->getAutoShuttersControlEvening eq 'on' );
|
||||||
@ -1735,8 +1772,22 @@ sub SunSetShuttersAfterTimerFn($) {
|
|||||||
and IsAfterShuttersManualBlocking($shuttersDev)
|
and IsAfterShuttersManualBlocking($shuttersDev)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
$shutters->setLastDrive('night close');
|
$shutters->setLastDrive(
|
||||||
ShuttersCommandSet( $hash, $shuttersDev, $posValue );
|
(
|
||||||
|
$funcHash->{privacyMode} == 1
|
||||||
|
? 'privacy position'
|
||||||
|
: 'night close'
|
||||||
|
)
|
||||||
|
);
|
||||||
|
ShuttersCommandSet(
|
||||||
|
$hash,
|
||||||
|
$shuttersDev,
|
||||||
|
(
|
||||||
|
$funcHash->{privacyMode} == 1
|
||||||
|
? $shutters->getPrivacyDownPos
|
||||||
|
: $posValue
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateSunRiseSetShuttersTimer( $hash, $shuttersDev );
|
CreateSunRiseSetShuttersTimer( $hash, $shuttersDev );
|
||||||
@ -2536,7 +2587,8 @@ sub setDriveCmd {
|
|||||||
$offSet = $shutters->getOffset if ( $shutters->getOffset > 0 );
|
$offSet = $shutters->getOffset if ( $shutters->getOffset > 0 );
|
||||||
$offSet = $ascDev->getShuttersOffset if ( $shutters->getOffset == -1 );
|
$offSet = $ascDev->getShuttersOffset if ( $shutters->getOffset == -1 );
|
||||||
|
|
||||||
InternalTimer( gettimeofday() + int( rand($offSet) + 3 ),
|
InternalTimer(
|
||||||
|
gettimeofday() + int( rand($offSet) + $shutters->getOffsetStart ),
|
||||||
'AutoShuttersControl::SetCmdFn', \%h )
|
'AutoShuttersControl::SetCmdFn', \%h )
|
||||||
if ( $offSet > 0 and not $shutters->getNoOffset );
|
if ( $offSet > 0 and not $shutters->getNoOffset );
|
||||||
AutoShuttersControl::SetCmdFn( \%h )
|
AutoShuttersControl::SetCmdFn( \%h )
|
||||||
@ -2863,6 +2915,19 @@ sub getShuttersPlace {
|
|||||||
return AttrVal( $self->{shuttersDev}, 'ASC_ShuttersPlace', 'window' );
|
return AttrVal( $self->{shuttersDev}, 'ASC_ShuttersPlace', 'window' );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub getPrivacyDownTime {
|
||||||
|
my $self = shift;
|
||||||
|
|
||||||
|
return AttrVal( $self->{shuttersDev},
|
||||||
|
'ASC_PrivacyDownTime_beforNightClose', -1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
sub getPrivacyDownPos {
|
||||||
|
my $self = shift;
|
||||||
|
|
||||||
|
return AttrVal( $self->{shuttersDev}, 'ASC_PrivacyDown_Pos', 50 );
|
||||||
|
}
|
||||||
|
|
||||||
sub getSelfDefenseExclude {
|
sub getSelfDefenseExclude {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
@ -2966,6 +3031,16 @@ sub getOffset {
|
|||||||
return AttrVal( $self->{shuttersDev}, 'ASC_Drive_Offset', 0 );
|
return AttrVal( $self->{shuttersDev}, 'ASC_Drive_Offset', 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub getOffsetStart {
|
||||||
|
my $self = shift;
|
||||||
|
|
||||||
|
return (
|
||||||
|
AttrVal( $self->{shuttersDev}, 'ASC_Drive_OffsetStart', 3 ) > 2
|
||||||
|
? AttrVal( $self->{shuttersDev}, 'ASC_Drive_OffsetStart', 3 )
|
||||||
|
: 3
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
sub getBlockingTimeAfterManual {
|
sub getBlockingTimeAfterManual {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
@ -3895,7 +3970,8 @@ sub getRainSensorShuttersClosedPos {
|
|||||||
<li>ASC_Down - astro/time/brightness - bei astro wird Sonnenuntergang berechnet, bei time wird der Wert aus ASC_Time_Down_Early als Fahrzeit verwendet und bei brightness muss ASC_Time_Down_Early und ASC_Time_Down_Late korrekt gesetzt werden. Der Timer läuft dann nach ASC_Time_Down_Late Zeit, es wird aber in der Zeit zwischen ASC_Time_Down_Early und ASC_Time_Down_Late geschaut, ob die als Attribut im Moduldevice hinterlegte ASC_brightnessMinVal erreicht wurde. Wenn ja, wird der Rollladen runter gefahren</li>
|
<li>ASC_Down - astro/time/brightness - bei astro wird Sonnenuntergang berechnet, bei time wird der Wert aus ASC_Time_Down_Early als Fahrzeit verwendet und bei brightness muss ASC_Time_Down_Early und ASC_Time_Down_Late korrekt gesetzt werden. Der Timer läuft dann nach ASC_Time_Down_Late Zeit, es wird aber in der Zeit zwischen ASC_Time_Down_Early und ASC_Time_Down_Late geschaut, ob die als Attribut im Moduldevice hinterlegte ASC_brightnessMinVal erreicht wurde. Wenn ja, wird der Rollladen runter gefahren</li>
|
||||||
<li>ASC_Mode_Down - always/home/absent/off - Wann darf die Automatik steuern. immer, niemals, bei Abwesenheit des Roommate (ist kein Roommate und absent eingestellt, wird gar nicht gesteuert)</li>
|
<li>ASC_Mode_Down - always/home/absent/off - Wann darf die Automatik steuern. immer, niemals, bei Abwesenheit des Roommate (ist kein Roommate und absent eingestellt, wird gar nicht gesteuert)</li>
|
||||||
<li>ASC_Mode_Up - always/home/absent/off - Wann darf die Automatik steuern. immer, niemals, bei Abwesenheit des Roommate (ist kein Roommate und absent eingestellt, wird gar nicht gesteuert)</li>
|
<li>ASC_Mode_Up - always/home/absent/off - Wann darf die Automatik steuern. immer, niemals, bei Abwesenheit des Roommate (ist kein Roommate und absent eingestellt, wird gar nicht gesteuert)</li>
|
||||||
<li>ASC_Drive_Offset - maximale zufällige Verzögerung in Sekunden bei der Berechnung der Fahrzeiten, 0 bedeutet keine Verzögerung, -1 bedeutet, dass das gleichwertige Attribut aus dem ASC Device ausgewertet werden soll.</li>
|
<li>ASC_Drive_Offset - maximaler Wert für einen zufällig ermittelte Verzögerungswert in Sekunden bei der Berechnung der Fahrzeiten, 0 bedeutet keine Verzögerung, -1 bedeutet, dass das gleichwertige Attribut aus dem ASC Device ausgewertet werden soll.</li>
|
||||||
|
<li>ASC_Drive_OffsetStart - in Sekunden verzögerter Wert ab welchen dann erst das Offset startet und dazu addiert wird. Funktioniert nur wenn gleichzeitig ein Drive_Offset gesetzt wird.</li>
|
||||||
<li>ASC_Open_Pos - in 10 Schritten von 0 bis 100, Default ist abhängig vom Attribut ASC</li>
|
<li>ASC_Open_Pos - in 10 Schritten von 0 bis 100, Default ist abhängig vom Attribut ASC</li>
|
||||||
<li>ASC_Partymode - on/off - schaltet den Partymodus an oder aus. Wird am ASC Device set ASC-DEVICE partyMode on geschalten, werden alle Fahrbefehle an den Rollläden, welche das Attribut auf on haben, zwischengespeichert und später erst ausgeführt</li>
|
<li>ASC_Partymode - on/off - schaltet den Partymodus an oder aus. Wird am ASC Device set ASC-DEVICE partyMode on geschalten, werden alle Fahrbefehle an den Rollläden, welche das Attribut auf on haben, zwischengespeichert und später erst ausgeführt</li>
|
||||||
<li>ASC_Pos_Reading - Name des Readings, welches die Position des Rollladen in Prozent an gibt; wird bei unbekannten Device Typen auch als set Befehl zum fahren verwendet</li>
|
<li>ASC_Pos_Reading - Name des Readings, welches die Position des Rollladen in Prozent an gibt; wird bei unbekannten Device Typen auch als set Befehl zum fahren verwendet</li>
|
||||||
@ -3933,7 +4009,9 @@ sub getRainSensorShuttersClosedPos {
|
|||||||
<li>ASC_Shading_StateChange_Cloudy - Brightness Wert ab welchen die Beschattung aufgehoben werden soll, immer in Abhängikkeit der anderen einbezogenden Sensorwerte</li>
|
<li>ASC_Shading_StateChange_Cloudy - Brightness Wert ab welchen die Beschattung aufgehoben werden soll, immer in Abhängikkeit der anderen einbezogenden Sensorwerte</li>
|
||||||
<li>ASC_Shading_Min_Elevation - ab welcher Höhe des Sonnenstandes soll beschattet werden, immer in Abhängikkeit der anderen einbezogenden Sensorwerte</li>
|
<li>ASC_Shading_Min_Elevation - ab welcher Höhe des Sonnenstandes soll beschattet werden, immer in Abhängikkeit der anderen einbezogenden Sensorwerte</li>
|
||||||
<li>ASC_Shading_Min_OutsideTemperature - ab welcher Temperatur soll Beschattet werden, immer in Abhängikkeit der anderen einbezogenden Sensorwerte</li>
|
<li>ASC_Shading_Min_OutsideTemperature - ab welcher Temperatur soll Beschattet werden, immer in Abhängikkeit der anderen einbezogenden Sensorwerte</li>
|
||||||
<li>ASC_Shading_WaitingPeriod - wie viele Sekunden soll gewartet werden bevor eine weitere Auswertung der Sensordaten für die Beschattung statt finden soll</li>
|
<li>ASC_Shading_WaitingPeriod - wie viele Sekunden soll gewartet werden bevor eine weitere Auswertung der Sensordaten für die Beschattung statt finden soll</li>
|
||||||
|
<li>ASC_PrivacyDownTime_beforNightClose - wie viele Sekunden vor dem abendlichen schlie&zlig;en soll der Rollladen in die Sichtschutzposition fahren, -1 bedeutet das diese Funktion unbeachtet bleiben soll</li>
|
||||||
|
<li>ASC_PrivacyDown_Pos - Position den Rollladens für den Sichtschutz</li>
|
||||||
</ul>
|
</ul>
|
||||||
</ul>
|
</ul>
|
||||||
</ul>
|
</ul>
|
||||||
|
Loading…
Reference in New Issue
Block a user