How to build an OpenEnergyMonitor system
The OpenEnergyMonitor system comprises of wireless sensor nodes that send data at periodic intervals to a web-connected base-station.
At present it's possible to sense: AC Electricity (apparent power, current, voltage, real power, power factor), Temperature, Humidity, Pulses (from pulse output utility meters), Elster IrDA (direct utility meter interface) and Solar PV power diversion. We and others are working on extending this list to include moisture, CO2 and other air quality measurements.
See the links on the right for application specific guides.
This guide the steps to set up a basic system, you will need a base station and at least one sensor node to get it up and running, read through the steps first to work out what hardware you will need for what you want to do.
1) Choose and setup your base station
It's best to start by setting up the base-station so that you are ready to receive data from any sensor nodes as they are added.
The current recommended base-station is either a Raspberry Pi with an RFM12Pi wireless adapter board or NanodeRF (Arduino + Ethernet clone). Both are sold in the OpenEnergyMonitor shop. This guide covers the Raspberry Pi
The Raspberry Pi can either log the data locally and display the data locally (accessing it as you access your home router) or it can be configured to forward the data to a remote server such as emoncms.org. Other base-station options such as the NanodeRF post the data directly to an external remote sever as soon as the data is received from a sensor node.
In addition to the Raspberry Pi you will need a small adapter board that enables the Pi to receive RF data from the wireless sensor nodes, this board is called the RFM12Pi.
New: How to setup a raspberrypi running emonhub + emoncms (low write version)
This is an all in one solution with which can be used to either forward data to a remote server such as emoncms.org or log and view data locally. It can be used with an SD card (long term lifespan still in testing) or Harddrive. It uses the latest version of emonhub which replaces the oem_gateway.
- Archive: Install the ready-to-go Raspberry Pi > emoncms.org gateway SD card which forwards data to emoncms.org (or your own remote or local server running emoncms)
2) Choose what wireless nodes you would like to connect up:
a) emonTx - Electricity Energy Monitoring
Using a multi purpose open hardware board called the emonTx its possible to measure:
- 4x AC single-phase circuits with clip on CT sensors.
- Or one 3-phase circuit
- 1x AC Voltage with an AC-AC Voltage adapter for isolation.
- Temperature with one-wire DS18B20 based sensors.
- 1x Pulse counting input for pulse output meters
Multiple emonTx's can be connected to a single emonBase. Each emonTx will need to be given a different wireless node ID. If you already own an Arduino you many want to consider using an emonTx Shield.
Select the correct guide for the emonTx version that you have:
see part 3 for how to configure emoncms to log, process and display the monitored data.
b) emonTH - Temperature and Humidity Monitoring
Battery powered temperature (internal / external) and humidity (internal) monitoring node
c) emonGLCD - wireless LCD display
The emonGLCD is an open-source general purpose wireless graphical LCD display unit that can be added to the system like any other node.
It can be configured to show anything you'd like to display from power consumption and generation to room temperatures. It has two indicator LEDs that can glow red or green depending on if you're importing or exporting electricity. The emonGLCD has a built in temperature sensor; as well as receiving and displaying monitoring data the emonGLCD can transmit the current room temperature back to the base station for logging to emoncms.
The emonGLCD is really useful for providing real-time at-a-glance information.
3) Configure emoncms to log, process and display monitored data
Now that the sensor node data values are registered in the inputs list of emoncms the next step is to setup input processing on those inputs. Using input processing we can manipulate the input data before storing it in the emoncms database.
Check: The LED green on the RFM12Pi should be flashing (dimly) each time an RF packet is received.
Emoncms setup examples:
- Github: Home Energy Monitor - Second half gives an example of how to configure emoncms to show an electric use dashboard
- EmonTx v3: Quick start guide - an example of configuring the inputs of the standard (non watt hour calculating) firmware for the EmonTx v3 including My Electric dashboard configuration
- EmonTH: Quick start guide - an example of configuring emoncms EmonTH inputs and creating temperature and humidity feeds
- Blog post: An Example of configuring the new emoncms bargraph visualisation that uses accumulating watt hour data - part of the Monitoring SolarPV, Heatpump and house electric, EmonTx v2 system upgrade example