change Modul Attribut antiFreezeTemp to freezTemp
This commit is contained in:
		@@ -38,7 +38,7 @@ package main;
 | 
				
			|||||||
use strict;
 | 
					use strict;
 | 
				
			||||||
use warnings;
 | 
					use warnings;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
my $version = "0.1.92.18";
 | 
					my $version = "0.1.93";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sub AutoShuttersControl_Initialize($) {
 | 
					sub AutoShuttersControl_Initialize($) {
 | 
				
			||||||
    my ($hash) = @_;
 | 
					    my ($hash) = @_;
 | 
				
			||||||
@@ -76,8 +76,9 @@ sub AutoShuttersControl_Initialize($) {
 | 
				
			|||||||
      . "ASC_autoAstroModeMorningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 "
 | 
					      . "ASC_autoAstroModeMorningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 "
 | 
				
			||||||
      . "ASC_autoAstroModeEvening:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON "
 | 
					      . "ASC_autoAstroModeEvening:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON "
 | 
				
			||||||
      . "ASC_autoAstroModeEveningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 "
 | 
					      . "ASC_autoAstroModeEveningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 "
 | 
				
			||||||
      . "ASC_antifreezeTemp:-5,-4,-3,-2,-1,0,1,2,3,4,5 "
 | 
					      . "ASC_freezeTemp:-5,-4,-3,-2,-1,0,1,2,3,4,5 "
 | 
				
			||||||
      . "ASC_timeUpHolidayDevice "
 | 
					      . "ASC_timeUpHolidayDevice "
 | 
				
			||||||
 | 
					      . "ASC_timeUpHolidayReading "
 | 
				
			||||||
      . "ASC_shuttersDriveOffset "
 | 
					      . "ASC_shuttersDriveOffset "
 | 
				
			||||||
      . $readingFnAttributes;
 | 
					      . $readingFnAttributes;
 | 
				
			||||||
    $hash->{NotifyOrderPrefix} = "51-";    # Order Nummer für NotifyFn
 | 
					    $hash->{NotifyOrderPrefix} = "51-";    # Order Nummer für NotifyFn
 | 
				
			||||||
@@ -208,6 +209,9 @@ my %posSetCmds = (
 | 
				
			|||||||
    CUL_HM     => 'pct',
 | 
					    CUL_HM     => 'pct',
 | 
				
			||||||
    ROLLO      => 'pct',
 | 
					    ROLLO      => 'pct',
 | 
				
			||||||
    SOMFY      => 'position',
 | 
					    SOMFY      => 'position',
 | 
				
			||||||
 | 
					    tahoma     => 'dim',
 | 
				
			||||||
 | 
					    KLF200Node => 'pct',
 | 
				
			||||||
 | 
					    DUOFERN    => 'position',
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
my $shutters = new ASC_Shutters();
 | 
					my $shutters = new ASC_Shutters();
 | 
				
			||||||
@@ -238,7 +242,7 @@ sub Define($$) {
 | 
				
			|||||||
    readingsSingleUpdate(
 | 
					    readingsSingleUpdate(
 | 
				
			||||||
        $hash,
 | 
					        $hash,
 | 
				
			||||||
        "state",
 | 
					        "state",
 | 
				
			||||||
"please set attribut 'ACS' with value 1 or 2 to all your auto controlled shutters and then do 'set DEVICENAME scanForShutters",
 | 
					"please set attribute ASC with value 1 or 2 in all auto controlled shutter devices and then execute 'set DEVICENAME scanForShutters'",
 | 
				
			||||||
        1
 | 
					        1
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
    CommandAttr( undef, $name . ' room ASC' )
 | 
					    CommandAttr( undef, $name . ' room ASC' )
 | 
				
			||||||
@@ -255,10 +259,12 @@ sub Define($$) {
 | 
				
			|||||||
      if ( $ascDev->getAutoShuttersControlEvening eq 'none' );
 | 
					      if ( $ascDev->getAutoShuttersControlEvening eq 'none' );
 | 
				
			||||||
    CommandAttr( undef, $name . ' ASC_temperatureReading temperature' )
 | 
					    CommandAttr( undef, $name . ' ASC_temperatureReading temperature' )
 | 
				
			||||||
      if ( $ascDev->getTempReading eq 'none' );
 | 
					      if ( $ascDev->getTempReading eq 'none' );
 | 
				
			||||||
    CommandAttr( undef, $name . ' ASC_antifreezeTemp 3' )
 | 
					    CommandAttr( undef, $name . ' ASC_freezeTemp 3' )
 | 
				
			||||||
      if ( $ascDev->getAntifreezeTemp eq 'none' );
 | 
					      if ( $ascDev->getAntifreezeTemp eq 'none' );
 | 
				
			||||||
    CommandAttr( undef, $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' )
 | 
					    CommandAttr( undef,
 | 
				
			||||||
      if ( AttrVal($name,'devStateIcon','none') eq 'none' );
 | 
					        $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'
 | 
				
			||||||
 | 
					    ) if ( AttrVal( $name, 'devStateIcon', 'none' ) eq 'none' );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    addToAttrList('ASC:0,1,2');
 | 
					    addToAttrList('ASC:0,1,2');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -518,12 +524,13 @@ sub Set($$@) {
 | 
				
			|||||||
    elsif ( lc $cmd eq 'wiggle' ) {
 | 
					    elsif ( lc $cmd eq 'wiggle' ) {
 | 
				
			||||||
        return "usage: $cmd" if ( @args > 1 );
 | 
					        return "usage: $cmd" if ( @args > 1 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ($args[0] eq 'all' ? wiggleAll($hash) : wiggle($hash,$args[0]));
 | 
					        ( $args[0] eq 'all' ? wiggleAll($hash) : wiggle( $hash, $args[0] ) );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else {
 | 
					    else {
 | 
				
			||||||
        my $list = "scanForShutters:noArg";
 | 
					        my $list = "scanForShutters:noArg";
 | 
				
			||||||
        $list .=
 | 
					        $list .=
 | 
				
			||||||
" renewSetSunriseSunsetTimer:noArg partyMode:on,off lockOut:on,off sunriseTimeWeHoliday:on,off selfDefense:on,off wiggle:all," . join(',',@{$hash->{helper}{shuttersList}})
 | 
					" renewSetSunriseSunsetTimer:noArg partyMode:on,off lockOut:on,off sunriseTimeWeHoliday:on,off selfDefense:on,off wiggle:all,"
 | 
				
			||||||
 | 
					          . join( ',', @{ $hash->{helper}{shuttersList} } )
 | 
				
			||||||
          if ( ReadingsVal( $name, 'userAttrList', 'none' ) eq 'rolled out' );
 | 
					          if ( ReadingsVal( $name, 'userAttrList', 'none' ) eq 'rolled out' );
 | 
				
			||||||
        $list .= " createNewNotifyDev:noArg"
 | 
					        $list .= " createNewNotifyDev:noArg"
 | 
				
			||||||
          if (  ReadingsVal( $name, 'userAttrList', 'none' ) eq 'rolled out'
 | 
					          if (  ReadingsVal( $name, 'userAttrList', 'none' ) eq 'rolled out'
 | 
				
			||||||
@@ -661,7 +668,7 @@ sub ShuttersDeviceScan($) {
 | 
				
			|||||||
        $shutters->setLastPos( $shutters->getStatus );
 | 
					        $shutters->setLastPos( $shutters->getStatus );
 | 
				
			||||||
        $shutters->setDelayCmd('none');
 | 
					        $shutters->setDelayCmd('none');
 | 
				
			||||||
        $shutters->setNoOffset(0);
 | 
					        $shutters->setNoOffset(0);
 | 
				
			||||||
        $shutters->setPosSetCmd($posSetCmds{$hash->{TYPE}});
 | 
					        $shutters->setPosSetCmd( $posSetCmds{ $hash->{TYPE} } );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    $hash->{NOTIFYDEV} = $hash->{NOTIFYDEV} . $shuttersList;
 | 
					    $hash->{NOTIFYDEV} = $hash->{NOTIFYDEV} . $shuttersList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1444,7 +1451,7 @@ sub wiggleAll($) {
 | 
				
			|||||||
    my $hash = shift;
 | 
					    my $hash = shift;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    foreach ( @{ $hash->{helper}{shuttersList} } ) {
 | 
					    foreach ( @{ $hash->{helper}{shuttersList} } ) {
 | 
				
			||||||
        wiggle($hash,$_);
 | 
					        wiggle( $hash, $_ );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1471,8 +1478,7 @@ sub wiggle($$) {
 | 
				
			|||||||
        else { $shutters->setDriveCmd( $shutters->getStatus + 5 ); }
 | 
					        else { $shutters->setDriveCmd( $shutters->getStatus + 5 ); }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    InternalTimer( gettimeofday() + 60,
 | 
					    InternalTimer( gettimeofday() + 60, 'AutoShuttersControl::SetCmdFn', \%h );
 | 
				
			||||||
        'AutoShuttersControl::SetCmdFn', \%h );
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
####
 | 
					####
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1686,7 +1692,7 @@ sub GetMonitoredDevs($) {
 | 
				
			|||||||
    my $aHref;
 | 
					    my $aHref;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# create define Link
 | 
					# create define Link
 | 
				
			||||||
#     $aHref="<a href=\"".$::FW_httpheader->{host}."/fhem?cmd=set".$::FW_CSRF."\">Create new NOTIFYDEV structure</a>";
 | 
					#     $aHref="<a href=\"".$::FW_httpheader->{host}."/fhem?cmd=set+".$::FW_CSRF."\">Create new NOTIFYDEV structure</a>";
 | 
				
			||||||
#     $aHref="<a href=\"/fhem?cmd=set+\">Create new NOTIFYDEV structure</a>";
 | 
					#     $aHref="<a href=\"/fhem?cmd=set+\">Create new NOTIFYDEV structure</a>";
 | 
				
			||||||
#     $aHref="<a href=\"".$headerHost[0]."/fhem?cmd=define+".makeDeviceName($dataset->{station}{name})."+Aqicn+".$dataset->{uid}.$FW_CSRF."\">Create Station Device</a>";
 | 
					#     $aHref="<a href=\"".$headerHost[0]."/fhem?cmd=define+".makeDeviceName($dataset->{station}{name})."+Aqicn+".$dataset->{uid}.$FW_CSRF."\">Create Station Device</a>";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -2063,7 +2069,7 @@ sub IsHoliday($) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    return (
 | 
					    return (
 | 
				
			||||||
        ReadingsVal( AttrVal( $name, 'ASC_timeUpHolidayDevice', 'none' ),
 | 
					        ReadingsVal( AttrVal( $name, 'ASC_timeUpHolidayDevice', 'none' ),
 | 
				
			||||||
            'state', 0 ) == 1 ? 1 : 0
 | 
					            AttrVal( $name, 'ASC_timeUpHolidayReading', 'state' ), 0 ) == 1 ? 1 : 0
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -2161,8 +2167,9 @@ sub setDriveCmd {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    InternalTimer( gettimeofday() + int( rand($offSet) ),
 | 
					    InternalTimer( gettimeofday() + int( rand($offSet) ),
 | 
				
			||||||
        'AutoShuttersControl::SetCmdFn', \%h )
 | 
					        'AutoShuttersControl::SetCmdFn', \%h )
 | 
				
			||||||
      if ( $offSet > 0 and not $shutters->getNoOffset);
 | 
					      if ( $offSet > 0 and not $shutters->getNoOffset );
 | 
				
			||||||
    AutoShuttersControl::SetCmdFn( \%h ) if ( $offSet == 0 or $shutters->getNoOffset );
 | 
					    AutoShuttersControl::SetCmdFn( \%h )
 | 
				
			||||||
 | 
					      if ( $offSet == 0 or $shutters->getNoOffset );
 | 
				
			||||||
    $shutters->setNoOffset(0);
 | 
					    $shutters->setNoOffset(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
@@ -2265,7 +2272,10 @@ sub getShuttersPosCmdValueNegate {
 | 
				
			|||||||
sub getPosSetCmd {
 | 
					sub getPosSetCmd {
 | 
				
			||||||
    my $self = shift;
 | 
					    my $self = shift;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return (defined($self->{ $self->{shuttersDev} }{posSetCmd}) ? $self->{ $self->{shuttersDev} }{posSetCmd} : $shutters->getPosCmd);
 | 
					    return (
 | 
				
			||||||
 | 
					        defined( $self->{ $self->{shuttersDev} }{posSetCmd} )
 | 
				
			||||||
 | 
					        ? $self->{ $self->{shuttersDev} }{posSetCmd}
 | 
				
			||||||
 | 
					        : $shutters->getPosCmd );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sub getNoOffset {
 | 
					sub getNoOffset {
 | 
				
			||||||
@@ -2803,7 +2813,8 @@ sub setStateReading {
 | 
				
			|||||||
    my $name  = $self->{name};
 | 
					    my $name  = $self->{name};
 | 
				
			||||||
    my $hash  = $defs{$name};
 | 
					    my $hash  = $defs{$name};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    readingsSingleUpdate( $hash, 'state', (defined($value) ? $value : $shutters->getLastDrive), 1 );
 | 
					    readingsSingleUpdate( $hash, 'state',
 | 
				
			||||||
 | 
					        ( defined($value) ? $value : $shutters->getLastDrive ), 1 );
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -3269,7 +3280,8 @@ sub getRainSensorShuttersClosedPos {
 | 
				
			|||||||
      <li>ASC_autoShuttersControlMorning - on/off,ob Morgens die Rolläden automatisch nach Zeit gesteuert werden sollen</li>
 | 
					      <li>ASC_autoShuttersControlMorning - on/off,ob Morgens die Rolläden automatisch nach Zeit gesteuert werden sollen</li>
 | 
				
			||||||
      <li>ASC_temperatureReading - Reading für die Aussentemperatur</li>
 | 
					      <li>ASC_temperatureReading - Reading für die Aussentemperatur</li>
 | 
				
			||||||
      <li>ASC_temperatureSensor - Device für die Aussentemperatur</li>
 | 
					      <li>ASC_temperatureSensor - Device für die Aussentemperatur</li>
 | 
				
			||||||
      <li>ASC_timeUpHolidayDevice - Device zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 im Reading state beinhalten.</li>
 | 
					      <li>ASC_timeUpHolidayDevice - Device zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 im Reading beinhalten.</li>
 | 
				
			||||||
 | 
					      <li>ASC_timeUpHolidayReading - passendes Reading zum ASC_timeUpHolidayDevice zur Urlaubserkennung oder Sonstiges / muss 0 oder 1 beinhalten.</li>
 | 
				
			||||||
      <li>ASC_residentsDevice - Devicenamen vom Residents Device der obersten Ebene</li>
 | 
					      <li>ASC_residentsDevice - Devicenamen vom Residents Device der obersten Ebene</li>
 | 
				
			||||||
      <li>ASC_residentsDeviceReading - Status Reading vom Residents Device der obersten Ebene</li>
 | 
					      <li>ASC_residentsDeviceReading - Status Reading vom Residents Device der obersten Ebene</li>
 | 
				
			||||||
      <li>ASC_brightnessMinVal - minimaler Lichtwert ab welchen Schaltbedingungen geprüft werden sollen</li>
 | 
					      <li>ASC_brightnessMinVal - minimaler Lichtwert ab welchen Schaltbedingungen geprüft werden sollen</li>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user