diff --git a/fhem/CHANGED b/fhem/CHANGED
index a095142a6..293824821 100644
--- a/fhem/CHANGED
+++ b/fhem/CHANGED
@@ -1,5 +1,7 @@
# 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.
+ - bugfix: 73_AutoShuttersControl: add new english commandref, fix many bugs
+ change manual drive detection code
- bugfix: 73_DoorBird: bugfix for History-Image on event.
- bugfix: 93_DbLog: fix ignore MinInterval if value is "0", Forum: #100344
- change: 36_Vallox: added reading for handling homebridge speed control
diff --git a/fhem/FHEM/73_AutoShuttersControl.pm b/fhem/FHEM/73_AutoShuttersControl.pm
index e8d012065..845ad345f 100644
--- a/fhem/FHEM/73_AutoShuttersControl.pm
+++ b/fhem/FHEM/73_AutoShuttersControl.pm
@@ -7,13 +7,14 @@
#
# Special thanks goes to:
# - Bernd (Cluni) this module is based on the logic of his script "Rollladensteuerung für HM/ROLLO inkl. Abschattung und Komfortfunktionen in Perl" (https://forum.fhem.de/index.php/topic,73964.0.html)
-# - Beta-User for many tests and ideas
+# - Beta-User for many tests, many suggestions and good discussions
# - pc1246 write english commandref
# - FunkOdyssey commandref style
# - sledge fix many typo in commandref
# - many User that use with modul and report bugs
# - Christoph (christoph.kaiser.in) Patch that expand RegEx for Window Events
# - Julian (Loredo) expand Residents Events for new Residents functions
+# - Christoph (Christoph Morrison) for fix Commandref, many suggestions and good discussions
#
#
# This script is free software; you can redistribute it and/or modify
@@ -47,22 +48,22 @@ use strict;
use warnings;
use FHEM::Meta;
-my $version = '0.6.14';
+my $version = '0.6.15';
sub AutoShuttersControl_Initialize($) {
my ($hash) = @_;
- ### alte Attribute welche entfernt werden
- my $oldAttr =
- 'ASC_temperatureSensor '
- . 'ASC_temperatureReading '
- . 'ASC_residentsDevice '
- . 'ASC_residentsDeviceReading '
- . 'ASC_rainSensorDevice '
- . 'ASC_rainSensorReading '
- . 'ASC_rainSensorShuttersClosedPos:0,10,20,30,40,50,60,70,80,90,100 '
- . 'ASC_brightnessMinVal '
- . 'ASC_brightnessMaxVal ';
+# ### alte Attribute welche entfernt werden
+# my $oldAttr =
+# 'ASC_temperatureSensor '
+# . 'ASC_temperatureReading '
+# . 'ASC_residentsDevice '
+# . 'ASC_residentsDeviceReading '
+# . 'ASC_rainSensorDevice '
+# . 'ASC_rainSensorReading '
+# . 'ASC_rainSensorShuttersClosedPos:0,10,20,30,40,50,60,70,80,90,100 '
+# . 'ASC_brightnessMinVal '
+# . 'ASC_brightnessMaxVal ';
## Da ich mit package arbeite müssen in die Initialize für die jeweiligen hash Fn Funktionen der Funktionsname
# und davor mit :: getrennt der eigentliche package Name des Modules
@@ -91,7 +92,7 @@ sub AutoShuttersControl_Initialize($) {
. 'ASC_expert:1 '
. 'ASC_blockAscDrivesAfterManual:0,1 '
. 'ASC_debug:1 '
- . $oldAttr
+# . $oldAttr
. $readingFnAttributes;
$hash->{NotifyOrderPrefix} = '51-'; # Order Nummer für NotifyFn
@@ -220,7 +221,7 @@ my %userAttrList = (
my %posSetCmds = (
ZWave => 'dim',
- Siro => 'position',
+ Siro => 'pct',
CUL_HM => 'pct',
ROLLO => 'pct',
SOMFY => 'position',
@@ -316,7 +317,8 @@ sub Undef($$) {
sub Attr(@) {
my ( $cmd, $name, $attrName, $attrVal ) = @_;
- my $hash = $defs{$name};
+
+ # my $hash = $defs{$name};
return undef;
}
@@ -621,17 +623,17 @@ sub ShuttersDeviceScan($) {
push( @{ $hash->{helper}{shuttersList} }, $_ )
; ## einem Hash wird ein Array zugewiesen welches die Liste der erkannten Rollos beinhaltet
- delFromDevAttrList( $_, 'ASC_Wind_SensorDevice' )
- ; # temporär muss später gelöscht werden ab Version 0.4.0.10
- delFromDevAttrList( $_, 'ASC_Wind_SensorReading' )
- ; # temporär muss später gelöscht werden ab Version 0.4.0.10
- delFromDevAttrList( $_, 'ASC_Wind_minMaxSpeed' )
- ; # temporär muss später gelöscht werden ab Version 0.4.11beta6
- delFromDevAttrList( $_, 'ASC_Wind_Pos' )
- ; # temporär muss später gelöscht werden ab Version 0.4.11beta6
- CommandDeleteReading( undef, $_ . ' ASC_Time_PrivacyDriveUp' )
- if ( ReadingsVal( $_, 'ASC_Time_PrivacyDriveUp', 'none' ) ne 'none' )
- ; # temporär muss später gelöscht werden ab Version 0.6.3
+# delFromDevAttrList( $_, 'ASC_Wind_SensorDevice' )
+# ; # temporär muss später gelöscht werden ab Version 0.4.0.10
+# delFromDevAttrList( $_, 'ASC_Wind_SensorReading' )
+# ; # temporär muss später gelöscht werden ab Version 0.4.0.10
+# delFromDevAttrList( $_, 'ASC_Wind_minMaxSpeed' )
+# ; # temporär muss später gelöscht werden ab Version 0.4.11beta6
+# delFromDevAttrList( $_, 'ASC_Wind_Pos' )
+# ; # temporär muss später gelöscht werden ab Version 0.4.11beta6
+# CommandDeleteReading( undef, $_ . ' ASC_Time_PrivacyDriveUp' )
+# if ( ReadingsVal( $_, 'ASC_Time_PrivacyDriveUp', 'none' ) ne 'none' )
+# ; # temporär muss später gelöscht werden ab Version 0.6.3
$shuttersList = $shuttersList . ',' . $_;
$shutters->setShuttersDev($_);
@@ -647,52 +649,52 @@ sub ShuttersDeviceScan($) {
if ( ReadingsVal( $_, 'ASC_Enable', 'none' ) eq 'none' );
}
- ### Temporär und muss später entfernt werden
- CommandAttr( undef,
- $name
- . ' ASC_tempSensor '
- . AttrVal( $name, 'ASC_temperatureSensor', 'none' ) . ':'
- . AttrVal( $name, 'ASC_temperatureReading', 'temperature' ) )
- if ( AttrVal( $name, 'ASC_temperatureSensor', 'none' ) ne 'none' );
- CommandAttr( undef,
- $name
- . ' ASC_residentsDev '
- . AttrVal( $name, 'ASC_residentsDevice', 'none' ) . ':'
- . AttrVal( $name, 'ASC_residentsDeviceReading', 'state' ) )
- if ( AttrVal( $name, 'ASC_residentsDevice', 'none' ) ne 'none' );
- CommandAttr( undef,
- $name
- . ' ASC_rainSensor '
- . AttrVal( $name, 'ASC_rainSensorDevice', 'none' ) . ':'
- . AttrVal( $name, 'ASC_rainSensorReading', 'rain' ) . ' 100 '
- . AttrVal( $name, 'ASC_rainSensorShuttersClosedPos', 50 ) )
- if ( AttrVal( $name, 'ASC_rainSensorDevice', 'none' ) ne 'none' );
- CommandAttr( undef,
- $name
- . ' ASC_brightnessDriveUpDown '
- . AttrVal( $name, 'ASC_brightnessMinVal', 500 ) . ':'
- . AttrVal( $name, 'ASC_brightnessMaxVal', 800 ) )
- if ( AttrVal( $name, 'ASC_brightnessMinVal', 'none' ) ne 'none' );
-
- CommandDeleteAttr( undef, $name . ' ASC_temperatureSensor' )
- if ( AttrVal( $name, 'ASC_temperatureSensor', 'none' ) ne 'none' );
- CommandDeleteAttr( undef, $name . ' ASC_temperatureReading' )
- if ( AttrVal( $name, 'ASC_temperatureReading', 'none' ) ne 'none' );
- CommandDeleteAttr( undef, $name . ' ASC_residentsDevice' )
- if ( AttrVal( $name, 'ASC_residentsDevice', 'none' ) ne 'none' );
- CommandDeleteAttr( undef, $name . ' ASC_residentsDeviceReading' )
- if ( AttrVal( $name, 'ASC_residentsDeviceReading', 'none' ) ne 'none' );
- CommandDeleteAttr( undef, $name . ' ASC_rainSensorDevice' )
- if ( AttrVal( $name, 'ASC_rainSensorDevice', 'none' ) ne 'none' );
- CommandDeleteAttr( undef, $name . ' ASC_rainSensorReading' )
- if ( AttrVal( $name, 'ASC_rainSensorReading', 'none' ) ne 'none' );
- CommandDeleteAttr( undef, $name . ' ASC_rainSensorShuttersClosedPos' )
- if (
- AttrVal( $name, 'ASC_rainSensorShuttersClosedPos', 'none' ) ne 'none' );
- CommandDeleteAttr( undef, $name . ' ASC_brightnessMinVal' )
- if ( AttrVal( $name, 'ASC_brightnessMinVal', 'none' ) ne 'none' );
- CommandDeleteAttr( undef, $name . ' ASC_brightnessMaxVal' )
- if ( AttrVal( $name, 'ASC_brightnessMaxVal', 'none' ) ne 'none' );
+# ### Temporär und muss später entfernt werden
+# CommandAttr( undef,
+# $name
+# . ' ASC_tempSensor '
+# . AttrVal( $name, 'ASC_temperatureSensor', 'none' ) . ':'
+# . AttrVal( $name, 'ASC_temperatureReading', 'temperature' ) )
+# if ( AttrVal( $name, 'ASC_temperatureSensor', 'none' ) ne 'none' );
+# CommandAttr( undef,
+# $name
+# . ' ASC_residentsDev '
+# . AttrVal( $name, 'ASC_residentsDevice', 'none' ) . ':'
+# . AttrVal( $name, 'ASC_residentsDeviceReading', 'state' ) )
+# if ( AttrVal( $name, 'ASC_residentsDevice', 'none' ) ne 'none' );
+# CommandAttr( undef,
+# $name
+# . ' ASC_rainSensor '
+# . AttrVal( $name, 'ASC_rainSensorDevice', 'none' ) . ':'
+# . AttrVal( $name, 'ASC_rainSensorReading', 'rain' ) . ' 100 '
+# . AttrVal( $name, 'ASC_rainSensorShuttersClosedPos', 50 ) )
+# if ( AttrVal( $name, 'ASC_rainSensorDevice', 'none' ) ne 'none' );
+# CommandAttr( undef,
+# $name
+# . ' ASC_brightnessDriveUpDown '
+# . AttrVal( $name, 'ASC_brightnessMinVal', 500 ) . ':'
+# . AttrVal( $name, 'ASC_brightnessMaxVal', 800 ) )
+# if ( AttrVal( $name, 'ASC_brightnessMinVal', 'none' ) ne 'none' );
+#
+# CommandDeleteAttr( undef, $name . ' ASC_temperatureSensor' )
+# if ( AttrVal( $name, 'ASC_temperatureSensor', 'none' ) ne 'none' );
+# CommandDeleteAttr( undef, $name . ' ASC_temperatureReading' )
+# if ( AttrVal( $name, 'ASC_temperatureReading', 'none' ) ne 'none' );
+# CommandDeleteAttr( undef, $name . ' ASC_residentsDevice' )
+# if ( AttrVal( $name, 'ASC_residentsDevice', 'none' ) ne 'none' );
+# CommandDeleteAttr( undef, $name . ' ASC_residentsDeviceReading' )
+# if ( AttrVal( $name, 'ASC_residentsDeviceReading', 'none' ) ne 'none' );
+# CommandDeleteAttr( undef, $name . ' ASC_rainSensorDevice' )
+# if ( AttrVal( $name, 'ASC_rainSensorDevice', 'none' ) ne 'none' );
+# CommandDeleteAttr( undef, $name . ' ASC_rainSensorReading' )
+# if ( AttrVal( $name, 'ASC_rainSensorReading', 'none' ) ne 'none' );
+# CommandDeleteAttr( undef, $name . ' ASC_rainSensorShuttersClosedPos' )
+# if (
+# AttrVal( $name, 'ASC_rainSensorShuttersClosedPos', 'none' ) ne 'none' );
+# CommandDeleteAttr( undef, $name . ' ASC_brightnessMinVal' )
+# if ( AttrVal( $name, 'ASC_brightnessMinVal', 'none' ) ne 'none' );
+# CommandDeleteAttr( undef, $name . ' ASC_brightnessMaxVal' )
+# if ( AttrVal( $name, 'ASC_brightnessMaxVal', 'none' ) ne 'none' );
$hash->{NOTIFYDEV} = "global," . $name . $shuttersList;
@@ -1330,20 +1332,20 @@ sub EventProcessingRain($@) {
if ( $val > $triggerMax
and $shutters->getStatus != $closedPos
and IsAfterShuttersManualBlocking($shuttersDev)
- and $shutters->getRainProtectionStatus eq 'unprotection' )
+ and $shutters->getRainProtectionStatus eq 'unprotected' )
{
- $shutters->setLastDrive('rain protection');
+ $shutters->setLastDrive('rain protected');
$shutters->setDriveCmd($closedPos);
- $shutters->setRainProtectionStatus('protection');
+ $shutters->setRainProtectionStatus('protected');
}
elsif ( ( $val == 0 or $val < $triggerMax )
and $shutters->getStatus == $closedPos
and IsAfterShuttersManualBlocking($shuttersDev)
- and $shutters->getRainProtectionStatus eq 'protection' )
+ and $shutters->getRainProtectionStatus eq 'protected' )
{
- $shutters->setLastDrive('rain un-protection');
+ $shutters->setLastDrive('rain un-protected');
$shutters->setDriveCmd( $shutters->getLastPos );
- $shutters->setRainProtectionStatus('unprotection');
+ $shutters->setRainProtectionStatus('unprotected');
}
}
}
@@ -1380,18 +1382,18 @@ sub EventProcessingWind($@) {
);
if ( $1 > $shutters->getWindMax
- and $shutters->getWindProtectionStatus eq 'unprotection' )
+ and $shutters->getWindProtectionStatus eq 'unprotected' )
{
- $shutters->setLastDrive('wind protection');
+ $shutters->setLastDrive('wind protected');
$shutters->setDriveCmd( $shutters->getWindPos );
- $shutters->setWindProtectionStatus('protection');
+ $shutters->setWindProtectionStatus('protected');
}
elsif ( $1 < $shutters->getWindMin
- and $shutters->getWindProtectionStatus eq 'protection' )
+ and $shutters->getWindProtectionStatus eq 'protected' )
{
- $shutters->setLastDrive('wind un-protection');
+ $shutters->setLastDrive('wind un-protected');
$shutters->setDriveCmd( $shutters->getLastPos );
- $shutters->setWindProtectionStatus('unprotection');
+ $shutters->setWindProtectionStatus('unprotected');
}
ASC_Debug( 'EventProcessingWind: '
@@ -1720,8 +1722,8 @@ sub EventProcessingShadingBrightness($@) {
)
and IsDay($shuttersDev)
and $ascDev->getAutoShuttersControlShading eq 'on'
- and $shutters->getRainProtectionStatus eq 'unprotection'
- and $shutters->getWindProtectionStatus eq 'unprotection'
+ and $shutters->getRainProtectionStatus eq 'unprotected'
+ and $shutters->getWindProtectionStatus eq 'unprotected'
)
{
ShadingProcessing(
@@ -1743,8 +1745,8 @@ sub EventProcessingShadingBrightness($@) {
}
elsif ( $shutters->getShadingStatus eq 'in'
and $shutters->getShadingMode ne $homemode
- and $shutters->getRainProtectionStatus eq 'unprotection'
- and $shutters->getWindProtectionStatus eq 'unprotection' )
+ and $shutters->getRainProtectionStatus eq 'unprotected'
+ and $shutters->getWindProtectionStatus eq 'unprotected' )
{
$shutters->setShadingStatus('out');
ShadingProcessingDriveCommand( $hash, $shuttersDev );
@@ -1805,8 +1807,8 @@ sub EventProcessingTwilightDevice($@) {
)
and IsDay($shuttersDev)
and $ascDev->getAutoShuttersControlShading eq 'on'
- and $shutters->getRainProtectionStatus eq 'unprotection'
- and $shutters->getWindProtectionStatus eq 'unprotection'
+ and $shutters->getRainProtectionStatus eq 'unprotected'
+ and $shutters->getWindProtectionStatus eq 'unprotected'
)
{
ShadingProcessing(
@@ -2174,6 +2176,17 @@ sub EventProcessingShutters($@) {
$shutters->setLastDriveReading;
$ascDev->setStateReading;
$shutters->setLastManPos($1);
+
+ ASC_Debug(
+ 'EventProcessingShutters: eine manualle Fahrt wurde erkannt!');
+ }
+ else {
+ $shutters->setLastDriveReading;
+ $ascDev->setStateReading;
+
+ ASC_Debug(
+'EventProcessingShutters: eine automatisierte Fahrt durch ASC wurde erkannt! Es werden nun die LastDriveReading und StateReading Werte gesetzt!'
+ );
}
}
}
@@ -2360,24 +2373,24 @@ sub RenewSunRiseSetShuttersTimer($) {
$shutters->setInTimerFuncHash(undef);
CreateSunRiseSetShuttersTimer( $hash, $_ );
- ### Temporär angelegt damit die neue Attributs Parameter Syntax verteilt werden kann
+# ### Temporär angelegt damit die neue Attributs Parameter Syntax verteilt werden kann
# CommandAttr(undef, $_ . ' ASC_BrightnessSensor '.AttrVal($_, 'ASC_Brightness_Sensor', 'none').':'.AttrVal($_, 'ASC_Brightness_Reading', 'brightness').' '.AttrVal($_, 'ASC_BrightnessMinVal', 500).':'.AttrVal($_, 'ASC_BrightnessMaxVal', 700)) if ( AttrVal($_, 'ASC_Brightness_Sensor', 'none') ne 'none' );
- $attr{$_}{'ASC_BrightnessSensor'} =
- AttrVal( $_, 'ASC_Brightness_Sensor', 'none' ) . ':'
- . AttrVal( $_, 'ASC_Brightness_Reading', 'brightness' ) . ' '
- . AttrVal( $_, 'ASC_BrightnessMinVal', 500 ) . ':'
- . AttrVal( $_, 'ASC_BrightnessMaxVal', 700 )
- if ( AttrVal( $_, 'ASC_Brightness_Sensor', 'none' ) ne 'none' );
-
- delFromDevAttrList( $_, 'ASC_Brightness_Sensor' )
- ; # temporär muss später gelöscht werden ab Version 0.4.11beta9
- delFromDevAttrList( $_, 'ASC_Brightness_Reading' )
- ; # temporär muss später gelöscht werden ab Version 0.4.11beta9
- delFromDevAttrList( $_, 'ASC_BrightnessMinVal' )
- ; # temporär muss später gelöscht werden ab Version 0.4.11beta9
- delFromDevAttrList( $_, 'ASC_BrightnessMaxVal' )
- ; # temporär muss später gelöscht werden ab Version 0.4.11beta9
+# $attr{$_}{'ASC_BrightnessSensor'} =
+# AttrVal( $_, 'ASC_Brightness_Sensor', 'none' ) . ':'
+# . AttrVal( $_, 'ASC_Brightness_Reading', 'brightness' ) . ' '
+# . AttrVal( $_, 'ASC_BrightnessMinVal', 500 ) . ':'
+# . AttrVal( $_, 'ASC_BrightnessMaxVal', 700 )
+# if ( AttrVal( $_, 'ASC_Brightness_Sensor', 'none' ) ne 'none' );
+#
+# delFromDevAttrList( $_, 'ASC_Brightness_Sensor' )
+# ; # temporär muss später gelöscht werden ab Version 0.4.11beta9
+# delFromDevAttrList( $_, 'ASC_Brightness_Reading' )
+# ; # temporär muss später gelöscht werden ab Version 0.4.11beta9
+# delFromDevAttrList( $_, 'ASC_BrightnessMinVal' )
+# ; # temporär muss später gelöscht werden ab Version 0.4.11beta9
+# delFromDevAttrList( $_, 'ASC_BrightnessMaxVal' )
+# ; # temporär muss später gelöscht werden ab Version 0.4.11beta9
}
}
@@ -3410,8 +3423,6 @@ sub SetCmdFn($) {
if ( $shutters->getStatus != $posValue ) {
$shutters->setLastPos( $shutters->getStatus );
- $shutters->setLastDriveReading;
- $ascDev->setStateReading;
}
else {
$shutters->setLastDrive(
@@ -3522,7 +3533,7 @@ sub setHardLockOut {
CommandSet( undef,
$self->{shuttersDev} . ' '
. ( $cmd eq 'on' ? 'protectionOn' : 'protectionOff' ) )
- if ( $shutters->getLockOutCmd eq 'protection' );
+ if ( $shutters->getLockOutCmd eq 'protected' );
}
return 0;
}
@@ -3884,7 +3895,7 @@ sub setShadingStatus {
return 0;
}
-sub setWindProtectionStatus { # Werte protection, unprotection
+sub setWindProtectionStatus { # Werte protected, unprotected
my ( $self, $value ) = @_;
$self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{VAL} = $value
@@ -3892,7 +3903,7 @@ sub setWindProtectionStatus { # Werte protection, unprotection
return 0;
}
-sub setRainProtectionStatus { # Werte protection, unprotection
+sub setRainProtectionStatus { # Werte protected, unprotected
my ( $self, $value ) = @_;
$self->{ $self->{shuttersDev} }->{RainProtection}->{VAL} = $value
@@ -3920,7 +3931,7 @@ sub getIfInShading {
);
}
-sub getWindProtectionStatus { # Werte protection, unprotection
+sub getWindProtectionStatus { # Werte protected, unprotected
my $self = shift;
return (
@@ -3931,11 +3942,11 @@ sub getWindProtectionStatus { # Werte protection, unprotection
)
)
? $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{VAL}
- : 'unprotection'
+ : 'unprotected'
);
}
-sub getRainProtectionStatus { # Werte protection, unprotection
+sub getRainProtectionStatus { # Werte protected, unprotected
my $self = shift;
return (
@@ -3946,7 +3957,7 @@ sub getRainProtectionStatus { # Werte protection, unprotection
)
)
? $self->{ $self->{shuttersDev} }->{RainProtection}->{VAL}
- : 'unprotection'
+ : 'unprotected'
);
}
@@ -4144,17 +4155,15 @@ sub getShadingWaitingPeriod {
sub getOffset {
my $self = shift;
- return AttrVal( $self->{shuttersDev}, 'ASC_Drive_Offset', -1 );
+ my $val = AttrVal( $self->{shuttersDev}, 'ASC_Drive_Offset', -1 );
+ return ( $val =~ /^\d+$/ ? $val : -1 );
}
sub getOffsetStart {
my $self = shift;
- return (
- AttrVal( $self->{shuttersDev}, 'ASC_Drive_OffsetStart', -1 ) > 0
- ? AttrVal( $self->{shuttersDev}, 'ASC_Drive_OffsetStart', -1 )
- : -1
- );
+ my $val = AttrVal( $self->{shuttersDev}, 'ASC_Drive_OffsetStart', -1 );
+ return ( ( $val > 0 and $val =~ /^\d+$/ ) ? $val : -1 );
}
sub getBlockingTimeAfterManual {
@@ -5128,11 +5137,603 @@ sub getblockAscDrivesAfterManual {
AutoShuttersControl
-
- We apologize.
- The english translation will follow soon.
- Please use the german manual until then.
-
+
+
+ AutoShuttersControl (ASC) provides a complete automation for shutters with comprehensive
+ configuration options, e.g. open or close shutters depending on the sunrise or sunset,
+ by outdoor brightness or randomly for simulate presence.
+
+
+ After telling ASC which shutters should be controlled, several in-depth configuration options
+ are provided. With these and in combination with a resident presence state, complex scenarios are possible:
+ For example, shutters could be opened if a resident awakes from sleep and the sun is already rosen. Or if a
+ closed window with shutters down is tilted, the shutters could be half opened for ventilation.
+ Many more is possible.
+
+
+ Define
+
+ define <name> AutoShuttersControl
+
+ Usage:
+
+
+ define myASControl AutoShuttersControl
+
+
+ This creates an new AutoShuttersControl device, called myASControl.
+ Now was the new global attribute ASC added to the FHEM installation.
+ Each shutter that is to be controlled by AutoShuttersControl must now have the attribute ASC set to 1 or 2.
+ The value 1 is to be used with devices whose state is given as position (i.e. ROLLO or Siro, shutters
+ openend is 0, shutters closed is 100), 2 with devices whose state is given as percent closed (i.e. HomeMatic,
+ shutters opened is 100, closed is 0).
+ After setting the attributes to all devices who should be controlled, the automatic scan at the main device
+ can be started for example with
+ set myASControl scanForShutters
+
+
+
+ Readings
+
+ Within the ASC device:
+
+ - ..._nextAstroTimeEvent - Next astro event: sunrise, sunset or fixed time
+ - ..._PosValue - current position
+ - ..._lastPosValue - shutters last position
+ - ..._lastDelayPosValue - last specified order, will be executed with the next matching
+ event
+
+ - partyMode - on/off - is working mode set to part?y
+ - ascEnable - on/off - are the associated shutters control by ASC completely?
+ - controlShading - on/off - are the associated shutters controlled for shading by ASC?
+
+ - hardLockOut - on/off - switch for preventing a global hard lock out
+ - room_... - list of every found shutter for every room: room_Sleeping: Patio
+ - selfDefense - state of the self defense mode
+ - state - state of the ASC device: active, enabled, disabled or other state information
+
+ - sunriseTimeWeHoliday - on/off - state of the weekend and holiday support
+ - userAttrList - ASC sets some user defined attributes (userattr)
+ for the shutter devices. This readings shows the current state of the given user attributes to the
+ shutter devices.
+
+
+
+ Within the shutter devices:
+
+ - ASC_Enable - on/off - shutter is controlled by ASC or not
+ - ASC_Time_DriveUp - if the astro mode is used, the next sunrise is shown.
+ If the brightness or time mode is used, the value from ASC_Time_Up_Late is shown.
+
+ - ASC_Time_DriveDown - if the astro mode is used, the next sunset is shown.
+ If the brightness or time mode is used, the value from ASC_TASC_Time_Down_Lateime_Up_Late is
+ shown.
+
+ - ASC_ShuttersLastDrive - initiator for the last action
+
+
+
+
+ Set
+
+ - ascEnable - on/off - enable or disable the global control by ASC
+ - controlShading - on/off - enable or disable the global shading control by ASC
+ - createNewNotifyDev - re-creates the internal structure for NOTIFYDEV. Is only present if
+ the
+ ASC_Expert attribute is set to 1.
+
+ - hardLockOut - on/off - controls the global hard lock out protection for shutters, whose
+ ASC_LockOut
+ attribute is set accordingly. See the attributes section below.
+
+ - partyMode - on/off - controls the global party mode for shutters. Every shutters whose
+ ASC_Partymode attribute is set to on, is not longer controlled by ASC. The last saved
+ working command send to the device, i.e. by a event, created by a window or presence event, will be executed
+ once the party mode is disabled.
+
+ - renewSetSunriseSunsetTimer - resets the sunrise and sunset timers for every associated
+ shutter device and creates new internal FHEM timers.
+
+ - scanForShutters - scans the whole FHEM installation for (new) devices whose ASC
+ attribute is set (to 1 or 2, see above).
+
+ - selfDefense - on/off - controls the self defense function. This function listens for
+ example on a residents device. If this device is set to absent and a window is still open, ASC will close
+ the shutter for a rudimentary burglary protection.
+
+ - shutterASCenableToggle - on/off - controls if the ASC controls are shown at a associated
+ shutter device.
+
+ - sunriseTimeWeHoliday - on/off - controls the weekend and holiday support. If enabled, the
+ ASC_Time_Up_WE_Holiday attribute is considered.
+
+ - wiggle - wiggles a device for a given value (default 5%, controlled by
+ ASC_WiggleValue) up or down and back after a minute. Useful as a deterrence in combination with
+ alarm system.
+
+
+
+
+ Get
+
+ - showShuttersInformations - shows an information for all associated shutter devices with
+ next activation time, mode and several other state informations.
+
+ - showNotifyDevsInformations - shows the generated NOTIFYDEV structure. Useful for
+ debugging and only shown if the ASC_expert attribute is set to 1.
+
+
+
+
+ Attributes
+
+ Im ASC-Device
+
+
+ - ASC_autoAstroModeEvening - REAL, CIVIL, NAUTIC, ASTRONOMIC or HORIZON
+
+ - ASC_autoAstroModeEveningHorizon - Height above the horizon. Is only considered
+ if the ASC_autoAstroModeEvening attribute is set to HORIZON. Defaults to 0.
+
+
+ - ASC_autoAstroModeMorning - REAL, CIVIL, NAUTIC, ASTRONOMIC or HORIZON
+
+ - ASC_autoAstroModeMorningHorizon - Height above the horizon. Is only considered
+ if the ASC_autoAstroModeMorning attribute is set to HORIZON. Defaults to 0.
+
+
+ - ASC_autoShuttersControlComfort - on/off -
+ Controls the comfort functions: If a three state sensor, like the HmIP-SRH window handle
+ sensor, is installed, ASC will open the window if the sensor signals open position. The
+ ASC_ComfortOpen_Pos attribute has to be set for the shutter to on, defaults to off.
+
+
+ - ASC_autoShuttersControlEvening - on/off - Enables the automatic control by ASC
+ at the evenings.
+
+
+ - ASC_autoShuttersControlMorning - on/off - Enables the automatic control by ASC
+ at the mornings.
+
+
+ - ASC_blockAscDrivesAfterManual - 0,1 - If set to 1, ASC will not
+ automatically control a shutter if there was an manual control to the shutter. To be considered, the
+ ASC_ShuttersLastDrive reading has to contain the value manual and the shutter is in
+ an unknown (i.e. not otherwise configured in ASC) position.
+
+
+ - ASC_brightnessDriveUpDown - VALUE-MORNING:VALUE-EVENING - Drive the shutters by
+ brightness. VALUE-MORNING sets the brightness threshold for the morning. If the value is
+ reached in the morning, the shutter will go up. Vice versa in the evening. This is a global setting
+ and can be overwritte per device with the ASC_BrightnessSensor attribute (see below).
+
+
+ - ASC_debug -
+ Extendend logging for debugging purposes
+
+
+ - ASC_expert - Switches the export mode on. Currently, if set to 1, get
+ and set will contain additional functions regarding the NOTIFYDEFs.
+
+
+ - ASC_freezeTemp - Temperature threshold for the freeze protection. The freeze protection
+ prevents the shutter to be operated by ASC. Last operating order will be kept.
+
+
+ - ASC_rainSensor - DEVICENAME[:READINGNAME] MAXTRIGGER[:HYSTERESE] [CLOSEDPOS] - Contains
+ settings for the rain protection. DEVICNAME specifies a rain sensor, the optional
+ READINGNAME the name of the reading at the DEVICENAME. The READINGNAME
+ should contain the values rain and dry or a numeral rain amount. MAXTRIGGER
+ sets the threshold for the amount of rain for when the shutter is driven to CLOSEDPOS as soon
+ the threshold is reached. HYSTERESE sets a hysteresis for MAXTRIGGER.
+
+
+ - ASC_residentsDev - DEVICENAME[:READINGNAME] - DEVICENAME points to a device
+ for presence, e.g. of type RESIDENTS. READINGNAME points to a reading at
+ DEVICENAME which contains a presence state, e.g. rgr_Residents:presence. The target
+ should contain values alike the RESIDENTS family.
+
+
+ - ASC_shuttersDriveOffset - Maximum random drive delay in seconds for calculating
+ the operating time. 0 equals to no delay.
+
+
+ - ASC_tempSensor - DEVICENAME[:READINGNAME] - DEVICENAME points to a device
+ with a temperature, READINGNAME to a reading located at the DEVICENAME, for example
+ OUTDOOR_TEMP:measured-temp. READINGNAME defaults to temperature.
+
+
+ - ASC_twilightDevice - points to a DEVICENAME containing values regarding
+ the sun position. Supports currently devices of type Twilight or Astro.
+
+
+ - ASC_windSensor - DEVICENAME[:READINGNAME] - DEVICENAME points to a device
+ containing a wind speed. Reads from the wind reading, if not otherwise specified by
+ READINGNAME.
+
+
+
+
+ The following attributes are deprecated and should not used in the future:
+
+
+ ASC_temperatureSensor - Warning! Deprecated! Don't use anymore!
+
+ ASC_temperatureReading - Warning! Deprecated! Don't use anymore!
+
+ ASC_residentsDevice- Warning! Deprecated! Don't use anymore!
+
+ ASC_residentsDeviceReading - Warning! Deprecated! Don't use anymore!
+
+ ASC_rainSensorDevice - Warning! Deprecated! Don't use anymore!
+
+ ASC_rainSensorReading - Warning! Deprecated! Don't use anymore!
+
+ ASC_rainSensorShuttersClosedPos - Warning! Deprecated! Don't use anymore!
+
+ ASC_brightnessMinVal - Warning! Deprecated! Don't use anymore!
+
+ ASC_brightnessMaxVal - Warning! Deprecated! Don't use anymore!
+
+
+ At shutter devices, controlled by ASC
+
+ - ASC - 0/1/2
+
+ - 0 - don't create attributes for ASC at the first scan and don't be controlled
+ by ASC
+ - 1 - inverse or venetian type blind mode. Shutter is open equals to 0, shutter is closed equals
+ to 100, is controlled by position values.
+ - 2 -
HomeMatic
mode. Shutter is open equals to 100, shutter is closed equals to 0, is
+ controlled by pct values.
+
+
+ - ASC_Antifreeze - soft/am/pm/hard/off - Freeze protection.
+
+ - soft - see ASC_Antifreeze_Pos.
+ - hard / am / pm - freeze protection will be active (everytime,
+ ante meridiem or post meridiem).
+ - off - freeze protection is disabled, default value
+
+
+ - ASC_Antifreeze_Pos - Position to be operated if the shutter should be closed,
+ but ASC_Antifreeze is not set to off. Defaults to 50.
+
+ - ASC_AutoAstroModeEvening - Can be set to REAL, CIVIL,
+ NAUTIC, ASTRONOMIC or HORIZON. Defaults to none of those.
+ - ASC_AutoAstroModeEveningHorizon - If this value is reached by the sun, a sunset is
+ presumed. Is used if ASC_autoAstroModeEvening is set to HORIZON. Defaults to none.
+
+ - ASC_AutoAstroModeMorning - Can be set to REAL, CIVIL,
+ NAUTIC, ASTRONOMIC or HORIZON. Defaults to none of those.
+ - ASC_AutoAstroModeMorningHorizon - If this value is reached by the sun, a sunrise is
+ presumed. Is used if ASC_AutoAstroModeMorning is set to HORIZON. Defaults to none.
+
+ - ASC_BlockingTime_afterManual - Time in which operations by ASC are blocked
+ after the last manual operation in seconds. Defaults to 1200 (20 minutes).
+
+ - ASC_BlockingTime_beforDayOpen - Time in which no closing operation is made by
+ ASC after opening at the morning in seconds. Defaults to 3600 (one hour).
+
+ - ASC_BlockingTime_beforNightClose - Time in which no closing operation is made by
+ ASC before closing at the evening in seconds. Defaults to 3600 (one hour).
+
+ - ASC_BrightnessSensor - DEVICE[:READING] MORNING-VALUE:EVENING-VALUE -
+ Drive this shutter by brightness. MORNING-VALUE sets the brightness threshold for the morning.
+ If the value is reached in the morning, the shutter will go up. Vice versa in the evening, specified by
+ EVENING-VALUE. Gets the brightness from DEVICE, reads by default from the
+ brightness reading, unless READING is specified. Defaults to none.
+
+ - ASC_Closed_Pos - A value from 0 to 100 in increments of 10. Depends on the ASC
+ attribute.
+
+ - ASC_ComfortOpen_Pos - A value from 0 to 100 in increments of 10. Default: depends on the
+ ASC attribute.
+
+ - ASC_Down - [astro|time|brightness] - Drive the shutter depending on this setting:
+
+ - astro - drive down at sunset
+ - time - drive at ASC_Time_Down_Early
+ - brightness - drive between ASC_Time_Down_Early and ASC_Time_Down_Late,
+ depending on the settings of ASC_BrightnessSensor (see above).
+
+ Defaults to astro.
+
+ - ASC_DriveUpMaxDuration - Drive up duration of the shutter plus 5 seconds. Defaults
+ to 60 seconds if not set.
+
+ - ASC_Drive_Offset - Maximum random drive delay in seconds for calculating the
+ driving time. 0 equals to no delay, -1 ASC_shuttersDriveOffset is used. Defaults to -1.
+
+ - ASC_Drive_OffsetStart - Fixed drive delay in seconds for calculating the
+ driving time. -1 or 0 equals to no delay. Defaults to -1 (no offset).
+
+ - ASC_LockOut [soft|hard|off] - Configures the lock out protection for the current
+ shutter. Values are:
+
+ - soft - works if the global lock out protection lockOut soft is set and a sensor
+ specified by ASC_WindowRec is set. If the sensor is set to open, the shutter will not
+ be closed. Affects only commands issued by ASC.
+
+ -
+ hard - see soft, but ASC tries also to block manual issued commands by a switch.
+
+ -
+ off - lock out protection is disabled. Default.
+
+
+
+ - ASC_LockOut_Cmd [inhibit|blocked|protection] -
+
+
+ set Befehl für das Rollladen-Device
+ zum Hardware sperren. Dieser Befehl wird gesetzt werden, wenn man "ASC_LockOut" auf hard setzt (default:
+ none)
+
+ - 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) (default: always)
+
+ - 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)
+ (default: always)
+
+ - ASC_Open_Pos - in 10 Schritten von 0 bis 100 (default: ist abhängig vom Attribut
+ ASC)
+
+ - 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 (default: off)
+
+ - 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
+
+ - ASC_PrivacyDownTime_beforNightClose - wie viele Sekunden vor dem abendlichen schließen
+ soll der Rollladen in die Sichtschutzposition fahren, -1 bedeutet das diese Funktion unbeachtet bleiben
+ soll (default: -1)
+
+ - ASC_PrivacyDown_Pos - Position den Rollladens für den Sichtschutz (default: 50)
+
+ - ASC_WindProtection - on/off - soll der Rollladen beim Regenschutz beachtet werden.
+ On=JA, off=NEIN.
+
+ - ASC_Roommate_Device - mit Komma getrennte Namen des/der Roommate Device/s, welche
+ den/die Bewohner des Raumes vom Rollladen wiedergibt. Es macht nur Sinn in Schlaf- oder Kinderzimmern
+ (default: none)
+
+ - ASC_Roommate_Reading - das Reading zum Roommate Device, welches den Status wieder gibt
+ (default: state)
+
+ - SC_Self_Defense_Exclude - on/off - bei on Wert wird dieser Rollladen bei aktiven Self
+ Defense und offenen Fenster nicht runter gefahren, wenn Residents absent ist. (default: off)
+
+
+
+ Beschreibung der Beschattungsfunktion
+ Damit die Beschattung Funktion hat, müssen folgende Anforderungen erfüllt sein.
+ Im ASC Device das Attribut "ASC_autoShuttersControlShading" mit dem Wert on, sowie
+ ein Astro/Twilight Device im Attribut "ASC_twilightDevice" und das Attribut "ASC_tempSensor".
+ In den Rollladendevices benötigt ihr ein Helligkeitssensor als Attribut
+ "ASC_BrightnessSensor", sofern noch nicht vorhanden. Findet der Sensor nur für die Beschattung
+ Verwendung ist der Wert DEVICENAME[:READING] ausreichend.
+ Alle weiteren Attribute sind optional und wenn nicht gesetzt mit Default-Werten belegt. Ihr solltet
+ sie dennoch einmal anschauen und entsprechend Euren Gegebenheiten setzen. Die Werte für; die
+ Fensterposition und den Vor- Nachlaufwinkel sowie die Grenzwerte für die StateChange_Cloudy und
+ StateChange_Sunny solltet ihr besondere Beachtung dabei schenken.
+ - ASC_Shading_Angle_Left - Vorlaufwinkel im Bezug zum Fenster, ab wann abgeschattet
+ wird. Beispiel: Fenster 180° - 85° ==> ab Sonnenpos. 95° wird abgeschattet (default: 75)
+
+ - ASC_Shading_Angle_Right - Nachlaufwinkel im Bezug zum Fenster, bis wann
+ abgeschattet wird. Beispiel: Fenster 180° + 85° ==> bis Sonnenpos. 265° wird abgeschattet (default:
+ 75)
+
+ - ASC_Shading_Direction - Position in Grad, auf der das Fenster liegt - genau Osten wäre
+ 90, Süden 180 und Westen 270 (default: 180)
+
+ - ASC_Shading_Min_Elevation - ab welcher Höhe des Sonnenstandes soll beschattet
+ werden, immer in Abhängigkeit der anderen einbezogenen Sensorwerte (default: 25.0)
+
+ - ASC_Shading_Min_OutsideTemperature - ab welcher Temperatur soll Beschattet werden,
+ immer in Abhängigkeit der anderen einbezogenen Sensorwerte (default: 18)
+
+ - ASC_Shading_Mode - absent,always,off,home / wann soll die Beschattung nur
+ stattfinden. (default: off)
+
+ - ASC_Shading_Pos - Position des Rollladens für die Beschattung
+ - ASC_Shading_StateChange_Cloudy - Brightness Wert ab welchen die Beschattung
+ aufgehoben werden soll, immer in Abhängigkeit der anderen einbezogenen Sensorwerte (default:
+ 20000)
+
+ - ASC_Shading_StateChange_Sunny - Brightness Wert ab welchen Beschattung stattfinden
+ soll, immer in Abhängigkeit der anderen einbezogenen Sensorwerte (default: 35000)
+
+ - ASC_Shading_WaitingPeriod - wie viele Sekunden soll gewartet werden bevor eine
+ weitere Auswertung der Sensordaten für die Beschattung stattfinden soll (default: 1200)
+
+
+ - ASC_ShuttersPlace - window/terrace - Wenn dieses Attribut auf terrace gesetzt ist, das
+ Residence Device in den Status "gone" geht und SelfDefense aktiv ist (ohne das das Reading selfDefense
+ gesetzt sein muss), wird das Rollo geschlossen (default: window)
+
+ - ASC_Time_Down_Early - Sonnenuntergang frühste Zeit zum Runterfahren (default:
+ 16:00)
+
+ - ASC_Time_Down_Late - Sonnenuntergang späteste Zeit zum Runterfahren (default:
+ 22:00)
+
+ - ASC_Time_Up_Early - Sonnenaufgang frühste Zeit zum Hochfahren (default: 05:00)
+
+ - ASC_Time_Up_Late - Sonnenaufgang späteste Zeit zum Hochfahren (default: 08:30)
+
+ - ASC_Time_Up_WE_Holiday - Sonnenaufgang frühste Zeit zum Hochfahren am Wochenende
+ und/oder Urlaub (holiday2we wird beachtet). (default: 08:00) ACHTUNG!!! in Verbindung mit Brightness für
+ ASC_Up muss die Uhrzeit kleiner sein wie die Uhrzeit aus ASC_Time_Up_Late
+ - ASC_Up - astro/time/brightness - bei astro wird Sonnenaufgang berechnet, bei time wird
+ der Wert aus ASC_Time_Up_Early als Fahrzeit verwendet und bei brightness muss ASC_Time_Up_Early und
+ ASC_Time_Up_Late korrekt gesetzt werden. Der Timer läuft dann nach ASC_Time_Up_Late Zeit, es wird
+ aber in der Zeit zwischen ASC_Time_Up_Early und ASC_Time_Up_Late geschaut, ob die als Attribut im
+ Moduldevice hinterlegte ASC_brightnessMinVal erreicht wurde. Wenn ja, wird der Rollladen hoch gefahren
+ (default: astro)
+
+ - ASC_Ventilate_Pos - in 10 Schritten von 0 bis 100 (default: ist abhängig vom
+ Attribut ASC)
+
+ - ASC_Ventilate_Window_Open - auf lüften, wenn das Fenster gekippt/geöffnet
+ wird und aktuelle Position unterhalb der Lüften-Position ist (default: on)
+
+ - ASC_WiggleValue - Wert um welchen sich die Position des Rollladens ändern soll
+ (default: 5)
+
+ - ASC_WindParameters - TRIGGERMAX[:HYSTERESE] [DRIVEPOSITION] / Angabe von Max Wert ab
+ dem für Wind getriggert werden soll, Hytsrese Wert ab dem der Windschutz aufgehoben werden soll
+ TRIGGERMAX - HYSTERESE / Ist es bei einigen Rollläden nicht gewünscht das gefahren werden
+ soll, so ist der TRIGGERMAX Wert mit -1 an zu geben. (default: '50:20 ClosedPosition')
+
+ - ASC_WindowRec - Name des Fensterkontaktes, an dessen Fenster der Rollladen angebracht
+ ist (default: none)
+
+ - ASC_WindowRec_subType - Typ des verwendeten Fensterkontaktes: twostate (optisch oder
+ magnetisch) oder threestate (Drehgriffkontakt) (default: twostate)
+
+
+
+
+ AutoShuttersControl API description
+
+
+ It's possible to access internal data of the ASC module by calling the API function.
+
+ Data points of a shutter device, controlled by ASC
+
+
{ ascAPIget('Getter','SHUTTERS_DEVICENAME') }
+
+
+
+ Getter |
+ Description |
+
+
+ FreezeStatus |
+ 1 = soft, 2 = daytime, 3 = hard |
+
+
+ NoOffset |
+ Was the offset handling deactivated (e.g. by operations triggered by a window event) |
+
+
+ LastDrive |
+ Reason for the last action caused by ASC |
+
+
+ LastPos |
+ Last position of the shutter |
+
+
+ LastPosTimestamp |
+ Timestamp of the last position |
+
+
+ LastManPos |
+ Last position manually set of the shutter |
+
+
+ LastManPosTimestamp |
+ Timestamp of the last position manually set |
+
+
+ SunsetUnixTime |
+ Calculated sunset time in seconds since the UNIX epoche |
+
+
+ Sunset |
+ 1 = operation in the evening was made, 0 = operation in the evening was not yet made |
+
+
+ SunriseUnixTime |
+ Calculated sunrise time in seconds since the UNIX epoche |
+
+
+ Sunrise |
+ 1 = operation in the morning was made, 0 = operation in the morning was not yet made |
+
+
+ RoommatesStatus |
+ Current state of the room mate set for this shutter |
+
+
+ RoommatesLastStatus |
+ Last state of the room mate set for this shutter |
+
+
+ ShadingStatus |
+ Value of the current shading state. Can hold in, out, in reserved or
+ out reserved |
+
+
+ ShadingStatusTimestamp |
+ Timestamp of the last shading state |
+
+
+ IfInShading |
+ Is the shutter currently in shading (depends on the shading mode) |
+
+
+ WindProtectionStatus |
+ Current state of the wind protection. Can hold protection or unprotection |
+
+
+ RainProtectionStatus |
+ Current state of the rain protection. Can hold protection or unprotection |
+
+
+ DelayCmd |
+ Last operation order in the waiting queue. Set for example by the party mode |
+
+
+ Status |
+ Position of the shutter |
+
+
+ ASCenable |
+ Does ASC control the shutter? |
+
+
+
+ Data points of the ASC device
+
+ { ascAPIget('Getter') }
+
+
+
+ Getter |
+ Description |
+
+
+ outTemp |
+ Current temperature of a configured temperature device |
+
+
+ ResidentsStatus |
+ Current state of a configured resident device |
+
+
+ ResidentsLastStatus |
+ Last state of a configured resident device |
+
+
+ Azimuth |
+ Current azimuth of the sun |
+
+
+ Elevation |
+ Current elevation of the sun |
+
+
+ ASCenable |
+ Is ASC globally activated? |
+
+
+
=end html
@@ -5226,7 +5827,7 @@ sub getblockAscDrivesAfterManual {
ASC_autoAstroModeMorning - REAL, CIVIL, NAUTIC, ASTRONOMIC oder HORIZON
- ASC_autoAstroModeMorningHorizon - Höhe über dem Horizont. Wird nur berücksichtigt, wenn im Attribut ASC_autoAstroModeEvening der Wert HORIZON ausgewählt wurde. (default: 0)
+ ASC_autoAstroModeMorningHorizon - Höhe über dem Horizont. Wird nur berücksichtigt, wenn im Attribut ASC_autoAstroModeMorning der Wert HORIZON ausgewählt wurde. (default: 0)
ASC_autoShuttersControlComfort - on/off - schaltet die Komfortfunktion an. Bedeutet, dass ein Rollladen mit einem threestate-Sensor am Fenster beim Öffnen in eine Offenposition fährt. Hierzu muss beim Rollladen das Attribut ASC_ComfortOpen_Pos entsprechend konfiguriert sein. (default: off)
@@ -5294,7 +5895,7 @@ sub getblockAscDrivesAfterManual {
ASC_BrightnessSensor - DEVICE[:READING] WERT-MORGENS:WERT-ABENDS / 'Sensorname[:brightness [400:800]]' Angaben zum Helligkeitssensor mit (Readingname, optional) für die Beschattung und dem Fahren der Rollladen nach brightness und den optionalen Brightnesswerten für Sonnenauf- und Sonnenuntergang. (default: none)
ASC_Closed_Pos - in 10 Schritten von 0 bis 100 (Default: ist abhängig vom Attribut ASC)
ASC_ComfortOpen_Pos - in 10 Schritten von 0 bis 100 (Default: ist abhängig vom Attribut ASC)
- 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 (default: astro)
+ 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_brightnessDriveUpDown der Down Wert erreicht wurde. Wenn ja, wird der Rollladen runter gefahren (default: astro)
ASC_DriveUpMaxDuration - die Dauer des Hochfahrens des Rollladens plus 5 Sekunden (default: 60)
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. (default: -1)
ASC_Drive_OffsetStart - in Sekunden verzögerter Wert ab welchen dann erst das Offset startet und dazu addiert wird. Funktioniert nur wenn gleichzeitig ASC_Drive_Offset gesetzt wird. (default: -1)
@@ -5334,7 +5935,7 @@ sub getblockAscDrivesAfterManual {
ASC_Time_Up_Early - Sonnenaufgang frühste Zeit zum Hochfahren (default: 05:00)
ASC_Time_Up_Late - Sonnenaufgang späteste Zeit zum Hochfahren (default: 08:30)
ASC_Time_Up_WE_Holiday - Sonnenaufgang frühste Zeit zum Hochfahren am Wochenende und/oder Urlaub (holiday2we wird beachtet). (default: 08:00) ACHTUNG!!! in Verbindung mit Brightness für ASC_Up muss die Uhrzeit kleiner sein wie die Uhrzeit aus ASC_Time_Up_Late
- ASC_Up - astro/time/brightness - bei astro wird Sonnenaufgang berechnet, bei time wird der Wert aus ASC_Time_Up_Early als Fahrzeit verwendet und bei brightness muss ASC_Time_Up_Early und ASC_Time_Up_Late korrekt gesetzt werden. Der Timer läuft dann nach ASC_Time_Up_Late Zeit, es wird aber in der Zeit zwischen ASC_Time_Up_Early und ASC_Time_Up_Late geschaut, ob die als Attribut im Moduldevice hinterlegte ASC_brightnessMinVal erreicht wurde. Wenn ja, wird der Rollladen hoch gefahren (default: astro)
+ ASC_Up - astro/time/brightness - bei astro wird Sonnenaufgang berechnet, bei time wird der Wert aus ASC_Time_Up_Early als Fahrzeit verwendet und bei brightness muss ASC_Time_Up_Early und ASC_Time_Up_Late korrekt gesetzt werden. Der Timer läuft dann nach ASC_Time_Up_Late Zeit, es wird aber in der Zeit zwischen ASC_Time_Up_Early und ASC_Time_Up_Late geschaut, ob die als Attribut im Moduldevice hinterlegte Down Wert von ASC_brightnessDriveUpDown erreicht wurde. Wenn ja, wird der Rollladen hoch gefahren (default: astro)
ASC_Ventilate_Pos - in 10 Schritten von 0 bis 100 (default: ist abhängig vom Attribut ASC)
ASC_Ventilate_Window_Open - auf lüften, wenn das Fenster gekippt/geöffnet wird und aktuelle Position unterhalb der Lüften-Position ist (default: on)
ASC_WiggleValue - Wert um welchen sich die Position des Rollladens ändern soll (default: 5)
@@ -5369,8 +5970,8 @@ sub getblockAscDrivesAfterManual {
ShadingStatus | Ausgabe des aktuellen Shading Status, „in“, „out“, „in reserved“, „out reserved“ |
ShadingStatusTimestamp | Timestamp des letzten Beschattungsstatus |
IfInShading | Befindet sich der Rollladen, in Abhängigkeit des Shading Mode, in der Beschattung |
- WindProtectionStatus | aktueller Status der Wind Protection „protection“ oder „unprotection“ |
- RainProtectionStatus | aktueller Status der Regen Protection „protection“ oder „unprotection“ |
+ WindProtectionStatus | aktueller Status der Wind Protection „protected“ oder „unprotected“ |
+ RainProtectionStatus | aktueller Status der Regen Protection „unprotected“ oder „unprotected“ |
DelayCmd | letzter Fahrbefehl welcher in die Warteschlange kam. Grund z.B. Partymodus. |
Status | Position des Rollladens |
ASCenable | Abfrage ob für den Rollladen die ASC Steuerung aktiv ist. |