A system for managing devices comprising: a memory store having memory locations, wherein each memory location stores one or more attributes associated with one or more devices; a device manager arranged to execute commands to take an action on the one or more attributes stored in the memory locations, and to receive from the one or more devices values of the corresponding one or more attributes; a synchroniser configured to maintain two-way synchronisation between the attributes stored in the memory store and the attributes associated with the devices, wherein the synchroniser is further configured to maintain separate synchronisation with groups of devices at time intervals based on current network load; and one or more interfaces for communicating with each device, wherein the synchroniser is further configured to operate when communication with the one or more devices over the one or more interfaces is available, wherein the system is configured to perform an analysis of one or more of the attributes stored in the memory store to generate an output indicating a demand of a resource, wherein there is an indirect link or connection between the attributes used to perform the analysis and the resource, and wherein the resource is any one or more of: a natural resource; a consumer product; food; beverage; transport; premises access; power; electricity; gas; fuel; water; public transport; telecommunications; software; and entertainment, and further wherein the one or more attributes comprises control commands and the synchronisation changes, adds, updates or deletes a particular attribute of the device or obtains data from the device. a memory store having memory locations, wherein each memory location stores one or more attributes associated with one or more devices; a device manager arranged to execute commands to take an action on the one or more attributes stored in the memory locations, and to receive from the one or more devices values of the corresponding one or more attributes; a synchroniser configured to maintain two-way synchronisation between the attributes stored in the memory store and the attributes associated with the devices, wherein the synchroniser is further configured to maintain separate synchronisation with groups of devices at time intervals based on current network load; and one or more interfaces for communicating with each device, wherein the synchroniser is further configured to operate when communication with the one or more devices over the one or more interfaces is available, wherein the system is configured to perform an analysis of one or more of the attributes stored in the memory store to generate an output indicating a demand of a resource, wherein there is an indirect link or connection between the attributes used to perform the analysis and the resource, and wherein the resource is any one or more of: a natural resource; a consumer product; food; beverage; transport; premises access; power; electricity; gas; fuel; water; public transport; telecommunications; software; and entertainment, and further wherein the one or more attributes comprises control commands and the synchronisation changes, adds, updates or deletes a particular attribute of the device or obtains data from the device.