Energy Monitor

an energy monitor must meter data correctly and store the data for future use / analysis.

many sensor databases are available and ready for use. We selected the influxdb with telegraph and chronograph (see picture).
Hence the monitoring hardware/software appliance just need to deliver the data in the right way. This avoids re-inventing the wheel and build just the functionality the offers a value add.

the picture shows a dashboard in chronograph.
Browsing the data and visualizing different data streams can be achieved with a few clicks.
The installation on a linux hosted server is pretty straight forward.

Application concept

the metered data should be stored in the cloud to enable further analysis - we decided to use a hosted linux system running an influx database. This database is designed for sensor data. It automatically stores all data timestamped. Telegraph is a service taking the data from the source storing it into influxdb. Chronograph can be used to visualize the data and create dashboards.
Hence there is little effort in the field of data management. Based on policies Influxdb can automatically aggregate data that is not required in a fine granularity after lets say a month.
To leverage this platform the μController (μC) capturing the power needs to implement a web-client to send the data.
It should also implement a network time protocol (NTP) client to synchronize the μC. This way the asynchronicity of the connection doesn't matter.

Hardware concept

The concept behind this energy monitor is similar to what you can find on:
instructables energy monitor
or:
open energy monitor
in particular as the latter offers a cloud app. These both are very valuable sources also providing the background we can skip here.

Differentiation - the hardware

The difference is we're using as much as possible of existing platforms, trying not to re-invent the wheel as much as possible. To avoid long text the following table summarizes the key hardware design considerations:

property other designs our design
μController (μC): Arduino Uno with Ethernet shield ESP32 with wifi and bluetooth onboard
price (China): $11 $5
clock: 16MHz 80/240MHz the higher clocking with more memory allows additional features like time server, ... we'll explain later
Analog Digital Converter (ADC): 10bit/~1000sps 12bit/100.000sps this high sample speed enables additional functionality such as harmonic-wave-analyser, which we hope to implement later, too.
Vref: 5V 3.3V the lower voltage range is a disadvantage which is more than compensated by the ADC accuracy and frequency