1. A control module for controlling a thermostatically controlled device, comprising: a processor apparatus including a processing unit and a memory, the memory storing one or more routines executable by the processing unit, the one or more routines being adapted to: obtain first values for a plurality of parameters for the thermostatically controlled device, the parameters including actual power consumed by the thermostatically controlled device and a number of input parameters, wherein the number of input parameters include external temperature and current temperature settings of the thermostatically controlled device, external humidity, current time of day, current day, and current season; determine a learned correlation function for the thermostatically controlled device based on the obtained values, wherein the learned correlation function relates power consumption of the thermostatically controlled device to at least the number of input parameters; obtain second values for each of the number of input parameters for a future usage period; determine at least one recommended set point for the thermostatically controlled device using the learned correlation function and at least the second values for each of the number of input parameters; and control the thermostatically controlled device based on the at least one recommended set point.