My house is heated by an air-to-air heat pump, water is heated by a mix of electric boiler and a couple of small solar water heaters, everything runs on electricity.
For some reason my power company refuses to provide me with detailed power consumption information, maybe it is because they cannot provide it as their simple system does not have this data, maybe for security reasons...
In any case I wanted to know my consumption at any given time, to have this data saved somewhere and understand when it was consumed. I believe that having this data is the first step in making useful decisions when trying to lower one's electricity usage.
The Electricity Usage Monitor
The first version of the power meter was based on a CC3200 development board that I got from a Texas Instruments (TI) workshop, it is still running as of now. This board is programmed by TI version of Arduino IDE called Energia. However the absurd number of abstraction layers, lack community and example code made it very uncomfortable and time consuming to work with.
I had to skip some features I really wanted to have, notably a live view of the consumption and a local storage of data (SD card for example). The advantage the CC3200 had over the ESP8266 at the time (January 2015) was SSL requests, as I wanted to push the data to Google Spreadsheets which requires SSL.
If it's not broke then it does not have enough features yet
Fast forward one year, I have one year worth of data. My father asked me to look into installing solar panels on the roof of the house, this was an excellent usage of this data. I was be able to provide exact numbers to the solar panel provider, they could make their calculations based on the actual electricity usage.
Green energy, not viable yet
I don't know what's with the solar panel providers, but their prices make absolutely no sense. I calculated a return on investment of 16 years at best with the offers I got from 4 different companies. The solar panels and inverters had a guarantee of 10 years, if something goes wrong after those 10 years, before the panels have time to pay for themselves, the repair costs are on us and the return on investment is gone. When I told the providers about the absurdity of their prices they just shrugged and said "it's the norm in the industry".
On top of that the solar panel technology is evolving rapidly, a couple of years from now there will probably be more efficient and cheaper panels available.
The only way solar makes any sense is with the economy of scale: buy a lot, pay low price per panel, amass subsidies, get the return on investment in less than a year, but that requires a lot of land and capital.
I conclude that in 2016 a small solar panel installation (about 30m^2) is financially not worth it yet, even with subsidies.
The Internet-of-Things Power meter
There are other methods to save on electricity, like consume less or consume during night hours when the kWh price is cheaper. More data is better!
The Electricity Usage Monitor could only save data with an hour-resolution, but what about the maximum peak usage, current electricity usage...? I want to turn on my electric kettle and see the power usage climb by exactly the same kW number that is written on the kettle.
I also wanted an easier way to program, more visual and cheaper platform. Also I wanted this project to be somewhat easy to build so other people could also benefit from it.
The Internet-of-Things Power meter had to be dirt cheap, provide an easy way to program and deploy. I also wanted to try to make a project using perf-boards instead of making PCBs, I believe that ordering custom PCBs for a small project like this is a slight obstacle that a lot of people are not willing to get over.
I decided on the ESP8266 as it has come a long way, has had a lot of bug fixes and features added since 2015 and is programmed via Arduino IDE, which is super easy for anybody. I used the same principle of counting the LED blinks on the power meter to know the consumed Wh, added an LCD for visual feedback and SD card to securely store the data.