Set up an OpenEnergyMonitor system
The OpenEnergyMonitor system comprises wireless sensor nodes that send data at periodic intervals to a web-connected base-station.
Application Specific Notes
At present, it's possible to sense: AC Electricity (apparent / real power, current, RMS voltage), Temperature, Humidity, Pulses (from pulse output utility meters), Elster IrDA (direct utility meter interface) and PV system power diversion. We and others, are working on extending this list to include moisture, CO2 and other air quality measurements.
This guide lists the steps to set up a basic system. You will need a base station and at least one sensor node to get it running. Read the entire article to determine what hardware you will need.
1) Set up your base station
It's best to start by setting up the base-station so you'll be ready to receive data from new sensor nodes.
There are two Base station choices:
Option 1: emonBase, a Raspberry Pi and RFM69Pi RF adapter
Option 2: emonPi, a self-contained Raspberry Pi based energy monitoring node
- Both base stations use the same pre-built SD card and run the same software (as of June 2015)
- Both can receive data from wireless nodes (e.g emonTx / emonTH)
- Both can log data locally to the Raspberry Pi SD card and post data to a remote server such as emoncms.org.
- The difference is the emonPi can perform energy and temperature monitoring functions and has a compact enclosure and LCD display. See overview table comparing the emonPi to the emonTx V3 energy monitoring node:
For a more in depth comparison of emonPi / emonBase Vs emonTx see this blog post.
Note: If you purchased your emonBase or pre-built ready-to-go SD card prior to 17th June 2015, you have an older emonSD image. We recommend you download the latest image, flash it to the SD card, then follow the above guide.
2) Choose the wireless nodes you want to use:
a) emonTx - Electrical Energy Monitoring
The multi purpose, open hardware emonTx can measure:
- 4 AC single-phase circuits with clip on CT sensors.
- Or one 3-phase circuit
- 1 AC Voltage, with an AC-AC Voltage adapter for isolation.
- 6 Temperatures via 1-wire DS18B20 sensors.
- 1 Pulse counting input for pulse output meters
Up to 30 emonTxs can be connected to a single emonBase.
Each emonTx will need a unique wireless node ID.
If you already own an Arduino, you may want to consider using an emonTx Shield.
Select the guide for the emonTx version you have:
See Part 3 for instructions to configure emoncms to log, process and display the monitored data.
b) emonTH - Temperature and Humidity Monitor
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 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 temperature. It has two LEDs that glow red or green depending on whether you're importing or exporting energy. The emonGLCD has a built in temperature sensor and can transmit the current room temperature back to the base station for logging to emoncms. It is especially useful for providing real-time at-a-glance information.
Shop (through-hole kit only)
3) Configure Emoncms to log, process, and display monitored data
Now that the sensor node data values are registered in the emoncms inputs list, the next step is to set up processing on those inputs. Input processing enables you to manipulate your input data before storing it in the emoncms database.
Check: The RFM69Pi LED should flash each time an RF packet is received.
Emoncms setup examples:
- To install Emoncms on your own server, see the setup guide on the Emoncms GitHub repo.
- emonPi: Quick start guide including setting up Emoncms on the emonPi, logging locally and remotely
- 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