expand API documantation

This commit is contained in:
Marko Oldenburg 2020-05-09 08:40:58 +02:00
parent 7a0aad9ff7
commit 47066ea068
2 changed files with 518 additions and 386 deletions

View File

@ -312,8 +312,7 @@ sub ascAPIset {
if ( defined($shutterDev)
&& $shutterDev
&& defined($value)
&& $value
)
&& $value )
{
$shutters->setShuttersDev($shutterDev);
$shutters->$setter($value);
@ -660,7 +659,8 @@ sub Set {
my $aArg = shift // return;
my $name = shift @$aArg;
my $cmd = shift @$aArg // return qq{"set $name" needs at least one argument};
my $cmd = shift @$aArg
// return qq{"set $name" needs at least one argument};
if ( lc $cmd eq 'renewalltimer' ) {
return "usage: $cmd" if ( scalar( @{$aArg} ) != 0 );
@ -736,7 +736,11 @@ sub Set {
elsif ( lc $cmd eq 'wiggle' ) {
return "usage: $cmd" if ( scalar( @{$aArg} ) > 1 );
( $aArg->[0] eq 'all' ? wiggleAll($hash) : wiggle( $hash, $aArg->[0] ) );
(
$aArg->[0] eq 'all'
? wiggleAll($hash)
: wiggle( $hash, $aArg->[0] )
);
}
else {
my $list = 'scanForShutters:noArg';
@ -764,7 +768,8 @@ sub Get {
my $aArg = shift // return;
my $name = shift @$aArg // return;
my $cmd = shift @$aArg // return qq{"get $name" needs at least one argument};
my $cmd = shift @$aArg
// return qq{"get $name" needs at least one argument};
if ( lc $cmd eq 'shownotifydevsinformations' ) {
return "usage: $cmd" if ( scalar( @{$aArg} ) != 0 );
@ -811,21 +816,25 @@ sub ShuttersDeviceScan {
#### Gleichlautende Attribute wo lediglich die Parameter geändert werden sollen müssen hier gelöscht und die Parameter in der Funktion renewSetSunriseSunsetTimer gesetzt werden,
#### vorher empfiehlt es sich die dort vergebenen Parameter aus zu lesen um sie dann hier wieder neu zu setzen. Dazu wird das shutters Objekt um einen Eintrag
#### 'AttrUpdateChanges' erweitert
if ( ReadingsVal( $shuttersDev, '.ASC_AttrUpdateChanges_' . $hash->{VERSION}, 0 )
== 0 )
if (
ReadingsVal(
$shuttersDev, '.ASC_AttrUpdateChanges_' . $hash->{VERSION},
0
) == 0
)
{
# $shutters->setAttrUpdateChanges( 'ASC_Up',
# AttrVal( $shuttersDev, 'ASC_Up', 'none' ) );
# delFromDevAttrList( $shuttersDev, 'ASC_Up' );
# $shutters->setAttrUpdateChanges( 'ASC_Down',
# AttrVal( $shuttersDev, 'ASC_Down', 'none' ) );
# delFromDevAttrList( $shuttersDev, 'ASC_Down' );
# $shutters->setAttrUpdateChanges( 'ASC_Self_Defense_Mode',
# AttrVal( $shuttersDev, 'ASC_Self_Defense_Mode', 'none' ) );
# delFromDevAttrList( $shuttersDev, 'ASC_Self_Defense_Mode' );
# $shutters->setAttrUpdateChanges( 'ASC_Self_Defense_Exclude',
# AttrVal( $shuttersDev, 'ASC_Self_Defense_Exclude', 'none' ) );
# delFromDevAttrList( $shuttersDev, 'ASC_Self_Defense_Exclude' );
# $shutters->setAttrUpdateChanges( 'ASC_Up',
# AttrVal( $shuttersDev, 'ASC_Up', 'none' ) );
# delFromDevAttrList( $shuttersDev, 'ASC_Up' );
# $shutters->setAttrUpdateChanges( 'ASC_Down',
# AttrVal( $shuttersDev, 'ASC_Down', 'none' ) );
# delFromDevAttrList( $shuttersDev, 'ASC_Down' );
# $shutters->setAttrUpdateChanges( 'ASC_Self_Defense_Mode',
# AttrVal( $shuttersDev, 'ASC_Self_Defense_Mode', 'none' ) );
# delFromDevAttrList( $shuttersDev, 'ASC_Self_Defense_Mode' );
# $shutters->setAttrUpdateChanges( 'ASC_Self_Defense_Exclude',
# AttrVal( $shuttersDev, 'ASC_Self_Defense_Exclude', 'none' ) );
# delFromDevAttrList( $shuttersDev, 'ASC_Self_Defense_Exclude' );
}
####
@ -888,10 +897,14 @@ sub WriteReadingsShuttersList {
for my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) {
readingsBulkUpdate(
$hash,
'room_' . makeReadingName( AttrVal( $shuttersDev, 'room', 'unsorted' ) ),
'room_'
. makeReadingName( AttrVal( $shuttersDev, 'room', 'unsorted' ) ),
ReadingsVal(
$name,
'room_' . makeReadingName( AttrVal( $shuttersDev, 'room', 'unsorted' ) ),
'room_'
. makeReadingName(
AttrVal( $shuttersDev, 'room', 'unsorted' )
),
''
)
. ','
@ -900,17 +913,27 @@ sub WriteReadingsShuttersList {
if (
ReadingsVal(
$name,
'room_' . makeReadingName( AttrVal( $shuttersDev, 'room', 'unsorted' ) ),
'room_'
. makeReadingName(
AttrVal( $shuttersDev, 'room', 'unsorted' )
),
'none'
) ne 'none'
);
readingsBulkUpdate( $hash,
'room_' . makeReadingName( AttrVal( $shuttersDev, 'room', 'unsorted' ) ), $shuttersDev )
readingsBulkUpdate(
$hash,
'room_'
. makeReadingName( AttrVal( $shuttersDev, 'room', 'unsorted' ) ),
$shuttersDev
)
if (
ReadingsVal(
$name,
'room_' . makeReadingName( AttrVal( $shuttersDev, 'room', 'unsorted' ) ),
'room_'
. makeReadingName(
AttrVal( $shuttersDev, 'room', 'unsorted' )
),
'none'
) eq 'none'
);
@ -928,7 +951,7 @@ sub UserAttributs_Readings_ForShutters {
my $name = $hash->{NAME};
while ( my ( $attrib, $attribValue ) = each %{userAttrList} ) {
for my $shuttersDev( @{ $hash->{helper}{shuttersList} } ) {
for my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) {
addToDevAttrList( $shuttersDev, $attrib )
; ## fhem.pl bietet eine Funktion um ein userAttr Attribut zu befüllen. Wir schreiben also in den Attribut userAttr alle unsere Attribute rein. Pro Rolladen immer ein Attribut pro Durchlauf
## Danach werden die Attribute die im userAttr stehen gesetzt und mit default Werten befüllt
@ -936,15 +959,24 @@ sub UserAttributs_Readings_ForShutters {
## https://github.com/LeonGaultier/fhem-AutoShuttersControl/commit/e33d3cc7815031b087736c1054b98c57817e7083
if ( $cmd eq 'add' ) {
if ( ref($attribValue) ne 'ARRAY' ) {
$attr{$shuttersDev}{ ( split( ':', $attrib ) )[0] } = $attribValue
if ( !defined( $attr{$shuttersDev}{ ( split( ':', $attrib ) )[0] } )
&& $attribValue ne '-' );
$attr{$shuttersDev}{ ( split( ':', $attrib ) )[0] } =
$attribValue
if (
!defined(
$attr{$shuttersDev}{ ( split( ':', $attrib ) )[0] }
)
&& $attribValue ne '-'
);
}
else {
$attr{$shuttersDev}{ ( split( ':', $attrib ) )[0] } =
$attribValue->[ AttrVal( $shuttersDev, 'ASC', 2 ) ]
if ( !defined( $attr{$shuttersDev}{ ( split( ':', $attrib ) )[0] } )
&& $attrib eq 'ASC_Pos_Reading' );
if (
!defined(
$attr{$shuttersDev}{ ( split( ':', $attrib ) )[0] }
)
&& $attrib eq 'ASC_Pos_Reading'
);
}
### associatedWith damit man sieht das der Rollladen mit einem ASC Device verbunden ist
@ -985,7 +1017,10 @@ sub UserAttributs_Readings_ForShutters {
readingsSingleUpdate( $defs{$shuttersDev},
'associatedWith', join( ',', sort keys %hash ), 0 );
}
else { CommandDeleteReading( undef, $shuttersDev . ' associatedWith' ); }
else {
CommandDeleteReading( undef,
$shuttersDev . ' associatedWith' );
}
###################################
}
}
@ -1259,10 +1294,11 @@ sub EventProcessingRoommate {
my $getModeDown = $shutters->getModeDown;
my $getRoommatesStatus = $shutters->getRoommatesStatus;
my $getRoommatesLastStatus = $shutters->getRoommatesLastStatus;
my $event = $1;
my $posValue;
if (
( $1 eq 'home' || $1 eq 'awoken' )
( $event eq 'home' || $event eq 'awoken' )
&& ( $getRoommatesStatus eq 'home'
|| $getRoommatesStatus eq 'awoken' )
&& ( $ascDev->getAutoShuttersControlMorning eq 'on'
@ -1274,9 +1310,17 @@ sub EventProcessingRoommate {
"AutoShuttersControl ($name) - EventProcessingRoommate_1: $shuttersDev und Events $events"
);
if (
(
(
$getRoommatesLastStatus eq 'asleep'
|| $getRoommatesLastStatus eq 'awoken'
&& ( $shutters->getModeUp eq 'always'
or $shutters->getModeUp eq $event )
)
|| (
$getRoommatesLastStatus eq 'awoken'
&& ( $shutters->getModeUp eq 'always'
or $shutters->getModeUp eq $event )
)
)
&& ( $shutters->getIsDay
|| $shutters->getUp eq 'roommate' )
@ -1387,7 +1431,7 @@ sub EventProcessingRoommate {
}
}
elsif (
( $1 eq 'gotosleep' || $1 eq 'asleep' )
( $event eq 'gotosleep' || $event eq 'asleep' )
&& ( $ascDev->getAutoShuttersControlEvening eq 'on'
|| $shutters->getDown eq 'roommate' )
&& ( IsAfterShuttersManualBlocking($shuttersDev)
@ -1414,7 +1458,7 @@ sub EventProcessingRoommate {
ShuttersCommandSet( $hash, $shuttersDev, $posValue );
}
elsif (
$1 eq 'absent'
$event eq 'absent'
&& ( !$shutters->getIsDay
|| $shutters->getDown eq 'roommate'
|| $shutters->getShadingMode eq 'absent'
@ -2209,7 +2253,9 @@ sub EventProcessingShadingBrightness {
my $name = $hash->{NAME};
$shutters->setShuttersDev($shuttersDev);
my $reading = $shutters->getBrightnessReading;
my $outTemp = $ascDev->getOutTemp;
my $outTemp = $$shutters->getOutTemp;
$outTemp = $ascDev->getOutTemp
if ($outTemp == -100);
Log3( $name, 4,
"AutoShuttersControl ($shuttersDev) - EventProcessingShadingBrightness"
@ -2243,8 +2289,6 @@ sub EventProcessingShadingBrightness {
&& $shutters->getRainProtectionStatus eq 'unprotected'
&& $shutters->getWindProtectionStatus eq 'unprotected' )
{
$outTemp = $shutters->getOutTemp
if ( $shutters->getOutTemp != -100 );
ShadingProcessing(
$hash,
$shuttersDev,
@ -2283,8 +2327,10 @@ sub EventProcessingTwilightDevice {
if ( $events =~ m{(azimuth|elevation|SunAz|SunAlt):\s(\d+.\d+)}xms ) {
my $name = $device;
my $outTemp = $$shutters->getOutTemp;
$outTemp = $ascDev->getOutTemp
if ($outTemp == -100);
my ( $azimuth, $elevation );
my $outTemp = $ascDev->getOutTemp;
$azimuth = $2 if ( $1 eq 'azimuth' || $1 eq 'SunAz' );
$elevation = $2 if ( $1 eq 'elevation' || $1 eq 'SunAlt' );
@ -2537,6 +2583,8 @@ sub ShadingProcessing {
|| $shutters->getShadingMode eq $homemode )
&& ( $shutters->getModeUp eq 'always'
|| $shutters->getModeUp eq $homemode
|| ( $shutters->getModeUp eq 'home'
&& $homemode ne 'asleep' )
|| $shutters->getModeUp eq 'off' )
&& (
( int( gettimeofday() ) - $shutters->getShadingStatusTimestamp ) < 2
@ -3081,9 +3129,10 @@ sub RenewSunRiseSetShuttersTimer {
#### 'AttrUpdateChanges' erweitert
if (
( int( gettimeofday() ) - $::fhem_started ) < 60
and
ReadingsVal( $shuttersDev, '.ASC_AttrUpdateChanges_' . $hash->{VERSION},
0 ) == 0
and ReadingsVal(
$shuttersDev, '.ASC_AttrUpdateChanges_' . $hash->{VERSION},
0
) == 0
)
{
# $attr{$shuttersDev}{'ASC_Up'} = $shutters->getAttrUpdateChanges('ASC_Up')
@ -3100,12 +3149,12 @@ sub RenewSunRiseSetShuttersTimer {
# $shutters->getAttrUpdateChanges('ASC_Self_Defense_Exclude') eq
# 'on' );
CommandDeleteReading( undef, $shuttersDev . ' .ASC_AttrUpdateChanges_.*' )
CommandDeleteReading( undef,
$shuttersDev . ' .ASC_AttrUpdateChanges_.*' )
if (
ReadingsVal(
$shuttersDev, '.ASC_AttrUpdateChanges_' . $hash->{VERSION},
ReadingsVal( $shuttersDev,
'.ASC_AttrUpdateChanges_' . $hash->{VERSION}, 'none' ) eq
'none'
) eq 'none'
);
readingsSingleUpdate( $dhash,
'.ASC_AttrUpdateChanges_' . $hash->{VERSION},
@ -3411,18 +3460,24 @@ sub CreateNewNotifyDev {
CommandDeleteReading( undef, $name . ' .monitoredDevs' );
my $shuttersList = '';
for my $shuttersDev ( @{ $hash->{helper}{shuttersList} } ) {
AddNotifyDev( $hash, AttrVal( $shuttersDev, 'ASC_Roommate_Device', 'none' ),
AddNotifyDev( $hash,
AttrVal( $shuttersDev, 'ASC_Roommate_Device', 'none' ),
$shuttersDev, 'ASC_Roommate_Device' )
if ( AttrVal( $shuttersDev, 'ASC_Roommate_Device', 'none' ) ne 'none' );
if (
AttrVal( $shuttersDev, 'ASC_Roommate_Device', 'none' ) ne 'none' );
AddNotifyDev( $hash, AttrVal( $shuttersDev, 'ASC_WindowRec', 'none' ),
$shuttersDev, 'ASC_WindowRec' )
if ( AttrVal( $shuttersDev, 'ASC_WindowRec', 'none' ) ne 'none' );
AddNotifyDev( $hash, AttrVal( $shuttersDev, 'ASC_BrightnessSensor', 'none' ),
AddNotifyDev( $hash,
AttrVal( $shuttersDev, 'ASC_BrightnessSensor', 'none' ),
$shuttersDev, 'ASC_BrightnessSensor' )
if ( AttrVal( $shuttersDev, 'ASC_BrightnessSensor', 'none' ) ne 'none' );
AddNotifyDev( $hash, AttrVal( $shuttersDev, 'ASC_ExternalTrigger', 'none' ),
if (
AttrVal( $shuttersDev, 'ASC_BrightnessSensor', 'none' ) ne 'none' );
AddNotifyDev( $hash,
AttrVal( $shuttersDev, 'ASC_ExternalTrigger', 'none' ),
$shuttersDev, 'ASC_ExternalTrigger' )
if ( AttrVal( $shuttersDev, 'ASC_ExternalTrigger', 'none' ) ne 'none' );
if (
AttrVal( $shuttersDev, 'ASC_ExternalTrigger', 'none' ) ne 'none' );
$shuttersList = $shuttersList . ',' . $shuttersDev;
}
@ -3520,7 +3575,8 @@ sub ShuttersInformation {
$ret .= "<td>" . $shutters->getLockOut . "</td>";
$ret .= "<td> </td>";
$ret .= "<td>"
. ReadingsVal( $shuttersDev, 'ASC_ShuttersLastDrive', 'none' ) . "</td>";
. ReadingsVal( $shuttersDev, 'ASC_ShuttersLastDrive', 'none' )
. "</td>";
$ret .= "<td> </td>";
$ret .= "<td>" . $shutters->getStatus . "</td>";
$ret .= "<td> </td>";
@ -3561,7 +3617,8 @@ sub GetMonitoredDevs {
my $linecount = 1;
for my $notifydev ( sort keys( %{$notifydevs} ) ) {
if ( ref( $notifydevs->{$notifydev} ) eq "HASH" ) {
for my $shuttersDev ( sort keys( %{ $notifydevs->{$notifydev} } ) )
for my $shuttersDev (
sort keys( %{ $notifydevs->{$notifydev} } ) )
{
if ( $linecount % 2 == 0 ) { $ret .= '<tr class="even">'; }
else { $ret .= '<tr class="odd">'; }
@ -4561,6 +4618,9 @@ sub _SetCmdFn {
. $posValue . ' '
. $driveCommand );
InternalTimer(
gettimeofday() + 3,
sub() {
CommandSet(
undef,
(
@ -4571,6 +4631,9 @@ sub _SetCmdFn {
. ' '
. $shutters->getSlatPosCmd . ' '
. $slatPos
);
},
$shuttersDev
)
if ( $slatPos > -1
&& $shutters->getSlatPosCmd ne 'none' );
@ -5812,12 +5875,7 @@ sub _setAttributs {
my $attr = shift;
my $attrVal = shift;
CommandAttr(undef,$shuttersDev
. ' '
. $attr
. ' '
. $attrVal
);
CommandAttr( undef, $shuttersDev . ' ' . $attr . ' ' . $attrVal );
return;
}
@ -5932,7 +5990,7 @@ sub setAntiFreezePos {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Antifreeze_Pos',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Antifreeze_Pos', $attrVal );
return;
}
@ -5956,7 +6014,7 @@ sub setShuttersPlace {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_ShuttersPlace',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_ShuttersPlace', $attrVal );
return;
}
@ -5971,7 +6029,8 @@ sub setSlatPosCmd {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_SlatPosCmd_SlatDevice',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_SlatPosCmd_SlatDevice',
$attrVal );
return;
}
@ -6033,7 +6092,8 @@ sub setPrivacyUpTime {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_PrivacyUpValue_beforeDayOpen',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_PrivacyUpValue_beforeDayOpen',
$attrVal );
return;
}
@ -6107,7 +6167,8 @@ sub setPrivacyDownTime {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_PrivacyDownValue_beforeNightClose',$attrVal);
_setAttributs( $self->{shuttersDev},
'ASC_PrivacyDownValue_beforeNightClose', $attrVal );
return;
}
@ -6181,7 +6242,7 @@ sub setPrivacyUpPos {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_PrivacyUp_Pos',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_PrivacyUp_Pos', $attrVal );
return;
}
@ -6203,7 +6264,7 @@ sub setPrivacyDownPos {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_PrivacyDown_Pos',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_PrivacyDown_Pos', $attrVal );
return;
}
@ -6226,7 +6287,7 @@ sub setSelfDefenseMode {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Self_Defense_Mode',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Self_Defense_Mode', $attrVal );
return;
}
@ -6241,7 +6302,8 @@ sub setSelfDefenseAbsentDelay {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Self_Defense_AbsentDelay',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Self_Defense_AbsentDelay',
$attrVal );
return;
}
@ -6256,7 +6318,7 @@ sub setWiggleValue {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_WiggleValue',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_WiggleValue', $attrVal );
return;
}
@ -6271,7 +6333,7 @@ sub setAdv {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Adv',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Adv', $attrVal );
return;
}
@ -6291,7 +6353,7 @@ sub setShadingPos {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Shading_Pos',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Shading_Pos', $attrVal );
return;
}
@ -6314,7 +6376,7 @@ sub setShadingMode {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Shading_Mode',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Shading_Mode', $attrVal );
return;
}
@ -6377,7 +6439,8 @@ sub setIdleDetectionReading {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Shutter_IdleDetection',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Shutter_IdleDetection',
$attrVal );
return;
}
@ -6442,7 +6505,7 @@ sub setBrightnessSensor {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_BrightnessSensor',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_BrightnessSensor', $attrVal );
return;
}
@ -6527,7 +6590,7 @@ sub setShadingInOutAzimuth {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Shading_InOutAzimuth',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Shading_InOutAzimuth', $attrVal );
return;
}
@ -6568,7 +6631,8 @@ sub setShadingMinOutsideTemperature {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Shading_Min_OutsideTemperature',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Shading_Min_OutsideTemperature',
$attrVal );
return;
}
@ -6584,7 +6648,8 @@ sub setShadingMinMaxElevation {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Shading_MinMax_Elevation',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Shading_MinMax_Elevation',
$attrVal );
return;
}
@ -6645,7 +6710,8 @@ sub setShadingStateChangeSunnyCloudy {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Shading_StateChange_SunnyCloudy',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Shading_StateChange_SunnyCloudy',
$attrVal );
return;
}
@ -6733,7 +6799,8 @@ sub setShadingWaitingPeriod {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Shading_WaitingPeriod',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Shading_WaitingPeriod',
$attrVal );
return;
}
@ -6748,7 +6815,7 @@ sub setExternalTrigger {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_ExternalTrigger',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_ExternalTrigger', $attrVal );
return;
}
@ -6947,7 +7014,7 @@ sub setDelay {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Drive_Delay',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Drive_Delay', $attrVal );
return;
}
@ -6963,7 +7030,7 @@ sub setDelayStart {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Drive_DelayStart',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Drive_DelayStart', $attrVal );
return;
}
@ -6979,7 +7046,8 @@ sub setBlockingTimeAfterManual {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_BlockingTime_afterManual',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_BlockingTime_afterManual',
$attrVal );
return;
}
@ -6995,7 +7063,8 @@ sub setBlockingTimeBeforNightClose {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_BlockingTime_beforNightClose',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_BlockingTime_beforNightClose',
$attrVal );
return;
}
@ -7011,7 +7080,8 @@ sub setBlockingTimeBeforDayOpen {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_BlockingTime_beforDayOpen',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_BlockingTime_beforDayOpen',
$attrVal );
return;
}
@ -7027,7 +7097,7 @@ sub setPosCmd {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Pos_Reading',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Pos_Reading', $attrVal );
return;
}
@ -7044,7 +7114,7 @@ sub setOpenPos {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Open_Pos',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Open_Pos', $attrVal );
return;
}
@ -7066,7 +7136,7 @@ sub setVentilatePos {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Ventilate_Pos',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Ventilate_Pos', $attrVal );
return;
}
@ -7089,7 +7159,8 @@ sub setVentilatePosAfterDayClosed {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_WindowRec_PosAfterDayClosed',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_WindowRec_PosAfterDayClosed',
$attrVal );
return;
}
@ -7105,7 +7176,7 @@ sub setClosedPos {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Closed_Pos',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Closed_Pos', $attrVal );
return;
}
@ -7128,7 +7199,7 @@ sub setSleepPos {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Sleep_Pos',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Sleep_Pos', $attrVal );
return;
}
@ -7150,7 +7221,8 @@ sub setVentilateOpen {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Ventilate_Window_Open',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Ventilate_Window_Open',
$attrVal );
return;
}
@ -7165,7 +7237,7 @@ sub setComfortOpenPos {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_ComfortOpen_Pos',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_ComfortOpen_Pos', $attrVal );
return;
}
@ -7188,7 +7260,7 @@ sub setPartyMode {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Partymode',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Partymode', $attrVal );
return;
}
@ -7203,7 +7275,7 @@ sub setRoommates {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Roommate_Device',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Roommate_Device', $attrVal );
return;
}
@ -7218,7 +7290,7 @@ sub setRoommatesReading {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Roommate_Reading',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Roommate_Reading', $attrVal );
return;
}
@ -7284,7 +7356,7 @@ sub setWindParameters {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_WindParameters',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_WindParameters', $attrVal );
return;
}
@ -7312,7 +7384,7 @@ sub setWindProtection {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_WindProtection',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_WindProtection', $attrVal );
return;
}
@ -7327,7 +7399,7 @@ sub setRainProtection {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_RainProtection',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_RainProtection', $attrVal );
return;
}
@ -7342,7 +7414,7 @@ sub setModeUp {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Mode_Up',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Mode_Up', $attrVal );
return;
}
@ -7357,7 +7429,7 @@ sub setModeDown {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Mode_Down',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Mode_Down', $attrVal );
return;
}
@ -7372,7 +7444,7 @@ sub setLockOut {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_LockOut',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_LockOut', $attrVal );
return;
}
@ -7387,7 +7459,7 @@ sub setLockOutCmd {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_LockOut_Cmd',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_LockOut_Cmd', $attrVal );
return;
}
@ -7402,7 +7474,7 @@ sub setAntiFreeze {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Antifreeze',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Antifreeze', $attrVal );
return;
}
@ -7417,7 +7489,7 @@ sub setAutoAstroModeMorning {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_AutoAstroModeMorning',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_AutoAstroModeMorning', $attrVal );
return;
}
@ -7432,7 +7504,7 @@ sub setAutoAstroModeEvening {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_AutoAstroModeEvening',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_AutoAstroModeEvening', $attrVal );
return;
}
@ -7447,7 +7519,8 @@ sub setAutoAstroModeMorningHorizon {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_AutoAstroModeMorningHorizon',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_AutoAstroModeMorningHorizon',
$attrVal );
return;
}
@ -7463,7 +7536,8 @@ sub setAutoAstroModeEveningHorizon {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_AutoAstroModeEveningHorizon',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_AutoAstroModeEveningHorizon',
$attrVal );
return;
}
@ -7479,7 +7553,7 @@ sub setUp {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Up',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Up', $attrVal );
return;
}
@ -7494,7 +7568,7 @@ sub setDown {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Down',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Down', $attrVal );
return;
}
@ -7509,7 +7583,7 @@ sub setTimeUpEarly {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Time_Up_Early',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Time_Up_Early', $attrVal );
return;
}
@ -7534,7 +7608,7 @@ sub setTimeUpLate {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Time_Up_Late',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Time_Up_Late', $attrVal );
return;
}
@ -7559,7 +7633,7 @@ sub setTimeDownEarly {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Time_Down_Early',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Time_Down_Early', $attrVal );
return;
}
@ -7584,7 +7658,7 @@ sub setTimeDownLate {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Time_Down_Late',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Time_Down_Late', $attrVal );
return;
}
@ -7609,7 +7683,7 @@ sub setTimeUpWeHoliday {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_Time_Up_WE_Holiday',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_Time_Up_WE_Holiday', $attrVal );
return;
}
@ -7673,7 +7747,7 @@ sub setDriveUpMaxDuration {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_DriveUpMaxDuration',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_DriveUpMaxDuration', $attrVal );
return;
}
@ -7765,7 +7839,7 @@ sub setSubTyp {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_WindowRec_subType',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_WindowRec_subType', $attrVal );
return;
}
@ -7780,7 +7854,7 @@ sub setWinDev {
my $self = shift;
my $attrVal = shift;
_setAttributs($self->{shuttersDev},'ASC_WindowRec',$attrVal);
_setAttributs( $self->{shuttersDev}, 'ASC_WindowRec', $attrVal );
return;
}
@ -9322,7 +9396,7 @@ sub getBlockAscDrivesAfterManual {
<li><strong>ASC_Shading_Min_OutsideTemperature</strong> - ab welcher Temperatur soll Beschattet werden, immer in Abh&auml;ngigkeit der anderen einbezogenen Sensorwerte (default: 18)</li>
<li><strong>ASC_Shading_Mode - absent,always,off,home</strong> / wann soll die Beschattung nur stattfinden. (default: off)</li>
<li><strong>ASC_Shading_Pos</strong> - Position des Rollladens f&uuml;r die Beschattung (Default: ist abh&auml;ngig vom Attribut<em>ASC</em> 80/20) !!!Verwendung von Perlcode ist möglich, dieser muss in {} eingeschlossen sein. Rückgabewert muss eine positive Zahl/Dezimalzahl sein!!!</li>
<li><strong>ASC_Shading_StateChange_SunnyCloudy</strong> - Brightness Wert ab welchen die Beschattung stattfinden und aufgehoben werden soll, immer in Abh&auml;ngigkeit der anderen einbezogenen Sensorwerte. Ein optionaler dritter Wert gibt an wie, viele Brightnesswerte für den aktuellen Brightness-Durchschnitt berücksichtigt werden. Standard ist 3, es sollte nicht höher wie 5 genommen werden. (default: 35000:20000 [3])</li>
<li><strong>ASC_Shading_StateChange_SunnyCloudy</strong> - Brightness Wert ab welchen die Beschattung stattfinden und aufgehoben werden soll, immer in Abh&auml;ngigkeit der anderen einbezogenen Sensorwerte. Ein optionaler dritter Wert gibt an wie, viele Brightnesswerte für den aktuellen Brightness-Durchschnitt berücksichtigt werden. Standard ist 3, es sollten nicht mehr als 5 ber&uuml;cksichtigt werden. (default: 35000:20000 [3])</li>
<li><strong>ASC_Shading_WaitingPeriod</strong> - wie viele Sekunden soll gewartet werden bevor eine weitere Auswertung der Sensordaten f&uuml;r die Beschattung stattfinden soll (default: 1200)</li>
</ul></p>
<li><strong>ASC_ShuttersPlace - window/terrace</strong> - 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)</li>
@ -9352,6 +9426,65 @@ sub getBlockAscDrivesAfterManual {
<table>
<tr><th>Getter</th><th>Erl&auml;uterung</th></tr>
<tr><td>FreezeStatus</td><td>1=soft, 2=Daytime, 3=hard</td></tr>
<tr><td>AntiFreezePos</td><td>konfigurierte Position beim AntiFreeze Status</td></tr>
<tr><td>AntiFreezePosAssignment</td><td>konfigurierte Lamellen Position bei der AntiFreeze Position</td></tr>
<tr><td>AntiFreeze</td><td>aktuelle Konfiguration f&uuml;r AntiFreeze</td></tr>
<tr><td>ShuttersPlace</td><td>aktuelle Konfiguration an welchem Platz sich das Rollo befindet, Fenster oder Terrasse</td></tr>
<tr><td>SlatPosCmd</td><td>welcher PosCmd ist aktuell f&uuml;r den Lamellen Befehl konfiguriert</td></tr>
<tr><td>SlatDevice</td><td>welches Device aktuell f&uuml;r die Lamellen Steuerung konfiguriert ist</td></tr>
<tr><td>PrivacyUpTime</td><td>Privacy Zeit in Sekunden zum fahren in die Privacy Pos vor dem vollen &ouml;ffnen</td></tr>
<tr><td>PrivacyUpBrightnessVal</td><td>Privacy Brightness Wert zum fahren in die Privacy Pos</td></tr>
<tr><td>PrivacyUpPos</td><td>Position f&uuml;r die Privacy Up Fahrt</td></tr>
<tr><td>PrivacyUpPositionAssignment</td><td>Position f&uuml;r die Lamellenfahrt von Privacy Up</td></tr>
<tr><td>PrivacyDownTime</td><td>Privacy Zeit in Sekunden zum fahren in die Privacy Pos vor dem vollen schlie&szlig;</td></tr>
<tr><td>PrivacyDownBrightnessVal</td><td>Privacy Brightness Wert zum fahren in die Privacy Pos</td></tr>
<tr><td>PrivacyDownPos</td><td>Position f&uuml;r die Privacy Down Fahrt</td></tr>
<tr><td>PrivacyDownPositionAssignment</td><td>Position f&uuml;r die Lamellenfahrt von Privacy Down</td></tr>
<tr><td>SelfDefenseMode</td><td>Modus f&uuml;r den SelfDefense</td></tr>
<tr><td>SelfDefenseAbsentDelay</td><td>Verz&ouml;gerungszeit der SelfDefense Fahrt bei absent</td></tr>
<tr><td>WiggleValue</td><td>um welchen Wert soll das Rollo bei einer wiggle Fahrt fahren</td></tr>
<tr><td>Adv</td><td>Ist es in der definierten Weihnachtszeit</td></tr>
<tr><td>ShadingPos</td><td>konfigurierte Position f&uuml;r die Beschattungsfahrt</td></tr>
<tr><td>ShadingPositionAssignment</td><td>Position f&uuml;r die Lamellenfahrt f&uuml;r die Beschattungsfahrt</td></tr>
<tr><td>ShadingMode</td><td>welcher aktuelle Modus f&uuml;r das Beschatten ist konfiguriert</td></tr>
<tr><td>IdleDetectionValue</td><td>welcher Wert im IdleDetectionRading zeigt an dass das Rollo aktuell nicht in Bewegung ist</td></tr>
<tr><td>ShadingAzimuthLeft</td><td>ab welchem Azimut beginnt die Beschattung</td></tr>
<tr><td>ShadingAzimuthRight</td><td>ab welchem Azimut endet die Beschattung</td></tr>
<tr><td>ShadingMinOutsideTemperature</td><td>&uuml;ber welchem Temperaturwert beginnt die Beschattung</td></tr>
<tr><td>ShadingMinElevation</td><td>&uuml;ber welchem Elevationwert beginnt die Beschattung</td></tr>
<tr><td>ShadingMaxElevation</td><td>&uuml;ber welchem Elevationwert endet die Beschattung</td></tr>
<tr><td>ShadingStateChangeSunny</td><td>&uuml;ber welchem Brightnesswert beginnt die Beschattung</td></tr>
<tr><td>ShadingStateChangeCloudy</td><td>unter welchem Brightnesswert endet die Beschattung</td></tr>
<tr><td>ShadingWaitingPeriod</td><td>nach welcher Wartezeit werden Beschattungsrelevante Sensorwerte wieder beachtet und die Beschattungsroutine abgearbeitet</td></tr>
<tr><td>ExternalTriggerDevice</td><td>konfiguriertes Triggerdevice</td></tr>
<tr><td>ExternalTriggerReading</td><td>kofiguriertes Triggerdevice Reading</td></tr>
<tr><td>ExternalTriggerValueActive</td><td>Wert mit welchen der externe Trigger Prozess ausgel&uoml;st werden soll.</td></tr>
<tr><td>ExternalTriggerValueActive2</td><td>weiterer Wert mit welchen der externe zweite Trigger Prozess ausgel&uoml;st werden soll.</td></tr>
<tr><td>ExternalTriggerValueInactive</td><td>Wert mit welchen der externe Trigger Prozess beendet werden soll</td></tr>
<tr><td>ExternalTriggerPosActive</td><td>Rolloposition welche angefahren werden soll wenn der erste externe Trigger aktiv wird.</td></tr>
<tr><td>ExternalTriggerPosActive2</td><td>Rolloposition welche angefahren werden soll wenn der zweite externe Trigger aktiv wird.</td></tr>
<tr><td>ExternalTriggerPosInactive</td><td>Rolloposition welche angefahren werden soll wenn der externe Trigger inaktiv wird.</td></tr>
<tr><td>ExternalTriggerState</td><td>aktueller Status des externen Triggers, 0 oder 1</td></tr>
<tr><td>Delay</td><td>konfigurierte Verz&ouml;gerungswert welcher f&uuml;r die Zufallsberechnung werwendet werden soll</td></tr>
<tr><td>DelayStart</td><td>konfigurierter fester Verz&ouml;gerungswert</td></tr>
<tr><td>BlockingTimeAfterManual</td><td>konfigurierte Blockzeit nach einer manuellen Fahrt</td></tr>
<tr><td>BlockingTimeBeforNightClose</td><td>konfigurierte Blockzeit vor dem n&auml;chtlichen schlie&szlig;en</td></tr>
<tr><td>BlockingTimeBeforDayOpen</td><td>konfigurierte Blockzeit vor dem morgendlichen &ouml;ffnen</td></tr>
<tr><td>PosCmd</td><td> </td></tr>
<tr><td>OpenPos</td><td> </td></tr>
<tr><td>OpenPositionAssignment</td><td> </td></tr>
<tr><td>VentilatePos</td><td> </td></tr>
<tr><td>VentilatePositionAssignment</td><td> </td></tr>
<tr><td>VentilatePosAfterDayClosed</td><td> </td></tr>
<tr><td>ClosedPos</td><td> </td></tr>
<tr><td>NoDelay</td><td>Wurde die Behandlung von Offset deaktiviert (Beispiel bei Fahrten &uuml;ber Fensterevents)</td></tr>
<tr><td>LastDrive</td><td>Grund des letzten Fahrens</td></tr>
<tr><td>LastPos</td><td>die letzte Position des Rollladens</td></tr>
@ -9422,7 +9555,7 @@ sub getBlockAscDrivesAfterManual {
],
"release_status": "testing",
"license": "GPL_2",
"version": "v0.9.16",
"version": "v0.9.17",
"author": [
"Marko Oldenburg <leongaultier@gmail.com>"
],

View File

@ -1,6 +1,7 @@
--- In den Rolläden ---
AntiFreezePos
AntiFreezePosAssignment - nur getter
AntiFreeze
ShuttersPlace
SlatPosCmd
SlatDevice - nur getter
@ -27,8 +28,8 @@ ShadingAzimuthRight - nur getter
ShadingAzimuthLeft - nur getter
ShadingMinOutsideTemperature
ShadingMinMaxElevation - nur setter
getShadingMinElevation - nur getter
getShadingMaxElevation - nur getter
ShadingMinElevation - nur getter
ShadingMaxElevation - nur getter
ShadingStateChangeSunnyCloudy - nur setter
ShadingStateChangeSunny - nur getter
ShadingStateChangeCloudy - nur getter
@ -76,7 +77,6 @@ ModeUp
ModeDown
LockOut
LockOutCmd
AntiFreeze
AutoAstroModeMorning
AutoAstroModeEvening
AutoAstroModeMorningHorizon
@ -95,7 +95,6 @@ Homemode - nur getter
PrivacyDownStatus - nur getter
PrivacyUpStatus - nur getter
IsDay - nur getter
AntiFreezeStatus - nur getter
SelfDefenseState - nur getter
LastDrive - nur getter
LastPos - nur getter