Index: firmware/App/Controllers/UVReactors.c =================================================================== diff -u -rd8dbfa71fd70064ffe00d09ffa270f477c8f7af2 -rc470051d8185a96286083123bc65489747c391f7 --- firmware/App/Controllers/UVReactors.c (.../UVReactors.c) (revision d8dbfa71fd70064ffe00d09ffa270f477c8f7af2) +++ firmware/App/Controllers/UVReactors.c (.../UVReactors.c) (revision c470051d8185a96286083123bc65489747c391f7) @@ -255,7 +255,7 @@ if ( TURN_OFF == reactorsStatus[ reactor ].switchState ) { reactorsStatus[ reactor ].switchState = TURN_ON; - result = TRUE; + result = TRUE; } } else @@ -404,9 +404,11 @@ if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_UV_REACTORS ) != SW_CONFIG_ENABLE_VALUE ) #endif { - // Check if the alarm has been active - if ( TRUE == checkPersistentAlarm( ALARM_ID_UV_REACTOR_NOT_HEALTHY, isReactorUnhealthy, (U32)reactor, MAX_ALLOWED_UNHEALTHY_REACTOR_PERIOD ) ) + checkPersistentAlarm( ALARM_ID_UV_REACTOR_NOT_HEALTHY, isReactorUnhealthy, (U32)reactor, MAX_ALLOWED_UNHEALTHY_REACTOR_PERIOD ); + + if ( TRUE == isAlarmActive( ALARM_ID_UV_REACTOR_NOT_HEALTHY ) ) { + // The UV reactor is not healthy turn it off and trigger the alarm reactorsStatus[ reactor ].switchState = TURN_OFF; } }