change logic in eventwindow sub
This commit is contained in:
		| @@ -266,7 +266,7 @@ sub Define($$) { | |||||||
|       if ( $ascDev->getFreezeTemp eq 'none' ); |       if ( $ascDev->getFreezeTemp eq 'none' ); | ||||||
|     CommandAttr( undef, |     CommandAttr( undef, | ||||||
|         $name |         $name | ||||||
|           . ' devStateIcon selfeDefense.terrace:fts_door_tilt created.new.drive.timer:clock .*asleep:scene_sleeping roommate.(awoken|home):user_available residents.(home|awoken):status_available manual:fts_shutter_manual selfeDefense.active:status_locked selfeDefense inactive:status_open day.open:scene_day night close:scene_night' |           . ' devStateIcon selfeDefense.terrace:fts_door_tilt created.new.drive.timer:clock .*asleep:scene_sleeping roommate.(awoken|home):user_available residents.(home|awoken):status_available manual:fts_shutter_manual selfeDefense.active:status_locked selfeDefense inactive:status_open day.open:scene_day night.close:scene_night' | ||||||
|     ) if ( AttrVal( $name, 'devStateIcon', 'none' ) eq 'none' ); |     ) if ( AttrVal( $name, 'devStateIcon', 'none' ) eq 'none' ); | ||||||
|  |  | ||||||
|     addToAttrList('ASC:0,1,2'); |     addToAttrList('ASC:0,1,2'); | ||||||
| @@ -832,38 +832,47 @@ sub EventProcessingWindowRec($@) { | |||||||
|             : $shutters->getStatus < $shutters->getComfortOpenPos |             : $shutters->getStatus < $shutters->getComfortOpenPos | ||||||
|         ); |         ); | ||||||
|  |  | ||||||
|         if ( $shutters->getDelayCmd ne 'none' ) |         if ( $shutters->getDelayCmd ne 'none' and $1 eq 'closed' ) | ||||||
|         { # Es wird geschaut ob wärend der Fenster offen Phase ein Fahrbefehl über das Modul kam,wenn ja wird dieser aus geführt |         { # Es wird geschaut ob wärend der Fenster offen Phase ein Fahrbefehl über das Modul kam,wenn ja wird dieser aus geführt | ||||||
|             if ( $1 eq 'closed' ) { | #             if ( $1 eq 'closed' ) { | ||||||
|                 $shutters->setLastDrive('delayed closed'); |                 $shutters->setLastDrive('delayed drive - window closed'); | ||||||
|                 ShuttersCommandSet( $hash, $shuttersDev, |                 ShuttersCommandSet( $hash, $shuttersDev, | ||||||
|                     $shutters->getClosedPos ); |                     $shutters->getDelayCmd ); | ||||||
|             } | #             } | ||||||
|             elsif ( | #             elsif ( | ||||||
|                 ( | #                 ( | ||||||
|                     $1 eq 'tilted' | #                     $1 eq 'tilted' | ||||||
|                     or ( $1 eq 'open' and $shutters->getSubTyp eq 'twostate' ) | #                     or ( $1 eq 'open' and $shutters->getSubTyp eq 'twostate' ) | ||||||
|                 ) | #                 ) | ||||||
|                 and $shutters->getVentilateOpen eq 'on' | #                 and $shutters->getVentilateOpen eq 'on' | ||||||
|                 and $queryShuttersPosWinRecTilted | #                 and $queryShuttersPosWinRecTilted | ||||||
|               ) | #               ) | ||||||
|             { | #             { | ||||||
|                 $shutters->setLastDrive('delayed ventilate open'); | #                 $shutters->setLastDrive('delayed ventilate open'); | ||||||
|                 ShuttersCommandSet( $hash, $shuttersDev, | #                 ShuttersCommandSet( $hash, $shuttersDev, | ||||||
|                     $shutters->getVentilatePos ); | #                     $shutters->getVentilatePos ); | ||||||
|             } | #             } | ||||||
|         } |         } | ||||||
|         elsif ( $1 eq 'closed' |         elsif ( $1 eq 'closed' | ||||||
|           ) # wenn nicht dann wird entsprechend dem Fensterkontakt Event der Rolladen geschlossen oder zum lüften geöffnet |           ) # wenn nicht dann wird entsprechend dem Fensterkontakt Event der Rolladen geschlossen oder zum lüften geöffnet | ||||||
|         { |         { | ||||||
|              |  | ||||||
|             if ( $shutters->getStatus == $shutters->getVentilatePos |             if ( $shutters->getStatus == $shutters->getVentilatePos | ||||||
|               or $shutters->getStatus == $shutters->getComfortOpenPos ) |               or $shutters->getStatus == $shutters->getComfortOpenPos ) | ||||||
|             { |             { | ||||||
|  |                 my $homemode = $shutters->getRoommatesStatus; | ||||||
|  |                 $homemode = $ascDev->getResidentsStatus if ( $homemode eq 'none' ); | ||||||
|                 $shutters->setLastDrive('window closed'); |                 $shutters->setLastDrive('window closed'); | ||||||
|                 ShuttersCommandSet( $hash, $shuttersDev, $shutters->getClosedPos ); |                  | ||||||
|  |                 ShuttersCommandSet( $hash, $shuttersDev, $shutters->getOpenPos ) | ||||||
|  |                     if ( IsDay($hash,$shuttersDev) | ||||||
|  |                       and ($homemode ne 'asleep' | ||||||
|  |                         or $homemode ne 'gotosleep' | ||||||
|  |                         or $homemode eq 'none') ); | ||||||
|  |                 ShuttersCommandSet( $hash, $shuttersDev, $shutters->getClosedPos ) | ||||||
|  |                     if ( not IsDay($hash,$shuttersDev) | ||||||
|  |                       or $homemode eq 'asleep' | ||||||
|  |                       or $homemode eq 'gotosleep' ); | ||||||
|             } |             } | ||||||
|              |  | ||||||
|         } |         } | ||||||
|         elsif ( |         elsif ( | ||||||
|             ( |             ( | ||||||
| @@ -874,7 +883,7 @@ sub EventProcessingWindowRec($@) { | |||||||
|             and $queryShuttersPosWinRecTilted |             and $queryShuttersPosWinRecTilted | ||||||
|           ) |           ) | ||||||
|         { |         { | ||||||
|             $shutters->setLastDrive('ventilate open'); |             $shutters->setLastDrive('ventilate - window open'); | ||||||
|             ShuttersCommandSet( $hash, $shuttersDev, |             ShuttersCommandSet( $hash, $shuttersDev, | ||||||
|                 $shutters->getVentilatePos ); |                 $shutters->getVentilatePos ); | ||||||
|         } |         } | ||||||
| @@ -883,7 +892,7 @@ sub EventProcessingWindowRec($@) { | |||||||
|             and $ascDev->getAutoShuttersControlComfort eq 'on' |             and $ascDev->getAutoShuttersControlComfort eq 'on' | ||||||
|             and $queryShuttersPosWinRecComfort ) |             and $queryShuttersPosWinRecComfort ) | ||||||
|         { |         { | ||||||
|             $shutters->setLastDrive('comfort open'); |             $shutters->setLastDrive('comfort - window open'); | ||||||
|             ShuttersCommandSet( $hash, $shuttersDev, |             ShuttersCommandSet( $hash, $shuttersDev, | ||||||
|                 $shutters->getComfortOpenPos ); |                 $shutters->getComfortOpenPos ); | ||||||
|         } |         } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user