OpenEnergyMonitor is a project to develop open-source energy monitoring tools to help us relate to our use of energy, our energy systems and the challenge of sustainable energy. 

The OpenEnergyMonitor system is an end-to-end open-source energy monitoring system that is Arduino IDE compatible:

The openenergymonitor system is made up of four main parts: emonTx  |  emonGLCD  |  emonBase  |  emoncms. These can be assembled and configured to work for a variety of applications from a home energy monitor to solar PV import/export monitoring and more.

It is also possible to go beyond monitoring to start controlling things: diversion of surplus P.V energy to domestic hot water is an active openenergymonitor research project see Diverting surplus PV Power