fix unknow object methode
This commit is contained in:
parent
24f8ef7af0
commit
61095a0641
@ -44,7 +44,7 @@ use warnings;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
my $version = "0.1.79.2";
|
my $version = "0.1.78";
|
||||||
|
|
||||||
|
|
||||||
sub AutoShuttersControl_Initialize($) {
|
sub AutoShuttersControl_Initialize($) {
|
||||||
@ -64,7 +64,6 @@ sub AutoShuttersControl_Initialize($) {
|
|||||||
"ASC_temperatureSensor ".
|
"ASC_temperatureSensor ".
|
||||||
"ASC_temperatureReading ".
|
"ASC_temperatureReading ".
|
||||||
"ASC_brightnessMinVal ".
|
"ASC_brightnessMinVal ".
|
||||||
"ASC_brightnessMaxVal ".
|
|
||||||
"ASC_autoShuttersControlMorning:on,off ".
|
"ASC_autoShuttersControlMorning:on,off ".
|
||||||
"ASC_autoShuttersControlEvening:on,off ".
|
"ASC_autoShuttersControlEvening:on,off ".
|
||||||
"ASC_autoShuttersControl_Shading:on,off ".
|
"ASC_autoShuttersControl_Shading:on,off ".
|
||||||
@ -150,8 +149,8 @@ BEGIN {
|
|||||||
## Die Attributsliste welche an die Rolläden verteilt wird. Zusammen mit Default Werten
|
## Die Attributsliste welche an die Rolläden verteilt wird. Zusammen mit Default Werten
|
||||||
my %userAttrList = ( 'ASC_Mode_Up:absent,always,off' => 'always',
|
my %userAttrList = ( 'ASC_Mode_Up:absent,always,off' => 'always',
|
||||||
'ASC_Mode_Down:absent,always,off' => 'always',
|
'ASC_Mode_Down:absent,always,off' => 'always',
|
||||||
'ASC_Up:time,astro,brightness' => 'astro',
|
'ASC_Up:time,astro' => 'astro',
|
||||||
'ASC_Down:time,astro,brightness' => 'astro',
|
'ASC_Down:time,astro' => 'astro',
|
||||||
'ASC_AutoAstroModeMorning:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON' => 'none',
|
'ASC_AutoAstroModeMorning:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON' => 'none',
|
||||||
'ASC_AutoAstroModeMorningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9' => 'none',
|
'ASC_AutoAstroModeMorningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9' => 'none',
|
||||||
'ASC_AutoAstroModeEvening:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON' => 'none',
|
'ASC_AutoAstroModeEvening:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON' => 'none',
|
||||||
@ -350,7 +349,7 @@ sub Notify($$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} elsif( $devname eq "global" ) { # Kommt ein globales Event und beinhaltet folgende Syntax wird die Funktion zur Verarbeitung aufgerufen
|
} elsif( $devname eq "global" ) { # Kommt ein globales Event und beinhaltet folgende Syntax wird die Funktion zur Verarbeitung aufgerufen
|
||||||
if( grep /^(ATTR|DELETEATTR)\s(.*ASC_Roommate_Device|.*ASC_WindowRec|.*ASC_residentsDevice|.*ASC_Shading_Brightness_Sensor)(\s.*|$)/,@{$events}) {
|
if( grep /^(ATTR|DELETEATTR)\s(.*ASC_Roommate_Device|.*ASC_WindowRec|.*ASC_residentsDevice)(\s.*|$)/,@{$events}) {
|
||||||
GeneralEventProcessing($hash,undef,join(' ',@{$events}));
|
GeneralEventProcessing($hash,undef,join(' ',@{$events}));
|
||||||
|
|
||||||
} elsif(grep /^(ATTR|DELETEATTR)\s(.*ASC_Time_Up_WE_Holiday)(\s.*|$)/,@{$events}) {
|
} elsif(grep /^(ATTR|DELETEATTR)\s(.*ASC_Time_Up_WE_Holiday)(\s.*|$)/,@{$events}) {
|
||||||
@ -376,13 +375,10 @@ sub GeneralEventProcessing($$$) {
|
|||||||
WindowRecEventProcessing($hash,$device,$events) if( $deviceAttr eq 'ASC_WindowRec' ); # ist es ein Fensterdevice wird die Funktion gestartet
|
WindowRecEventProcessing($hash,$device,$events) if( $deviceAttr eq 'ASC_WindowRec' ); # ist es ein Fensterdevice wird die Funktion gestartet
|
||||||
RoommateEventProcessing($hash,$device,$events) if( $deviceAttr eq 'ASC_Roommate_Device' ); # ist es ein Bewohner Device wird diese Funktion gestartet
|
RoommateEventProcessing($hash,$device,$events) if( $deviceAttr eq 'ASC_Roommate_Device' ); # ist es ein Bewohner Device wird diese Funktion gestartet
|
||||||
ResidentsEventProcessing($hash,$device,$events) if( $deviceAttr eq 'ASC_residentsDevice' );
|
ResidentsEventProcessing($hash,$device,$events) if( $deviceAttr eq 'ASC_residentsDevice' );
|
||||||
|
|
||||||
$shutters->setShuttersDev($device) if( $deviceAttr eq 'ASC_Shading_Brightness_Sensor');
|
|
||||||
BrightnessEventProcessing($hash,$device,$events) if( $deviceAttr eq 'ASC_Shading_Brightness_Sensor' and $shutters->getDownMode eq 'brightness' and $shutters->getUpMode eq 'brightness' );
|
|
||||||
}
|
}
|
||||||
} else { # alles was kein Devicenamen mit übergeben hat landet hier
|
} else { # alles was kein Devicenamen mit übergeben hat landet hier
|
||||||
|
|
||||||
if( $events =~ m#^ATTR\s(.*)\s(ASC_Roommate_Device|ASC_WindowRec|ASC_residentsDevice|ASC_Shading_Brightness_Sensor)\s(.*)$# ) { # wurde den Attributen unserer Rolläden ein Wert zugewiesen ?
|
if( $events =~ m#^ATTR\s(.*)\s(ASC_Roommate_Device|ASC_WindowRec|ASC_residentsDevice)\s(.*)$# ) { # wurde den Attributen unserer Rolläden ein Wert zugewiesen ?
|
||||||
AddNotifyDev($hash,$3,$1,$2);
|
AddNotifyDev($hash,$3,$1,$2);
|
||||||
Log3 $name, 4, "AutoShuttersControl ($name) - EventProcessing: ATTR";
|
Log3 $name, 4, "AutoShuttersControl ($name) - EventProcessing: ATTR";
|
||||||
} elsif($events =~ m#^DELETEATTR\s(.*)\s(ASC_Roommate_Device|ASC_WindowRec|ASC_residentsDevice)$# ) { # wurde das Attribut unserer Rolläden gelöscht ?
|
} elsif($events =~ m#^DELETEATTR\s(.*)\s(ASC_Roommate_Device|ASC_WindowRec|ASC_residentsDevice)$# ) { # wurde das Attribut unserer Rolläden gelöscht ?
|
||||||
@ -559,7 +555,7 @@ sub UserAttributs_Readings_ForShutters($$) {
|
|||||||
## Oder das Attribut wird wieder gelöscht.
|
## Oder das Attribut wird wieder gelöscht.
|
||||||
} elsif( $cmd eq 'del' ) {
|
} elsif( $cmd eq 'del' ) {
|
||||||
RemoveInternalTimer(ReadingsVal($_,'.AutoShuttersControl_InternalTimerFuncHash',0));
|
RemoveInternalTimer(ReadingsVal($_,'.AutoShuttersControl_InternalTimerFuncHash',0));
|
||||||
CommandDeleteReading(undef,$_ . ' .?(AutoShuttersControl|ASC)_.*' );
|
CommandDeleteReading(undef,$_ . ' .?AutoShuttersControl_.*' );
|
||||||
CommandDeleteAttr(undef,$_ . ' ASC');
|
CommandDeleteAttr(undef,$_ . ' ASC');
|
||||||
delFromDevAttrList($_,$attrib);
|
delFromDevAttrList($_,$attrib);
|
||||||
}
|
}
|
||||||
@ -715,46 +711,6 @@ sub ResidentsEventProcessing($@) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub BrightnessEventProcessing($@) {
|
|
||||||
|
|
||||||
my ($hash,$shuttersDev,$events) = @_;
|
|
||||||
|
|
||||||
my $name = $hash->{NAME};
|
|
||||||
$ascDev->setName($name);
|
|
||||||
$shutters->setShuttersDev($shuttersDev);
|
|
||||||
Log3 $name, 2, "AutoShuttersControl ($shuttersDev) - BrightnessEventProcessing";
|
|
||||||
Log3 $name, 2, "AutoShuttersControl ($shuttersDev) - BrightnessEventProcessing - aktuell: " . gettimeofday() . " frühsteDown: " . computeAlignTime('24:00',$shutters->getTimeDownEarly);
|
|
||||||
Log3 $name, 2, "AutoShuttersControl ($shuttersDev) - BrightnessEventProcessing - aktuell: " . gettimeofday() . " frühsteUp: " . computeAlignTime('24:00',$shutters->getTimeUpEarly);
|
|
||||||
|
|
||||||
|
|
||||||
return
|
|
||||||
unless( gettimeofday() < computeAlignTime('24:00',$shutters->getTimeDownEarly) and gettimeofday() < computeAlignTime('24:00',$shutters->getTimeUpEarly) );
|
|
||||||
|
|
||||||
Log3 $name, 2, "AutoShuttersControl ($shuttersDev) - BrightnessEventProcessing early vorbei";
|
|
||||||
my $reading = $shutters->getShadingBrightnessReading;
|
|
||||||
|
|
||||||
if($events =~ m#$reading:\s(\d+)# ) {
|
|
||||||
Log3 $name, 2, "AutoShuttersControl ($shuttersDev) - BrightnessEventProcessing: in der Bedingung Dollar1 ist:" . $1;
|
|
||||||
return
|
|
||||||
unless( $1 < $ascDev->getBrightnessMinVal );
|
|
||||||
|
|
||||||
Log3 $name, 2, "AutoShuttersControl ($shuttersDev) - BrightnessEventProcessing: bridghtnes kleiner ";
|
|
||||||
|
|
||||||
|
|
||||||
# ShuttersCommandSet($hash,$shuttersDev,$shutters->getOpenPos)
|
|
||||||
# if( ($1 < $ascDev->getBrightnessMinVal ) {
|
|
||||||
# Log3 $name, 2, "AutoShuttersControl ($name) - BrightnessEventProcessing: brightness kleiner brightnessMinVal";
|
|
||||||
#
|
|
||||||
# my $shuttersSunriseUnixtime = ShuttersSunrise($hash,$shuttersDev,'unix') + int(rand(TimeMin2Sec($shutters->getOffsetMorning)));
|
|
||||||
# my $shuttersSunsetUnixtime = ShuttersSunset($hash,$shuttersDev,'unix') + int(rand(TimeMin2Sec($shutters->getOffsetEvening)));
|
|
||||||
#
|
|
||||||
# $shutters->getInTimerFuncHash
|
|
||||||
# }
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
sub PartyModeEventProcessing($) {
|
sub PartyModeEventProcessing($) {
|
||||||
|
|
||||||
my ($hash) = @_;
|
my ($hash) = @_;
|
||||||
@ -941,7 +897,6 @@ sub CreateNewNotifyDev($) {
|
|||||||
foreach (@{$hash->{helper}{shuttersList}}) {
|
foreach (@{$hash->{helper}{shuttersList}}) {
|
||||||
AddNotifyDev($hash,AttrVal($_,'ASC_Roommate_Device','none'),$_,'ASC_Roommate_Device') if( AttrVal($_,'ASC_Roommate_Device','none') ne 'none' );
|
AddNotifyDev($hash,AttrVal($_,'ASC_Roommate_Device','none'),$_,'ASC_Roommate_Device') if( AttrVal($_,'ASC_Roommate_Device','none') ne 'none' );
|
||||||
AddNotifyDev($hash,AttrVal($_,'ASC_WindowRec','none'),$_,'ASC_WindowRec') if( AttrVal($_,'ASC_WindowRec','none') ne 'none' );
|
AddNotifyDev($hash,AttrVal($_,'ASC_WindowRec','none'),$_,'ASC_WindowRec') if( AttrVal($_,'ASC_WindowRec','none') ne 'none' );
|
||||||
AddNotifyDev($hash,AttrVal($_,'ASC_Shading_Brightness_Sensor','none'),$_,'ASC_Shading_Brightness_Sensor') if( AttrVal($_,'ASC_Shading_Brightness_Sensor','none') ne 'none' );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AddNotifyDev($hash,AttrVal($name,'ASC_residentsDevice','none'),$name,'ASC_residentsDevice') if( AttrVal($name,'ASC_residentsDevice','none') ne 'none' );
|
AddNotifyDev($hash,AttrVal($name,'ASC_residentsDevice','none'),$name,'ASC_residentsDevice') if( AttrVal($name,'ASC_residentsDevice','none') ne 'none' );
|
||||||
@ -1164,20 +1119,18 @@ sub ShuttersSunrise($$$) {
|
|||||||
if( not IsWeTomorrow() ) {
|
if( not IsWeTomorrow() ) {
|
||||||
if( int(gettimeofday() / 86400) == int((computeAlignTime('24:00',sunrise_abs($autoAstroMode,0,$shutters->getTimeUpEarly,$shutters->getTimeUpLate)) + 1) / 86400) ) {
|
if( int(gettimeofday() / 86400) == int((computeAlignTime('24:00',sunrise_abs($autoAstroMode,0,$shutters->getTimeUpEarly,$shutters->getTimeUpLate)) + 1) / 86400) ) {
|
||||||
$shuttersSunriseUnixtime = ($shuttersSunriseUnixtime + 86400)
|
$shuttersSunriseUnixtime = ($shuttersSunriseUnixtime + 86400)
|
||||||
|
#if( ($shuttersSunriseUnixtime < ($oldFuncHash->{sunrisetime} + 1440) or $shuttersSunriseUnixtime != $oldFuncHash->{sunrisetime}) and $oldFuncHash->{sunrisetime} < gettimeofday() );
|
||||||
if( $shuttersSunriseUnixtime < ($oldFuncHash->{sunrisetime} + 180) and $oldFuncHash->{sunrisetime} < gettimeofday() );
|
if( $shuttersSunriseUnixtime < ($oldFuncHash->{sunrisetime} + 180) and $oldFuncHash->{sunrisetime} < gettimeofday() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} elsif( defined($oldFuncHash) and ref($oldFuncHash) eq 'HASH') {
|
} elsif( defined($oldFuncHash) and ref($oldFuncHash) eq 'HASH') {
|
||||||
$shuttersSunriseUnixtime = ($shuttersSunriseUnixtime + 86400)
|
$shuttersSunriseUnixtime = ($shuttersSunriseUnixtime + 86400)
|
||||||
|
#if( ($shuttersSunriseUnixtime < ($oldFuncHash->{sunrisetime} + 900) or $shuttersSunriseUnixtime != $oldFuncHash->{sunrisetime}) and $oldFuncHash->{sunrisetime} < gettimeofday() );
|
||||||
if( $shuttersSunriseUnixtime < ($oldFuncHash->{sunrisetime} + 180) and $oldFuncHash->{sunrisetime} < gettimeofday() );
|
if( $shuttersSunriseUnixtime < ($oldFuncHash->{sunrisetime} + 180) and $oldFuncHash->{sunrisetime} < gettimeofday() );
|
||||||
}
|
}
|
||||||
} elsif( $shutters->getUpMode eq 'time' ) {
|
} elsif( $shutters->getUpMode eq 'time' ) {
|
||||||
|
|
||||||
$shuttersSunriseUnixtime = computeAlignTime('24:00',$shutters->getTimeUpEarly);
|
$shuttersSunriseUnixtime = computeAlignTime('24:00',$shutters->getTimeUpEarly);
|
||||||
|
|
||||||
} elsif( $shutters->getUpMode eq 'brightness' ) {
|
|
||||||
|
|
||||||
$shuttersSunriseUnixtime = computeAlignTime('24:00',$shutters->getTimeUpLate);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $shuttersSunriseUnixtime;
|
return $shuttersSunriseUnixtime;
|
||||||
@ -1217,15 +1170,12 @@ sub ShuttersSunset($$$) {
|
|||||||
|
|
||||||
if( defined($oldFuncHash) and ref($oldFuncHash) eq 'HASH') {
|
if( defined($oldFuncHash) and ref($oldFuncHash) eq 'HASH') {
|
||||||
$shuttersSunsetUnixtime = ($shuttersSunsetUnixtime + 86400)
|
$shuttersSunsetUnixtime = ($shuttersSunsetUnixtime + 86400)
|
||||||
|
#if( ($shuttersSunsetUnixtime < ($oldFuncHash->{sunsettime} + 900) or $shuttersSunsetUnixtime != $oldFuncHash->{sunsettime}) and $oldFuncHash->{sunsettime} < gettimeofday() );
|
||||||
if( $shuttersSunsetUnixtime < ($oldFuncHash->{sunsettime} + 180) and $oldFuncHash->{sunsettime} < gettimeofday() );
|
if( $shuttersSunsetUnixtime < ($oldFuncHash->{sunsettime} + 180) and $oldFuncHash->{sunsettime} < gettimeofday() );
|
||||||
}
|
}
|
||||||
} elsif( $shutters->getDownMode eq 'time' ) {
|
} elsif( $shutters->getDownMode eq 'time' ) {
|
||||||
|
|
||||||
$shuttersSunsetUnixtime = computeAlignTime('24:00',$shutters->getTimeDownEarly);
|
$shuttersSunsetUnixtime = computeAlignTime('24:00',$shutters->getTimeDownEarly);
|
||||||
|
|
||||||
} elsif( $shutters->getDownMode eq 'brightness' ) {
|
|
||||||
|
|
||||||
$shuttersSunsetUnixtime = computeAlignTime('24:00',$shutters->getTimeDownLate);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $shuttersSunsetUnixtime;
|
return $shuttersSunsetUnixtime;
|
||||||
@ -1429,26 +1379,6 @@ BEGIN {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
sub getShadingBrightnessSensor {
|
|
||||||
|
|
||||||
my $self = shift;
|
|
||||||
my $shuttersDev = $self->{shuttersDev};
|
|
||||||
my $default = $self->{defaultarg};
|
|
||||||
$default = 'none' if( not defined($default) );
|
|
||||||
|
|
||||||
return AttrVal($shuttersDev,'ASC_Shading_Brightness_Sensor',$default);
|
|
||||||
}
|
|
||||||
|
|
||||||
sub getShadingBrightnessReading {
|
|
||||||
|
|
||||||
my $self = shift;
|
|
||||||
my $shuttersDev = $self->{shuttersDev};
|
|
||||||
my $default = $self->{defaultarg};
|
|
||||||
$default = 'brightness' if( not defined($default) );
|
|
||||||
|
|
||||||
return AttrVal($shuttersDev,'ASC_Shading_Brightness_Reading',$default);
|
|
||||||
}
|
|
||||||
|
|
||||||
sub getPosCmd {
|
sub getPosCmd {
|
||||||
|
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
@ -1683,14 +1613,6 @@ BEGIN {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
sub getBrightness {
|
|
||||||
|
|
||||||
my $self = shift;
|
|
||||||
my $shuttersDev = $self->{shuttersDev};
|
|
||||||
|
|
||||||
return ReadingsVal($shutters->getShadingBrightnessSensor,$shutters->getShadingBrightnessReading,0);
|
|
||||||
}
|
|
||||||
|
|
||||||
sub getStatus {
|
sub getStatus {
|
||||||
|
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
@ -1958,26 +1880,6 @@ BEGIN {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
sub getBrightnessMinVal {
|
|
||||||
|
|
||||||
my $self = shift;
|
|
||||||
my $name = $self->{name};
|
|
||||||
my $default = $self->{defaultarg};
|
|
||||||
$default = 8000 if( not defined($default) );
|
|
||||||
|
|
||||||
return AttrVal($name,'ASC_brightnessMinVal',$default);
|
|
||||||
}
|
|
||||||
|
|
||||||
sub getBrightnessMaxVal {
|
|
||||||
|
|
||||||
my $self = shift;
|
|
||||||
my $name = $self->{name};
|
|
||||||
my $default = $self->{defaultarg};
|
|
||||||
$default = 20000 if( not defined($default) );
|
|
||||||
|
|
||||||
return AttrVal($name,'ASC_brightnessMaxVal',$default);
|
|
||||||
}
|
|
||||||
|
|
||||||
sub getAutoAstroModeEvening {
|
sub getAutoAstroModeEvening {
|
||||||
|
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user