WattDepot on GitHub

Welcome to WattDepot

Open source collection, storage, retrieval, and analysis of energy for the enterprise

Above the home, below the grid

Most energy measurement systems are either "personal-scale" or "utility-scale". WattDepot is designed to help those of us in the middle: organizations who want to better manage their energy use, typically across multiple buildings.

To accomplish this, WattDepot provides data aggregation. For example, a building might have multiple meters monitoring energy consumption, one per floor. WattDepot can represent the power consumed by individual floors, as well as an aggregate source representing the building as a whole. Aggregations can be nested, so that floors can be aggregated into buildings, and buildings into campuses.

Device and technology agnostic

WattDepot will run on all major operating systems. We provide an HTTP API which can be used by any modern programming language or environment to communicate with WattDepot servers. To simplify development, we provide client libraries for popular languages including Java, Javascript, and Python.

WattDepot can support any meter that implements an HTTP-based protocol for data transmission. We provide bindings for the Shark 200s and Egauge meters.

WattDepot is architecturally decoupled from its back-end storage system, allowing it to support both relational and NoSQL repositories.

Finally, WattDepot can run both locally and in the cloud (using a provider such as Heroku).

Data interpolation and tailored time scales

WattDepot simplifies energy analysis through data interpolation. For example, a meter might provide a snapshot of energy usage once per hour for a given device. Clients can request the power consumed by this device at any time instant, and WattDepot will automatically provide interpolation when the requested time does not match a time for which actual sensor data is available.

This becomes particularly important and useful when data from multiple meters is aggregated. For example, the meters on individual floors of a building will rarely send their data at exactly the same time instant, so providing an aggregate value for power consumed by the entire building requires combining individual data values obtained at different times.

Finally, WattDepot supports "tailored time scales", allowing users to store fine-grained data (say, every 10 seconds) for the mosts recent 24 hours, but coarser-grained data (say, every 10 minutes) thereafter. This reduces your back-end storage requirements.

Support for related environmental data

While WattDepot's origins are in energy data, it is clear that understanding energy usually requires knowledge of other environmental factors. For example, energy consumption might vary with the temperature, humidity, or sunlight. To simplify the discovery of these relationships, WattDepot can store and manipulate other data types in addition to energy.

Ready to learn more?

Quick Start

Install WattDepot and get started!

User Guide

More details on using your WattDepot installation.

Developer Guide

Don't like how WattDepot works? Here's how it's designed and how you can modify it