add ascAPIget Interface

This commit is contained in:
Marko Oldenburg 2019-05-20 13:52:05 +02:00
parent ed4c78867d
commit 041d5b85ba
2 changed files with 23 additions and 8 deletions

View File

@ -45,7 +45,7 @@ use strict;
use warnings; use warnings;
use FHEM::Meta; use FHEM::Meta;
my $version = '0.6.11'; my $version = '0.6.12';
sub AutoShuttersControl_Initialize($) { sub AutoShuttersControl_Initialize($) {
my ($hash) = @_; my ($hash) = @_;
@ -96,6 +96,12 @@ sub AutoShuttersControl_Initialize($) {
return FHEM::Meta::InitMod( __FILE__, $hash ); return FHEM::Meta::InitMod( __FILE__, $hash );
} }
sub ascAPIget($;$) {
my ($getCommand,$shutterDev) = @_;
return FHEM::AutoShuttersControl::ascAPIget($getCommand,$shutterDev);
}
## unserer packagename ## unserer packagename
package FHEM::AutoShuttersControl; package FHEM::AutoShuttersControl;
@ -225,6 +231,19 @@ my %posSetCmds = (
my $shutters = new ASC_Shutters(); my $shutters = new ASC_Shutters();
my $ascDev = new ASC_Dev(); my $ascDev = new ASC_Dev();
sub ascAPIget($;$) {
my ($getCommand,$shutterDev) = @_;
my $getter = 'get'.$getCommand;
if ( defined($shutterDev) and $shutterDev ) {
$shutters->setShuttersDev($shutterDev);
return $shutters->$getter;
}
else {
return $ascDev->$getter;
}
}
sub Define($$) { sub Define($$) {
my ( $hash, $def ) = @_; my ( $hash, $def ) = @_;
my @a = split( '[ \t][ \t]*', $def ); my @a = split( '[ \t][ \t]*', $def );
@ -248,6 +267,8 @@ sub Define($$) {
; # eine Ein Eindeutige ID für interne FHEM Belange / nicht weiter wichtig ; # eine Ein Eindeutige ID für interne FHEM Belange / nicht weiter wichtig
$hash->{NOTIFYDEV} = 'global,' $hash->{NOTIFYDEV} = 'global,'
. $name; # Liste aller Devices auf deren Events gehört werden sollen . $name; # Liste aller Devices auf deren Events gehört werden sollen
#$hash->{shutters} = $shutters;
#$hash->{ascDev} = $ascDev;
$ascDev->setName($name); $ascDev->setName($name);
readingsSingleUpdate( readingsSingleUpdate(
@ -932,13 +953,7 @@ sub EventProcessingWindowRec($@) {
elsif ( $shutters->getStatus != $shutters->getOpenPos ) { elsif ( $shutters->getStatus != $shutters->getOpenPos ) {
$shutters->setLastDrive('window closed at day'); $shutters->setLastDrive('window closed at day');
$shutters->setNoOffset(1); $shutters->setNoOffset(1);
$shutters->setDriveCmd( $shutters->setDriveCmd( $shutters->getOpenPos );
(
$shutters->getLastPos != $shutters->getClosedPos
? $shutters->getLastPos
: $shutters->getOpenPos
)
);
} }
} }

BIN
ASC_API_Dokumentation.odt Normal file

Binary file not shown.