A training server comprising: a communication interface; memory for storing a predictive model comprising weights of a neural network; and a processing unit comprising one or more processor configured to: receive a plurality of training data sets from a plurality of environment controllers via the communication interface, each training data set comprising inputs, one or more output, and at least one metric, the inputs comprising at least one environmental characteristic value in an area and at least one set point, the one or more output comprising one or more commands for controlling a controlled appliance, the at least one metric providing a quantified evaluation of an efficiency of an execution of the one or more commands by the controlled appliance for reaching the at least one set point; for each received training data set: determine a value of a reinforcement signal based on the at least one metric; and execute a neural network training engine to update the weights of the neural network based on the inputs, the one or more output, and the value of the reinforcement signal; and transmit an update of the predictive model comprising the updated weights to the plurality of environment controllers via the communication interface. a communication interface; memory for storing a predictive model comprising weights of a neural network; and a processing unit comprising one or more processor configured to: receive a plurality of training data sets from a plurality of environment controllers via the communication interface, each training data set comprising inputs, one or more output, and at least one metric, the inputs comprising at least one environmental characteristic value in an area and at least one set point, the one or more output comprising one or more commands for controlling a controlled appliance, the at least one metric providing a quantified evaluation of an efficiency of an execution of the one or more commands by the controlled appliance for reaching the at least one set point; for each received training data set: determine a value of a reinforcement signal based on the at least one metric; and execute a neural network training engine to update the weights of the neural network based on the inputs, the one or more output, and the value of the reinforcement signal; and transmit an update of the predictive model comprising the updated weights to the plurality of environment controllers via the communication interface. receive a plurality of training data sets from a plurality of environment controllers via the communication interface, each training data set comprising inputs, one or more output, and at least one metric, the inputs comprising at least one environmental characteristic value in an area and at least one set point, the one or more output comprising one or more commands for controlling a controlled appliance, the at least one metric providing a quantified evaluation of an efficiency of an execution of the one or more commands by the controlled appliance for reaching the at least one set point; for each received training data set: determine a value of a reinforcement signal based on the at least one metric; and execute a neural network training engine to update the weights of the neural network based on the inputs, the one or more output, and the value of the reinforcement signal; and determine a value of a reinforcement signal based on the at least one metric; and execute a neural network training engine to update the weights of the neural network based on the inputs, the one or more output, and the value of the reinforcement signal; and transmit an update of the predictive model comprising the updated weights to the plurality of environment controllers via the communication interface.