change package name and add support for META and Installer
This commit is contained in:
parent
5317e40bdf
commit
e865c8741f
@ -40,6 +40,7 @@ package main;
|
|||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
use FHEM::Meta;
|
||||||
|
|
||||||
my $version = '0.4.0.11beta47';
|
my $version = '0.4.0.11beta47';
|
||||||
|
|
||||||
@ -59,12 +60,12 @@ sub AutoShuttersControl_Initialize($) {
|
|||||||
|
|
||||||
## Da ich mit package arbeite müssen in die Initialize für die jeweiligen hash Fn Funktionen der Funktionsname
|
## 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
|
# und davor mit :: getrennt der eigentliche package Name des Modules
|
||||||
$hash->{SetFn} = 'AutoShuttersControl::Set';
|
$hash->{SetFn} = 'FHEM::AutoShuttersControl::Set';
|
||||||
$hash->{GetFn} = 'AutoShuttersControl::Get';
|
$hash->{GetFn} = 'FHEM::AutoShuttersControl::Get';
|
||||||
$hash->{DefFn} = 'AutoShuttersControl::Define';
|
$hash->{DefFn} = 'FHEM::AutoShuttersControl::Define';
|
||||||
$hash->{NotifyFn} = 'AutoShuttersControl::Notify';
|
$hash->{NotifyFn} = 'FHEM::AutoShuttersControl::Notify';
|
||||||
$hash->{UndefFn} = 'AutoShuttersControl::Undef';
|
$hash->{UndefFn} = 'FHEM::AutoShuttersControl::Undef';
|
||||||
$hash->{AttrFn} = 'AutoShuttersControl::Attr';
|
$hash->{AttrFn} = 'FHEM::AutoShuttersControl::Attr';
|
||||||
$hash->{AttrList} =
|
$hash->{AttrList} =
|
||||||
'ASC_guestPresence:on,off '
|
'ASC_guestPresence:on,off '
|
||||||
. 'ASC_tempSensor '
|
. 'ASC_tempSensor '
|
||||||
@ -87,14 +88,17 @@ sub AutoShuttersControl_Initialize($) {
|
|||||||
. $oldAttr
|
. $oldAttr
|
||||||
. $readingFnAttributes;
|
. $readingFnAttributes;
|
||||||
$hash->{NotifyOrderPrefix} = '51-'; # Order Nummer für NotifyFn
|
$hash->{NotifyOrderPrefix} = '51-'; # Order Nummer für NotifyFn
|
||||||
|
|
||||||
|
return FHEM::Meta::InitMod( __FILE__, $hash );
|
||||||
}
|
}
|
||||||
|
|
||||||
## unserer packagename
|
## unserer packagename
|
||||||
package AutoShuttersControl;
|
package FHEM::AutoShuttersControl;
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use POSIX;
|
use POSIX;
|
||||||
|
use FHEM::Meta;
|
||||||
|
|
||||||
use GPUtils qw(:all)
|
use GPUtils qw(:all)
|
||||||
; # wird für den Import der FHEM Funktionen aus der fhem.pl benötigt
|
; # wird für den Import der FHEM Funktionen aus der fhem.pl benötigt
|
||||||
@ -221,6 +225,7 @@ sub Define($$) {
|
|||||||
my ( $hash, $def ) = @_;
|
my ( $hash, $def ) = @_;
|
||||||
my @a = split( '[ \t][ \t]*', $def );
|
my @a = split( '[ \t][ \t]*', $def );
|
||||||
|
|
||||||
|
return $@ unless ( FHEM::Meta::SetInternals($hash) );
|
||||||
return 'only one AutoShuttersControl instance allowed'
|
return 'only one AutoShuttersControl instance allowed'
|
||||||
if ( devspec2array('TYPE=AutoShuttersControl') > 1 )
|
if ( devspec2array('TYPE=AutoShuttersControl') > 1 )
|
||||||
; # es wird geprüft ob bereits eine Instanz unseres Modules existiert,wenn ja wird abgebrochen
|
; # es wird geprüft ob bereits eine Instanz unseres Modules existiert,wenn ja wird abgebrochen
|
||||||
@ -354,10 +359,10 @@ sub Notify($$) {
|
|||||||
WriteReadingsShuttersList($hash);
|
WriteReadingsShuttersList($hash);
|
||||||
UserAttributs_Readings_ForShutters( $hash, 'add' );
|
UserAttributs_Readings_ForShutters( $hash, 'add' );
|
||||||
InternalTimer( gettimeofday() + 3,
|
InternalTimer( gettimeofday() + 3,
|
||||||
'AutoShuttersControl::RenewSunRiseSetShuttersTimer',
|
'FHEM::AutoShuttersControl::RenewSunRiseSetShuttersTimer',
|
||||||
$hash );
|
$hash );
|
||||||
InternalTimer( gettimeofday() + 5,
|
InternalTimer( gettimeofday() + 5,
|
||||||
'AutoShuttersControl::AutoSearchTwilightDev', $hash );
|
'FHEM::AutoShuttersControl::AutoSearchTwilightDev', $hash );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif ( grep /^partyMode:.off$/, @{$events} ) {
|
elsif ( grep /^partyMode:.off$/, @{$events} ) {
|
||||||
@ -1761,10 +1766,10 @@ sub CreateSunRiseSetShuttersTimer($$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
InternalTimer( $shuttersSunsetUnixtime,
|
InternalTimer( $shuttersSunsetUnixtime,
|
||||||
'AutoShuttersControl::SunSetShuttersAfterTimerFn', \%funcHash )
|
'FHEM::AutoShuttersControl::SunSetShuttersAfterTimerFn', \%funcHash )
|
||||||
if ( $ascDev->getAutoShuttersControlEvening eq 'on' );
|
if ( $ascDev->getAutoShuttersControlEvening eq 'on' );
|
||||||
InternalTimer( $shuttersSunriseUnixtime,
|
InternalTimer( $shuttersSunriseUnixtime,
|
||||||
'AutoShuttersControl::SunRiseShuttersAfterTimerFn', \%funcHash )
|
'FHEM::AutoShuttersControl::SunRiseShuttersAfterTimerFn', \%funcHash )
|
||||||
if ( $ascDev->getAutoShuttersControlMorning eq 'on' );
|
if ( $ascDev->getAutoShuttersControlMorning eq 'on' );
|
||||||
|
|
||||||
$ascDev->setStateReading('created new drive timer');
|
$ascDev->setStateReading('created new drive timer');
|
||||||
@ -1849,7 +1854,7 @@ sub wiggle($$) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
InternalTimer( gettimeofday() + 60, 'AutoShuttersControl::SetCmdFn', \%h );
|
InternalTimer( gettimeofday() + 60, 'FHEM::AutoShuttersControl::SetCmdFn', \%h );
|
||||||
}
|
}
|
||||||
####
|
####
|
||||||
|
|
||||||
@ -2713,9 +2718,9 @@ sub setDriveCmd {
|
|||||||
|
|
||||||
InternalTimer(
|
InternalTimer(
|
||||||
gettimeofday() + int( rand($offSet) + $shutters->getOffsetStart ),
|
gettimeofday() + int( rand($offSet) + $shutters->getOffsetStart ),
|
||||||
'AutoShuttersControl::SetCmdFn', \%h )
|
'FHEM::AutoShuttersControl::SetCmdFn', \%h )
|
||||||
if ( $offSet > 0 and not $shutters->getNoOffset );
|
if ( $offSet > 0 and not $shutters->getNoOffset );
|
||||||
AutoShuttersControl::SetCmdFn( \%h )
|
FHEM::AutoShuttersControl::SetCmdFn( \%h )
|
||||||
if ( $offSet == 0 or $shutters->getNoOffset );
|
if ( $offSet == 0 or $shutters->getNoOffset );
|
||||||
$shutters->setNoOffset(0);
|
$shutters->setNoOffset(0);
|
||||||
|
|
||||||
@ -3102,7 +3107,7 @@ sub _getBrightnessSensor {
|
|||||||
|
|
||||||
return $self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor}->{device} if ( exists($self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor}->{LASTGETTIME}) and (gettimeofday() - $self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor}->{LASTGETTIME}) < 2);
|
return $self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor}->{device} if ( exists($self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor}->{LASTGETTIME}) and (gettimeofday() - $self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor}->{LASTGETTIME}) < 2);
|
||||||
$self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor}->{LASTGETTIME} = int(gettimeofday());
|
$self->{ $self->{shuttersDev} }->{ASC_BrightnessSensor}->{LASTGETTIME} = int(gettimeofday());
|
||||||
my ($device,$reading,$min,$max) = AutoShuttersControl::GetAttrValues($self->{shuttersDev},'ASC_BrightnessSensor','none');
|
my ($device,$reading,$min,$max) = FHEM::AutoShuttersControl::GetAttrValues($self->{shuttersDev},'ASC_BrightnessSensor','none');
|
||||||
|
|
||||||
### erwartetes Ergebnis
|
### erwartetes Ergebnis
|
||||||
# DEVICE:READING MIN:MAX
|
# DEVICE:READING MIN:MAX
|
||||||
@ -3288,7 +3293,7 @@ sub getWindMax {
|
|||||||
|
|
||||||
return $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{triggermax} if ( exists($self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{LASTGETTIME}) and (gettimeofday() - $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{LASTGETTIME}) < 2);
|
return $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{triggermax} if ( exists($self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{LASTGETTIME}) and (gettimeofday() - $self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{LASTGETTIME}) < 2);
|
||||||
$self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{LASTGETTIME} = int(gettimeofday());
|
$self->{ $self->{shuttersDev} }->{ASC_WindParameters}->{LASTGETTIME} = int(gettimeofday());
|
||||||
my ($max,$hyst,$pos) = AutoShuttersControl::GetAttrValues($self->{shuttersDev},'ASC_WindParameters','none');
|
my ($max,$hyst,$pos) = FHEM::AutoShuttersControl::GetAttrValues($self->{shuttersDev},'ASC_WindParameters','none');
|
||||||
|
|
||||||
## Erwartetes Ergebnis
|
## Erwartetes Ergebnis
|
||||||
# max:hyst pos
|
# max:hyst pos
|
||||||
@ -3788,7 +3793,7 @@ sub getBrightnessMaxVal {
|
|||||||
|
|
||||||
return $self->{ASC_brightness}->{triggermax} if ( exists($self->{ASC_brightness}->{LASTGETTIME}) and (gettimeofday() - $self->{ASC_brightness}->{LASTGETTIME}) < 2);
|
return $self->{ASC_brightness}->{triggermax} if ( exists($self->{ASC_brightness}->{LASTGETTIME}) and (gettimeofday() - $self->{ASC_brightness}->{LASTGETTIME}) < 2);
|
||||||
$self->{ASC_brightness}->{LASTGETTIME} = int(gettimeofday());
|
$self->{ASC_brightness}->{LASTGETTIME} = int(gettimeofday());
|
||||||
my ($triggermin,$triggermax) = AutoShuttersControl::GetAttrValues($name,'ASC_brightnessDriveUpDown','none');
|
my ($triggermin,$triggermax) = FHEM::AutoShuttersControl::GetAttrValues($name,'ASC_brightnessDriveUpDown','none');
|
||||||
|
|
||||||
## erwartetes Ergebnis
|
## erwartetes Ergebnis
|
||||||
# max:min
|
# max:min
|
||||||
@ -3878,7 +3883,7 @@ sub _getTempSensor {
|
|||||||
|
|
||||||
return $self->{ASC_tempSensor}->{device} if ( exists($self->{ASC_tempSensor}->{LASTGETTIME}) and (gettimeofday() - $self->{ASC_tempSensor}->{LASTGETTIME}) < 2);
|
return $self->{ASC_tempSensor}->{device} if ( exists($self->{ASC_tempSensor}->{LASTGETTIME}) and (gettimeofday() - $self->{ASC_tempSensor}->{LASTGETTIME}) < 2);
|
||||||
$self->{ASC_tempSensor}->{LASTGETTIME} = int(gettimeofday());
|
$self->{ASC_tempSensor}->{LASTGETTIME} = int(gettimeofday());
|
||||||
my ($device,$reading) = AutoShuttersControl::GetAttrValues($name,'ASC_tempSensor','none');
|
my ($device,$reading) = FHEM::AutoShuttersControl::GetAttrValues($name,'ASC_tempSensor','none');
|
||||||
|
|
||||||
## erwartetes Ergebnis
|
## erwartetes Ergebnis
|
||||||
# DEVICE:READING
|
# DEVICE:READING
|
||||||
@ -3905,7 +3910,7 @@ sub _getResidentsDev {
|
|||||||
|
|
||||||
return $self->{ASC_residentsDev}->{device} if ( exists($self->{ASC_residentsDev}->{LASTGETTIME}) and (gettimeofday() - $self->{ASC_residentsDev}->{LASTGETTIME}) < 2);
|
return $self->{ASC_residentsDev}->{device} if ( exists($self->{ASC_residentsDev}->{LASTGETTIME}) and (gettimeofday() - $self->{ASC_residentsDev}->{LASTGETTIME}) < 2);
|
||||||
$self->{ASC_residentsDev}->{LASTGETTIME} = int(gettimeofday());
|
$self->{ASC_residentsDev}->{LASTGETTIME} = int(gettimeofday());
|
||||||
my ($device,$reading) = AutoShuttersControl::GetAttrValues($name,'ASC_residentsDev','none');
|
my ($device,$reading) = FHEM::AutoShuttersControl::GetAttrValues($name,'ASC_residentsDev','none');
|
||||||
|
|
||||||
return $device if( $device eq 'none' );
|
return $device if( $device eq 'none' );
|
||||||
$self->{ASC_residentsDev}->{device} = $device;
|
$self->{ASC_residentsDev}->{device} = $device;
|
||||||
@ -3929,7 +3934,7 @@ sub _getRainSensor {
|
|||||||
|
|
||||||
return $self->{ASC_rainSensor}->{device} if ( exists($self->{ASC_rainSensor}->{LASTGETTIME}) and (gettimeofday() - $self->{ASC_rainSensor}->{LASTGETTIME}) < 2);
|
return $self->{ASC_rainSensor}->{device} if ( exists($self->{ASC_rainSensor}->{LASTGETTIME}) and (gettimeofday() - $self->{ASC_rainSensor}->{LASTGETTIME}) < 2);
|
||||||
$self->{ASC_rainSensor}->{LASTGETTIME} = int(gettimeofday());
|
$self->{ASC_rainSensor}->{LASTGETTIME} = int(gettimeofday());
|
||||||
my ($device,$reading,$max,$hyst,$pos) = AutoShuttersControl::GetAttrValues($name,'ASC_rainSensor','none');
|
my ($device,$reading,$max,$hyst,$pos) = FHEM::AutoShuttersControl::GetAttrValues($name,'ASC_rainSensor','none');
|
||||||
|
|
||||||
## erwartetes Ergebnis
|
## erwartetes Ergebnis
|
||||||
# DEVICE:READING MAX:HYST
|
# DEVICE:READING MAX:HYST
|
||||||
@ -3986,7 +3991,7 @@ sub _getWindSensor {
|
|||||||
|
|
||||||
return $self->{ASC_windSensor}->{device} if ( exists($self->{ASC_windSensor}->{LASTGETTIME}) and (gettimeofday() - $self->{ASC_windSensor}->{LASTGETTIME}) < 2);
|
return $self->{ASC_windSensor}->{device} if ( exists($self->{ASC_windSensor}->{LASTGETTIME}) and (gettimeofday() - $self->{ASC_windSensor}->{LASTGETTIME}) < 2);
|
||||||
$self->{ASC_windSensor}->{LASTGETTIME} = int(gettimeofday());
|
$self->{ASC_windSensor}->{LASTGETTIME} = int(gettimeofday());
|
||||||
my ($device,$reading) = AutoShuttersControl::GetAttrValues($name,'ASC_windSensor','none');
|
my ($device,$reading) = FHEM::AutoShuttersControl::GetAttrValues($name,'ASC_windSensor','none');
|
||||||
|
|
||||||
return $device if( $device eq 'none' );
|
return $device if( $device eq 'none' );
|
||||||
$self->{ASC_windSensor}->{device} = $device;
|
$self->{ASC_windSensor}->{device} = $device;
|
||||||
@ -4008,7 +4013,7 @@ sub getWindSensorReading {
|
|||||||
|
|
||||||
=pod
|
=pod
|
||||||
=item device
|
=item device
|
||||||
=item summary Modul
|
=item summary Module for controlling shutters depending on various conditions
|
||||||
=item summary_DE Modul zur Automatischen Rolladensteuerung auf Basis bestimmter Ereignisse
|
=item summary_DE Modul zur Automatischen Rolladensteuerung auf Basis bestimmter Ereignisse
|
||||||
|
|
||||||
=begin html
|
=begin html
|
||||||
@ -4341,4 +4346,49 @@ sub getWindSensorReading {
|
|||||||
|
|
||||||
=end html_DE
|
=end html_DE
|
||||||
|
|
||||||
|
=for :application/json;q=META.json 73_AutoShuttersControl.pm
|
||||||
|
{
|
||||||
|
"abstract": "Module for controlling shutters depending on various conditions",
|
||||||
|
"x_lang": {
|
||||||
|
"de": {
|
||||||
|
"abstract": "Modul zur Automatischen Rolladensteuerung auf Basis bestimmter Ereignisse"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"fhem-mod-device",
|
||||||
|
"fhem-core",
|
||||||
|
"Shutter",
|
||||||
|
"Automation",
|
||||||
|
"Rollladen",
|
||||||
|
"Rollo",
|
||||||
|
"Control"
|
||||||
|
],
|
||||||
|
"release_status": "under develop",
|
||||||
|
"license": "GPL_2",
|
||||||
|
"author": [
|
||||||
|
"Marko Oldenburg <leongaultier@gmail.com>"
|
||||||
|
],
|
||||||
|
"x_fhem_maintainer": [
|
||||||
|
"CoolTux"
|
||||||
|
],
|
||||||
|
"x_fhem_maintainer_github": [
|
||||||
|
"LeonGaultier"
|
||||||
|
],
|
||||||
|
"prereqs": {
|
||||||
|
"runtime": {
|
||||||
|
"requires": {
|
||||||
|
"FHEM": 5.00918799,
|
||||||
|
"perl": 5.016,
|
||||||
|
"Meta": 0,
|
||||||
|
"JSON": 0
|
||||||
|
},
|
||||||
|
"recommends": {
|
||||||
|
},
|
||||||
|
"suggests": {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
=end :application/json;q=META.json
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
Loading…
x
Reference in New Issue
Block a user