| @@ -1,16 +1,16 @@ | ||||
| UPD 2022-01-01_20:15:38 115601 FHEM/73_AutoShuttersControl.pm | ||||
| UPD 2022-01-02_07:52:37 75828 lib/FHEM/Automation/ShuttersControl.pm | ||||
| UPD 2022-01-02_06:39:39 2691 lib/FHEM/Automation/ShuttersControl/Dev.pm | ||||
| UPD 2022-01-02_06:34:39 2677 lib/FHEM/Automation/ShuttersControl/Roommate.pm | ||||
| UPD 2022-01-02_07:04:24 32028 lib/FHEM/Automation/ShuttersControl/Shutters.pm | ||||
| UPD 2022-01-02_06:37:09 25452 lib/FHEM/Automation/ShuttersControl/Shading.pm | ||||
| UPD 2022-01-02_06:36:31 112122 lib/FHEM/Automation/ShuttersControl/EventProcessingFunctions.pm | ||||
| UPD 2022-01-02_07:31:19 40322 lib/FHEM/Automation/ShuttersControl/Helper.pm | ||||
| UPD 2022-01-02_06:41:32 2209 lib/FHEM/Automation/ShuttersControl/Window.pm | ||||
| UPD 2022-01-02_08:49:11 75839 lib/FHEM/Automation/ShuttersControl.pm | ||||
| UPD 2022-01-02_07:57:18 2691 lib/FHEM/Automation/ShuttersControl/Dev.pm | ||||
| UPD 2022-01-02_07:57:18 2677 lib/FHEM/Automation/ShuttersControl/Roommate.pm | ||||
| UPD 2022-01-02_08:24:00 32016 lib/FHEM/Automation/ShuttersControl/Shutters.pm | ||||
| UPD 2022-01-02_07:57:18 25452 lib/FHEM/Automation/ShuttersControl/Shading.pm | ||||
| UPD 2022-01-02_07:57:18 112122 lib/FHEM/Automation/ShuttersControl/EventProcessingFunctions.pm | ||||
| UPD 2022-01-02_07:57:18 40322 lib/FHEM/Automation/ShuttersControl/Helper.pm | ||||
| UPD 2022-01-02_07:57:18 2209 lib/FHEM/Automation/ShuttersControl/Window.pm | ||||
| UPD 2022-01-01_20:15:38 11706 lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm | ||||
| UPD 2022-01-01_20:15:38 7265 lib/FHEM/Automation/ShuttersControl/Dev/Readings.pm | ||||
| UPD 2022-01-01_20:15:38 52751 lib/FHEM/Automation/ShuttersControl/Shutters/Attr.pm | ||||
| UPD 2022-01-01_20:15:38 2799 lib/FHEM/Automation/ShuttersControl/Shutters/Readings.pm | ||||
| UPD 2022-01-01_20:15:38 3887 lib/FHEM/Automation/ShuttersControl/Window/Attr.pm | ||||
| UPD 2022-01-01_20:15:38 2200 lib/FHEM/Automation/ShuttersControl/Window/Readings.pm | ||||
| UPD 2022-01-02_06:36:44 7113 lib/FHEM/Automation/ShuttersControl/Rainprotection.pm | ||||
| UPD 2022-01-02_07:57:18 7113 lib/FHEM/Automation/ShuttersControl/Rainprotection.pm | ||||
|   | ||||
| @@ -172,6 +172,7 @@ BEGIN { | ||||
| } | ||||
|  | ||||
| ## Die Attributsliste welche an die Rolläden verteilt wird. Zusammen mit Default Werten | ||||
| ##no critic | ||||
| our %userAttrList = ( | ||||
|     'ASC_Mode_Up:absent,always,off,home'                            => '-', | ||||
|     'ASC_Mode_Down:absent,always,off,home'                          => '-', | ||||
| @@ -244,6 +245,7 @@ our %userAttrList = ( | ||||
| ## 2 Objekte werden erstellt | ||||
| our $shutters = FHEM::Automation::ShuttersControl::Shutters->new(); | ||||
| our $ascDev   = FHEM::Automation::ShuttersControl::Dev->new(); | ||||
| ##use critic | ||||
|  | ||||
| my %posSetCmds = ( | ||||
|     ZWave       => 'dim', | ||||
| @@ -305,9 +307,11 @@ sub ascAPIset { | ||||
| sub Define { | ||||
|     my $hash = shift // return; | ||||
|     my $aArg = shift // return; | ||||
|     my $version; | ||||
|  | ||||
|     return $@ if ( !FHEM::Meta::SetInternals($hash) ); | ||||
|     use version 0.60; our $VERSION = FHEM::Meta::Get( $hash, 'version' ); | ||||
|     return $@ unless ( FHEM::Meta::SetInternals($hash) ); | ||||
|     $version = FHEM::Meta::Get( $hash, 'version' ); | ||||
|     our $VERSION = $version; | ||||
|  | ||||
|     return 'only one AutoShuttersControl instance allowed' | ||||
|       if ( ::devspec2array('TYPE=AutoShuttersControl') > 1 ) | ||||
| @@ -400,15 +404,12 @@ sub Notify { | ||||
|  | ||||
|     if ( | ||||
|         ( | ||||
|             grep m{^DEFINED.$name$}xms, | ||||
|             grep { /^DEFINED.$name$/ } | ||||
|             @{$events} && $devname eq 'global' && $::init_done | ||||
|         ) | ||||
|         || ( | ||||
|             grep m{^INITIALIZED$}xms, | ||||
|             @{$events} or grep m{^REREADCFG$}xms, | ||||
|             @{$events} or grep m{^MODIFIED.$name$}xms, | ||||
|             @{$events} | ||||
|         ) | ||||
|         || (   grep { /^INITIALIZED$/ } @{$events} | ||||
|             or grep { /^REREADCFG$/ } @{$events} | ||||
|             or grep { /^MODIFIED.$name$/ } @{$events} ) | ||||
|         && $devname eq 'global' | ||||
|       ) | ||||
|     { | ||||
| @@ -450,7 +451,7 @@ sub Notify { | ||||
|     my $posReading = $shutters->getPosCmd; | ||||
|  | ||||
|     if ( $devname eq $name ) { | ||||
|         if ( grep m{^userAttrList:.rolled.out$}xms, @{$events} ) { | ||||
|         if ( grep { /^userAttrList:.rolled.out$/ } @{$events} ) { | ||||
|             if ( scalar( @{ $hash->{helper}{shuttersList} } ) > 0 ) { | ||||
|                 WriteReadingsShuttersList($hash); | ||||
|                 UserAttributs_Readings_ForShutters( $hash, 'add' ); | ||||
| @@ -475,25 +476,25 @@ sub Notify { | ||||
|                     ::ReadingsVal( $name, 'controlShading', 'off' ) ne 'off' ); | ||||
|             } | ||||
|         } | ||||
|         elsif ( grep m{^partyMode:.off$}xms, @{$events} ) { | ||||
|         elsif ( grep { /^partyMode:.off$/ } @{$events} ) { | ||||
|             EventProcessingPartyMode($hash); | ||||
|         } | ||||
|         elsif ( grep m{^sunriseTimeWeHoliday:.(on|off)$}xms, @{$events} ) { | ||||
|         elsif ( grep { /^sunriseTimeWeHoliday:.(on|off)$/ } @{$events} ) { | ||||
|             RenewSunRiseSetShuttersTimer($hash); | ||||
|         } | ||||
|     } | ||||
|     elsif ( $devname eq "global" ) | ||||
|     { # Kommt ein globales Event und beinhaltet folgende Syntax wird die Funktion zur Verarbeitung aufgerufen | ||||
|         if ( | ||||
|             grep | ||||
| m{^(ATTR|DELETEATTR)\s(.*ASC_Time_Up_WE_Holiday|.*ASC_Up|.*ASC_Down|.*ASC_AutoAstroModeMorning|.*ASC_AutoAstroModeMorningHorizon|.*ASC_AutoAstroModeEvening|.*ASC_AutoAstroModeEveningHorizon|.*ASC_Time_Up_Early|.*ASC_Time_Up_Late|.*ASC_Time_Down_Early|.*ASC_Time_Down_Late|.*ASC_autoAstroModeMorning|.*ASC_autoAstroModeMorningHorizon|.*ASC_PrivacyDownValue_beforeNightClose|.*ASC_PrivacyUpValue_beforeDayOpen|.*ASC_autoAstroModeEvening|.*ASC_autoAstroModeEveningHorizon|.*ASC_Roommate_Device|.*ASC_WindowRec|.*ASC_residentsDev|.*ASC_rainSensor|.*ASC_windSensor|.*ASC_tempSensor|.*ASC_BrightnessSensor|.*ASC_twilightDevice|.*ASC_ExternalTrigger|.*ASC_Shading_StateChange_SunnyCloudy|.*ASC_TempSensor|.*ASC_Shading_Mode)(\s.*|$)}xms, | ||||
|             @{$events} | ||||
|             grep { | ||||
| /^(ATTR|DELETEATTR)\s(.*ASC_Time_Up_WE_Holiday|.*ASC_Up|.*ASC_Down|.*ASC_AutoAstroModeMorning|.*ASC_AutoAstroModeMorningHorizon|.*ASC_AutoAstroModeEvening|.*ASC_AutoAstroModeEveningHorizon|.*ASC_Time_Up_Early|.*ASC_Time_Up_Late|.*ASC_Time_Down_Early|.*ASC_Time_Down_Late|.*ASC_autoAstroModeMorning|.*ASC_autoAstroModeMorningHorizon|.*ASC_PrivacyDownValue_beforeNightClose|.*ASC_PrivacyUpValue_beforeDayOpen|.*ASC_autoAstroModeEvening|.*ASC_autoAstroModeEveningHorizon|.*ASC_Roommate_Device|.*ASC_WindowRec|.*ASC_residentsDev|.*ASC_rainSensor|.*ASC_windSensor|.*ASC_tempSensor|.*ASC_BrightnessSensor|.*ASC_twilightDevice|.*ASC_ExternalTrigger|.*ASC_Shading_StateChange_SunnyCloudy|.*ASC_TempSensor|.*ASC_Shading_Mode)(\s.*|$) / | ||||
|             } @{$events} | ||||
|           ) | ||||
|         { | ||||
|             EventProcessingGeneral( $hash, undef, join( ' ', @{$events} ) ); | ||||
|         } | ||||
|     } | ||||
|     elsif ( grep m{^($posReading):\s\d{1,3}(\.\d{1,3})?$}xms, @{$events} ) { | ||||
|     elsif ( grep { /^($posReading):\s\d{1,3}(\.\d{1,3})?$/ } @{$events} ) { | ||||
|         ASC_Debug( 'Notify: ' | ||||
|               . ' ASC_Pos_Reading Event vom Rollo ' | ||||
|               . $devname | ||||
| @@ -1337,7 +1338,7 @@ sub wiggle { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     ::InternalTimer( ::gettimeofday() + 60, \&_SetCmdFn, \%h ); | ||||
|     ::InternalTimer( ::gettimeofday() + 60, \&SetCmdFn, \%h ); | ||||
|  | ||||
|     return; | ||||
| } | ||||
| @@ -1741,7 +1742,7 @@ sub _DetermineSlatCmd { | ||||
|       : $value; | ||||
| } | ||||
|  | ||||
| sub _SetCmdFn { | ||||
| sub SetCmdFn { | ||||
|     my $h = shift; | ||||
|  | ||||
|     my $shuttersDev = $h->{shuttersDev}; | ||||
| @@ -1888,7 +1889,7 @@ sub _SetCmdFn { | ||||
|     return; | ||||
| } | ||||
|  | ||||
| sub _setShuttersLastDriveDelayed { | ||||
| sub setShuttersLastDriveDelayed { | ||||
|     my $h = shift; | ||||
|  | ||||
|     my $shuttersDevHash = $h->{devHash}; | ||||
|   | ||||
| @@ -235,7 +235,7 @@ sub setDriveCmd { | ||||
|                 ::gettimeofday() + | ||||
|                   $FHEM::Automation::ShuttersControl::shutters | ||||
|                   ->getSelfDefenseAbsentDelay, | ||||
|                 \&FHEM::Automation::ShuttersControl::_SetCmdFn, \%h | ||||
|                 \&FHEM::Automation::ShuttersControl::SetCmdFn, \%h | ||||
|             ); | ||||
|             $FHEM::Automation::ShuttersControl::shutters->setSelfDefenseAbsent( | ||||
|                 1, 0, \%h ); | ||||
| @@ -249,7 +249,7 @@ sub setDriveCmd { | ||||
|                       $FHEM::Automation::ShuttersControl::shutters | ||||
|                       ->getDelayStart | ||||
|                 ), | ||||
|                 \&FHEM::Automation::ShuttersControl::_SetCmdFn, | ||||
|                 \&FHEM::Automation::ShuttersControl::SetCmdFn, | ||||
|                 \%h | ||||
|             ); | ||||
|  | ||||
| @@ -260,7 +260,7 @@ sub setDriveCmd { | ||||
|         elsif ($offSetStart < 1 | ||||
|             || $FHEM::Automation::ShuttersControl::shutters->getNoDelay ) | ||||
|         { | ||||
|             FHEM::Automation::ShuttersControl::_SetCmdFn( \%h ); | ||||
|             FHEM::Automation::ShuttersControl::SetCmdFn( \%h ); | ||||
|             FHEM::Automation::ShuttersControl::ASC_Debug( 'FnSetDriveCmd: ' | ||||
|                   . $FHEM::Automation::ShuttersControl::shutters->getShuttersDev | ||||
|                   . ' - NICHT versetztes fahren' ); | ||||
| @@ -348,8 +348,7 @@ sub setLastDriveReading { | ||||
|     ); | ||||
|  | ||||
|     ::InternalTimer( ::gettimeofday() + 0.1, | ||||
|         \&FHEM::Automation::ShuttersControl::_setShuttersLastDriveDelayed, | ||||
|         \%h ); | ||||
|         \&FHEM::Automation::ShuttersControl::setShuttersLastDriveDelayed, \%h ); | ||||
|     return; | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user