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($) {
|
||||
@ -64,7 +64,6 @@ sub AutoShuttersControl_Initialize($) {
|
||||
"ASC_temperatureSensor ".
|
||||
"ASC_temperatureReading ".
|
||||
"ASC_brightnessMinVal ".
|
||||
"ASC_brightnessMaxVal ".
|
||||
"ASC_autoShuttersControlMorning:on,off ".
|
||||
"ASC_autoShuttersControlEvening: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
|
||||
my %userAttrList = ( 'ASC_Mode_Up:absent,always,off' => 'always',
|
||||
'ASC_Mode_Down:absent,always,off' => 'always',
|
||||
'ASC_Up:time,astro,brightness' => 'astro',
|
||||
'ASC_Down:time,astro,brightness' => 'astro',
|
||||
'ASC_Up:time,astro' => 'astro',
|
||||
'ASC_Down:time,astro' => 'astro',
|
||||
'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_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
|
||||
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}));
|
||||
|
||||
} 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
|
||||
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' );
|
||||
|
||||
$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
|
||||
|
||||
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);
|
||||
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 ?
|
||||
@ -559,7 +555,7 @@ sub UserAttributs_Readings_ForShutters($$) {
|
||||
## Oder das Attribut wird wieder gelöscht.
|
||||
} elsif( $cmd eq 'del' ) {
|
||||
RemoveInternalTimer(ReadingsVal($_,'.AutoShuttersControl_InternalTimerFuncHash',0));
|
||||
CommandDeleteReading(undef,$_ . ' .?(AutoShuttersControl|ASC)_.*' );
|
||||
CommandDeleteReading(undef,$_ . ' .?AutoShuttersControl_.*' );
|
||||
CommandDeleteAttr(undef,$_ . ' ASC');
|
||||
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($) {
|
||||
|
||||
my ($hash) = @_;
|
||||
@ -941,7 +897,6 @@ sub CreateNewNotifyDev($) {
|
||||
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_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' );
|
||||
@ -1164,20 +1119,18 @@ sub ShuttersSunrise($$$) {
|
||||
if( not IsWeTomorrow() ) {
|
||||
if( int(gettimeofday() / 86400) == int((computeAlignTime('24:00',sunrise_abs($autoAstroMode,0,$shutters->getTimeUpEarly,$shutters->getTimeUpLate)) + 1) / 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() );
|
||||
}
|
||||
}
|
||||
} elsif( defined($oldFuncHash) and ref($oldFuncHash) eq 'HASH') {
|
||||
$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() );
|
||||
}
|
||||
} elsif( $shutters->getUpMode eq 'time' ) {
|
||||
|
||||
$shuttersSunriseUnixtime = computeAlignTime('24:00',$shutters->getTimeUpEarly);
|
||||
|
||||
} elsif( $shutters->getUpMode eq 'brightness' ) {
|
||||
|
||||
$shuttersSunriseUnixtime = computeAlignTime('24:00',$shutters->getTimeUpLate);
|
||||
}
|
||||
|
||||
return $shuttersSunriseUnixtime;
|
||||
@ -1217,15 +1170,12 @@ sub ShuttersSunset($$$) {
|
||||
|
||||
if( defined($oldFuncHash) and ref($oldFuncHash) eq 'HASH') {
|
||||
$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() );
|
||||
}
|
||||
} elsif( $shutters->getDownMode eq 'time' ) {
|
||||
|
||||
$shuttersSunsetUnixtime = computeAlignTime('24:00',$shutters->getTimeDownEarly);
|
||||
|
||||
} elsif( $shutters->getDownMode eq 'brightness' ) {
|
||||
|
||||
$shuttersSunsetUnixtime = computeAlignTime('24:00',$shutters->getTimeDownLate);
|
||||
}
|
||||
|
||||
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 {
|
||||
|
||||
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 {
|
||||
|
||||
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 {
|
||||
|
||||
my $self = shift;
|
||||
|
Loading…
x
Reference in New Issue
Block a user