Core concepts
Emoncms is an open source web application for processing, logging and visualising energy, temperature and other environmental data. It runs locally on the emonPi and emonBase, and as a hosted service at emoncms.org. You can use either or both.
This page introduces the main parts of Emoncms. See the glossary for short definitions.
How data flows
Data passes through Emoncms in this order:
A device or script sends data to Emoncms. On the emonPi and emonBase, emonHub passes data from the hardware to Emoncms over MQTT.
Each value arrives as an input. An input holds only the latest value and its time.
Input processing acts on the input. It can scale, combine or convert the value, and log the result to a feed.
A feed stores the history as a time series.
Graphs, apps and dashboards show the feed data.
Inputs
Inputs are created automatically when data arrives. Each input has a node name and a key, for example node emontx4 and key P1. See Inputs.
Input processing
Input processing acts on each new input value before it is stored. Use it to calibrate values, add or subtract inputs, and convert power in watts to cumulative energy in kWh. Each input has its own process list, which runs in order. See Inputs.
Feeds
A feed stores a time series of values. Most feeds use one of two engines developed for Emoncms:
PHPFina stores values at a fixed interval, for example every 10 seconds. It is the default and suits most monitoring data.
PHPTimeSeries stores each value with its timestamp. It suits irregular data.
A virtual feed stores nothing. It calculates values from other feeds when they are requested. See Feeds and Virtual feeds.
Devices
The device module links inputs from the same node into a device. Device templates create the inputs, input processing and feeds for a known type of hardware in one step. See Devices.
Viewing data
Graphs: the graph module is the main feed viewer. It opens when you click a feed. It can compare feeds, calculate daily totals and averages, and export CSV. See Graphs.
Apps: ready-made dashboards for common applications, such as solar and battery systems and heat pumps. See Apps.
Dashboards: build your own page from widgets and charts. Dashboards can be public. See Dashboards.
Modules
Core Emoncms includes users, inputs, input processing, feeds and schedules. Other features are modules. The modules below are installed by default on the emonPi and emonBase.
Module |
Purpose |
Source |
|---|---|---|
Graph |
Feed viewer |
|
App |
Ready-made dashboards |
|
Dashboard |
Dashboard builder |
|
Device |
Devices and templates |
|
Config |
emonHub configuration editor |
|
Backup |
Backup, restore and SD card import |
|
Post Process |
Process existing feed data |
|
Sync |
Upload or download feeds between servers |
|
Network |
WiFi and network settings |
|
Usefulscripts |
Maintenance scripts |
Optional modules include Email reports and the Demand shaper.
emonSD and EmonScripts
emonSD is the software image for the emonPi and emonBase. It also runs on a standard Raspberry Pi. See emonSD download.
The image is built with EmonScripts. EmonScripts also runs the updater on the Emoncms Admin page, and can install Emoncms on other Debian systems. See Install.