A system comprising: one or more systems comprising one or more heating, ventilation, and air conditioning (HVAC) systems, refrigeration systems, or building automation systems; a controller communicatively coupled to the one or more systems; and a server communicatively coupled to the controller; wherein the controller is configured to: receive telemetry data associated with the operation of the one or more systems, wherein the received telemetry data comprises data associated with the internal operation of individual components of the one or more systems; determine a subset of the telemetry data that has changed by comparing the received telemetry data to previous telemetry data; communicate to the server only the subset of the telemetry data that has changed, wherein the telemetry data comprises one or more parameters and characterised in that determining the subset of the telemetry data comprises, for each parameter of the one or more parameters: determining whether a value of the parameter has been previously reported to the server within a predetermined period of time; determining whether a change in the value of the parameter compared to a value of the parameter in the previous telemetry data has persisted for at least a minimum amount of time; and including the parameter in the subset of the telemetry data in response to determining that the value of the parameter has not been previously reported to the server within the predetermined period of time and that the change in the value of the parameter has persisted for at least the minimum amount of time. one or more systems comprising one or more heating, ventilation, and air conditioning (HVAC) systems, refrigeration systems, or building automation systems; a controller communicatively coupled to the one or more systems; and a server communicatively coupled to the controller; wherein the controller is configured to: receive telemetry data associated with the operation of the one or more systems, wherein the received telemetry data comprises data associated with the internal operation of individual components of the one or more systems; determine a subset of the telemetry data that has changed by comparing the received telemetry data to previous telemetry data; communicate to the server only the subset of the telemetry data that has changed, wherein the telemetry data comprises one or more parameters and receive telemetry data associated with the operation of the one or more systems, wherein the received telemetry data comprises data associated with the internal operation of individual components of the one or more systems; determine a subset of the telemetry data that has changed by comparing the received telemetry data to previous telemetry data; communicate to the server only the subset of the telemetry data that has changed, wherein the telemetry data comprises one or more parameters and characterised in that determining the subset of the telemetry data comprises, for each parameter of the one or more parameters: determining whether a value of the parameter has been previously reported to the server within a predetermined period of time; determining whether a change in the value of the parameter compared to a value of the parameter in the previous telemetry data has persisted for at least a minimum amount of time; and including the parameter in the subset of the telemetry data in response to determining that the value of the parameter has not been previously reported to the server within the predetermined period of time and that the change in the value of the parameter has persisted for at least the minimum amount of time. determining whether a value of the parameter has been previously reported to the server within a predetermined period of time; determining whether a change in the value of the parameter compared to a value of the parameter in the previous telemetry data has persisted for at least a minimum amount of time; and including the parameter in the subset of the telemetry data in response to determining that the value of the parameter has not been previously reported to the server within the predetermined period of time and that the change in the value of the parameter has persisted for at least the minimum amount of time.