Beachtung WindesRec_Subtype hinzugefügt, einige bugfixes
This commit is contained in:
		@@ -41,7 +41,7 @@ use warnings;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
my $version = "0.0.50";
 | 
			
		||||
my $version = "0.0.53";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
sub AutoShuttersControl_Initialize($) {
 | 
			
		||||
@@ -534,21 +534,22 @@ sub WindowRecEventProcessing($@) {
 | 
			
		||||
 | 
			
		||||
    if($events =~ m#state:\s(open|closed|tilted)# ) {
 | 
			
		||||
        my ($openPos,$closedPos,$closedPosWinRecTilted) = ShuttersReadAttrForShuttersControl($shuttersDev);
 | 
			
		||||
        my $queryShuttersPosWinRecTilted                = (ShuttersPosCmdValueNegieren($shuttersDev) ? "ReadingsVal($shuttersDev,AttrVal($shuttersDev,'AutoShuttersControl_Pos_Cmd','pct'),0) > $closedPosWinRecTilted" : "ReadingsVal($shuttersDev,AttrVal($shuttersDev,'AutoShuttersControl_Pos_Cmd','pct'),0) < $closedPosWinRecTilted");
 | 
			
		||||
        my $queryShuttersPosWinRecTilted                = (ShuttersPosCmdValueNegieren($shuttersDev) ? ReadingsVal($shuttersDev,AttrVal($shuttersDev,'AutoShuttersControl_Pos_Cmd','pct'),0) > $closedPosWinRecTilted : ReadingsVal($shuttersDev,AttrVal($shuttersDev,'AutoShuttersControl_Pos_Cmd','pct'),0) < $closedPosWinRecTilted);
 | 
			
		||||
        
 | 
			
		||||
        if(ReadingsVal($shuttersDev,'.AutoShuttersControl_DelayCmd','none') ne 'none') {
 | 
			
		||||
        if(ReadingsVal($shuttersDev,'.AutoShuttersControl_DelayCmd','none') ne 'none') {                # Es wird geschaut ob wärend der Fenster offen Phase ein Fahrbefehl über das Modul kam, wenn ja wird dieser aus geführt
 | 
			
		||||
            my ($openPos,$closedPos,$closedPosWinRecTilted) = ShuttersReadAttrForShuttersControl($shuttersDev);
 | 
			
		||||
            
 | 
			
		||||
            ### Es wird ausgewertet ob ein normaler Fensterkontakt oder ein Drehgriff vorhanden ist. Beim normalen Fensterkontakt bedeutet ein open das selbe wie tilted beim Drehgriffkontakt.
 | 
			
		||||
            if( $1 eq 'closed' ) {
 | 
			
		||||
                ShuttersCommandSet($shuttersDev,ReadingsVal($shuttersDev,'.AutoShuttersControl_DelayCmd',0));
 | 
			
		||||
 | 
			
		||||
            } elsif( $1 eq 'tilted' and AttrVal($shuttersDev,'AutoShuttersControl_Ventilate_Window_Open','off') eq 'on' and $queryShuttersPosWinRecTilted ) {
 | 
			
		||||
            } elsif( ($1 eq 'tilted' or ($1 eq 'open' and AttrVal($shuttersDev,'AutoShuttersControl_WindowRec_subType','twostate') eq 'twostate')) and AttrVal($shuttersDev,'AutoShuttersControl_Ventilate_Window_Open','off') eq 'on' and $queryShuttersPosWinRecTilted ) {
 | 
			
		||||
                ShuttersCommandSet($shuttersDev,$closedPosWinRecTilted);
 | 
			
		||||
            }
 | 
			
		||||
        } 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
 | 
			
		||||
            ShuttersCommandSet($shuttersDev,$closedPos) if(ReadingsVal($shuttersDev,AttrVal($shuttersDev,'AutoShuttersControl_Pos_Cmd','pct'),0) == $closedPosWinRecTilted);
 | 
			
		||||
        
 | 
			
		||||
        } elsif( $1 eq 'tilted' and AttrVal($shuttersDev,'AutoShuttersControl_Ventilate_Window_Open','off') eq 'on' and $queryShuttersPosWinRecTilted ) {
 | 
			
		||||
        } elsif( ($1 eq 'tilted' or ($1 eq 'open' and AttrVal($shuttersDev,'AutoShuttersControl_WindowRec_subType','twostate') eq 'twostate')) and AttrVal($shuttersDev,'AutoShuttersControl_Ventilate_Window_Open','off') eq 'on' and $queryShuttersPosWinRecTilted ) {
 | 
			
		||||
            ShuttersCommandSet($shuttersDev,$closedPosWinRecTilted);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@@ -578,7 +579,7 @@ sub RoommateEventProcessing($@) {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
         if( AttrVal($shuttersDev,'AutoShuttersControl_Mode_Down','off') eq 'always' ) {
 | 
			
		||||
            if( CheckIfShuttersWindowRecOpen($shuttersDev) == 2 ) {
 | 
			
		||||
            if( CheckIfShuttersWindowRecOpen($shuttersDev) == 2 and AttrVal($shuttersDev,'AutoShuttersControl_WindowRec_subType','twostate') eq 'threestate') {
 | 
			
		||||
                Log3 $name, 4, "AutoShuttersControl ($name) - RoommateEventProcessing Fenster offen";
 | 
			
		||||
                ShuttersCommandDelaySet($shuttersDev,$closedPos);
 | 
			
		||||
                Log3 $name, 4, "AutoShuttersControl ($name) - RoommateEventProcessing - Spring in ShuttersCommandDelaySet";
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user