Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -rc4597167d133bcafd1a0576d0f7c53f430d98d4b -r1f669c93c03ac8f246a2b791678b4b65ecb2dbd4 --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision c4597167d133bcafd1a0576d0f7c53f430d98d4b) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 1f669c93c03ac8f246a2b791678b4b65ecb2dbd4) @@ -1162,16 +1162,21 @@ *************************************************************************/ static void checkDGTrimmerHeaterStatus( void ) { - U32 trimmerState = dgHeatersData.trimmerHeaterState; + U32 trimmerState = dgHeatersData.trimmerHeaterState; + DG_OP_MODE_T dgOp = getDGOpMode(); - if ( ( TRUE == dgTrimmerHeaterOn ) && ( HEATER_EXEC_STATE_OFF == trimmerState ) ) + if ( ( dgOp != DG_MODE_HEAT ) && ( dgOp != DG_MODE_CHEM ) ) { - cmdStartDGTrimmerHeater(); + // In heat disinfect and chemical disinfect, the trimmer heater is controlled by the DG itself so no commands from HD should be sent. + if ( ( TRUE == dgTrimmerHeaterOn ) && ( HEATER_EXEC_STATE_OFF == trimmerState ) ) + { + cmdStartDGTrimmerHeater(); + } + else if ( ( FALSE == dgTrimmerHeaterOn ) && ( trimmerState != HEATER_EXEC_STATE_OFF ) ) + { + cmdStopDGTrimmerHeater(); + } } - else if ( ( FALSE == dgTrimmerHeaterOn ) && ( trimmerState != HEATER_EXEC_STATE_OFF ) ) - { - cmdStopDGTrimmerHeater(); - } }