A controller (1a; 1b) for managing an activation of at least one heating element (3a, 3b, 3c) within a thermal storage device (2a; 2b), the controller (1a; 1b) comprising: a first interface for receiving an enable signal regarding availability of power from a local supply of renewable power (6a, 6b, 6c) within a local grid for take up by the thermal storage device (2a; 2b); a second interface for receiving a temperature signal from at least one sensor within the thermal storage device (2a; 2b); a processor on receipt of the enable signal configured to: read the temperature signal via the second interface and produce a measure of temperature from the temperature signal; compare the produced measure of temperature to a maximum temperature; if the produced measure of temperature is less than the maximum temperature: provide an activation signal; the controller (1a; 1b) further comprising a switch in operative communication with the processor and on receipt of the activation signal configured to activate the at least one heating element (3a, 3b, 3c); wherein the at least one thermal storage device (2a; 2b) electrically connects to the local grid; characterized in that the processor is on receipt of the enable signal configured to: compare the produced measure of temperature to a minimum temperature; if the produced measure of temperature is higher than the minimum temperature: provide a second activation signal; wherein the switch is on receipt of the second activation signal configured to: activate at least one cooling element within the thermal storage device (2a; 2b). a first interface for receiving an enable signal regarding availability of power from a local supply of renewable power (6a, 6b, 6c) within a local grid for take up by the thermal storage device (2a; 2b); a second interface for receiving a temperature signal from at least one sensor within the thermal storage device (2a; 2b); a processor on receipt of the enable signal configured to: read the temperature signal via the second interface and produce a measure of temperature from the temperature signal; compare the produced measure of temperature to a maximum temperature; if the produced measure of temperature is less than the maximum temperature: provide an activation signal; the controller (1a; 1b) further comprising a switch in operative communication with the processor and on receipt of the activation signal configured to activate the at least one heating element (3a, 3b, 3c); wherein the at least one thermal storage device (2a; 2b) electrically connects to the local grid; characterized in that the processor is on receipt of the enable signal configured to: compare the produced measure of temperature to a minimum temperature; if the produced measure of temperature is higher than the minimum temperature: provide a second activation signal; wherein the switch is on receipt of the second activation signal configured to: activate at least one cooling element within the thermal storage device (2a; 2b). read the temperature signal via the second interface and produce a measure of temperature from the temperature signal; compare the produced measure of temperature to a maximum temperature; if the produced measure of temperature is less than the maximum temperature: provide an activation signal; the controller (1a; 1b) further comprising a switch in operative communication with the processor and on receipt of the activation signal configured to activate the at least one heating element (3a, 3b, 3c); wherein the at least one thermal storage device (2a; 2b) electrically connects to the local grid; characterized in that the processor is on receipt of the enable signal configured to: compare the produced measure of temperature to a minimum temperature; if the produced measure of temperature is higher than the minimum temperature: provide a second activation signal; wherein the switch is on receipt of the second activation signal configured to: activate at least one cooling element within the thermal storage device (2a; 2b). provide an activation signal; the controller (1a; 1b) further comprising a switch in operative communication with the processor and on receipt of the activation signal configured to activate the at least one heating element (3a, 3b, 3c); wherein the at least one thermal storage device (2a; 2b) electrically connects to the local grid; characterized in that the processor is on receipt of the enable signal configured to: compare the produced measure of temperature to a minimum temperature; if the produced measure of temperature is higher than the minimum temperature: provide a second activation signal; wherein the switch is on receipt of the second activation signal configured to: activate at least one cooling element within the thermal storage device (2a; 2b). compare the produced measure of temperature to a minimum temperature; if the produced measure of temperature is higher than the minimum temperature: provide a second activation signal; wherein the switch is on receipt of the second activation signal configured to: activate at least one cooling element within the thermal storage device (2a; 2b). provide a second activation signal; wherein the switch is on receipt of the second activation signal configured to: activate at least one cooling element within the thermal storage device (2a; 2b).