A water heater (100,400) comprising: a tank (195,495) a water inlet line that delivers unheated water to the tank; a water outlet line that draws heated water from the tank for a hot water demand: a heat exchanger comprising a plurality of flue tube segments (241,242,243,244,245,246,247,248,249,261,262,263,264) disposed within the tank, wherein the plurality of flue tube segments comprises a thermally-conductive material; a heating system (140,440) that heats a fluid to create a heated fluid, wherein the heating system further circulates the heated fluid through the heat exchanger, wherein the plurality of flue tube segments of the heat exchanger absorb thermal energy from the heated fluid and subsequently dissipate the thermal energy into the tank to convert the unheated water to the heated water; and a controller coupled to the heating system, wherein the controller is configured to receive a temperature measurement of water within the tank; compare the temperature measurement of water within the tank with a threshold value, characterized in that the threshold value being based at least in part on an offset value, the offset value incrementally increasing upon a passing of time; and in response to determining that the temperature measurement is greater than or equal to the threshold value, operate the heating system outside of a normal heating cycle, wherein operating the heating system outside of the normal heating cycle reduces condensation; and reset the offset value to zero. a tank (195,495) a water inlet line that delivers unheated water to the tank; a water outlet line that draws heated water from the tank for a hot water demand: a heat exchanger comprising a plurality of flue tube segments (241,242,243,244,245,246,247,248,249,261,262,263,264) disposed within the tank, wherein the plurality of flue tube segments comprises a thermally-conductive material; a heating system (140,440) that heats a fluid to create a heated fluid, wherein the heating system further circulates the heated fluid through the heat exchanger, wherein the plurality of flue tube segments of the heat exchanger absorb thermal energy from the heated fluid and subsequently dissipate the thermal energy into the tank to convert the unheated water to the heated water; and a controller coupled to the heating system, wherein the controller is configured to receive a temperature measurement of water within the tank; compare the temperature measurement of water within the tank with a threshold value, characterized in that the threshold value being based at least in part on an offset value, the offset value incrementally increasing upon a passing of time; and in response to determining that the temperature measurement is greater than or equal to the threshold value, operate the heating system outside of a normal heating cycle, wherein operating the heating system outside of the normal heating cycle reduces condensation; and reset the offset value to zero. receive a temperature measurement of water within the tank; compare the temperature measurement of water within the tank with a threshold value, characterized in that the threshold value being based at least in part on an offset value, the offset value incrementally increasing upon a passing of time; and in response to determining that the temperature measurement is greater than or equal to the threshold value, operate the heating system outside of a normal heating cycle, wherein operating the heating system outside of the normal heating cycle reduces condensation; and reset the offset value to zero.