add more shading information in reading

This commit is contained in:
Marko Oldenburg 2020-04-20 14:52:27 +02:00
parent fc81592a32
commit 2a90962675

View File

@ -478,7 +478,7 @@ sub Notify {
sub() { CommandSet( undef, $name . ' controlShading on' ) }, sub() { CommandSet( undef, $name . ' controlShading on' ) },
$hash $hash
) )
if ( ReadingsVal( $name, 'controlShading', 'off' ) eq 'on' ); if ( ReadingsVal( $name, 'controlShading', 'off' ) ne 'off' );
} }
} }
elsif ( grep m{^partyMode:.off$}xms, @{$events} ) { elsif ( grep m{^partyMode:.off$}xms, @{$events} ) {
@ -492,7 +492,7 @@ sub Notify {
{ # Kommt ein globales Event und beinhaltet folgende Syntax wird die Funktion zur Verarbeitung aufgerufen { # Kommt ein globales Event und beinhaltet folgende Syntax wird die Funktion zur Verarbeitung aufgerufen
if ( if (
grep 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_BrightnessSensor|.*ASC_twilightDevice|.*ASC_ExternalTrigger)(\s.*|$)}xms, 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)(\s.*|$)}xms,
@{$events} @{$events}
) )
{ {
@ -609,6 +609,20 @@ sub EventProcessingGeneral {
{ {
RenewSunRiseSetShuttersTimer($hash); RenewSunRiseSetShuttersTimer($hash);
} }
if (
$events =~
m{^(DELETEATTR|ATTR) #global ATTR myASC ASC_tempSensor Cellar
\s(.*)\s(ASC_tempSensor
|ASC_Shading_Mode
|ASC_BrightnessSensor
|ASC_TempSensor)
(.*)?}xms
)
{
CommandSet( undef, $name . ' controlShading on' )
if ( ReadingsVal( $name, 'controlShading', 'off' ) ne 'off' );
}
} }
return; return;
@ -2443,9 +2457,12 @@ sub ShadingProcessing {
&& $brightness > $shutters->getShadingStateChangeSunny && $brightness > $shutters->getShadingStateChangeSunny
&& $outTemp > $shutters->getShadingMinOutsideTemperature ) && $outTemp > $shutters->getShadingMinOutsideTemperature )
{ {
$shutters->setShadingStatus('in reserved') if ( $shutters->getShadingStatus eq 'out'
if ( $shutters->getShadingStatus eq 'out' || $shutters->getShadingStatus eq 'out reserved' )
|| $shutters->getShadingStatus eq 'out reserved' ); {
$shutters->setShadingStatus('in reserved');
}
if ( $shutters->getShadingStatus eq 'in reserved' if ( $shutters->getShadingStatus eq 'in reserved'
and and
@ -2499,6 +2516,16 @@ sub ShadingProcessing {
) )
); );
readingsSingleUpdate(
$defs{$shuttersDev},
'ASC_ShadingMessage',
'INFO: current shading status is \''
. $shutters->getShadingStatus . '\'',
1
)
if ( $shutters->getShadingStatus ne 'in'
&& $shutters->getShadingStatus ne 'out' );
return; return;
} }
@ -4785,7 +4812,7 @@ sub _CheckShuttersConditionsForShadingFn {
: '' : ''
); );
$warnMessage .= ( $errorMessage .= (
$shutters->getShadingMode ne 'off' $shutters->getShadingMode ne 'off'
&& $ascDev->getAutoShuttersControlShading ne 'on' && $ascDev->getAutoShuttersControlShading ne 'on'
&& $ascDev->getAutoShuttersControlShading ne 'off' && $ascDev->getAutoShuttersControlShading ne 'off'
@ -4799,17 +4826,25 @@ sub _CheckShuttersConditionsForShadingFn {
: '' : ''
); );
$errorMessage .= (
$shutters->getBrightness == -1 && $shutters->getShadingMode ne 'off'
? ' no brightness sensor found, please set ASC_BrightnessSensor attribut'
: ''
);
$message .= ' ERROR: ' . $errorMessage $message .= ' ERROR: ' . $errorMessage
if ( defined($errorMessage) if ( defined($errorMessage)
&& $errorMessage ne '' ); && $errorMessage ne '' );
$message .= ' WARN: ' . $warnMessage $message .= ' WARN: ' . $warnMessage
if ( defined($warnMessage) if ( defined($warnMessage)
&& $warnMessage ne '' ); && $warnMessage ne ''
&& $errorMessage eq '' );
$message .= ' INFO: ' . $infoMessage $message .= ' INFO: ' . $infoMessage
if ( defined($infoMessage) if ( defined($infoMessage)
&& $infoMessage ne '' ); && $infoMessage ne ''
&& $errorMessage eq '' );
readingsSingleUpdate( $shuttersDevHash, 'ASC_ShadingMessage', readingsSingleUpdate( $shuttersDevHash, 'ASC_ShadingMessage',
'<html>' . $message . ' </html>', 1 ); '<html>' . $message . ' </html>', 1 );
@ -8796,7 +8831,7 @@ sub getBlockAscDrivesAfterManual {
], ],
"release_status": "testing", "release_status": "testing",
"license": "GPL_2", "license": "GPL_2",
"version": "v0.9.12", "version": "v0.9.13",
"author": [ "author": [
"Marko Oldenburg <leongaultier@gmail.com>" "Marko Oldenburg <leongaultier@gmail.com>"
], ],