Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -r1cfa9cbcd9ae84a8df767c7777ff3beca067aaa8 -r914d62486ceca1eaa9ea68dd30f64082d5e12500 --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 1cfa9cbcd9ae84a8df767c7777ff3beca067aaa8) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 914d62486ceca1eaa9ea68dd30f64082d5e12500) @@ -1163,16 +1163,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(); - } }