/wattdepot

Primary LanguageJava

Logo

WattDepot

Overview

WattDepot is an open source, RESTful web service that collects electricity data (such as current power utilization or cumulative power utilization) from meters and stores it in a database. The data can then be retrieved by other tools for visualization and analysis. It is designed to provide infrastructure for experimentation and development of "Smart Grid" applications.

WattDepot provides a unique combination of useful features:

  • WattDepot is agnostic about the kinds of meters used to monitor energy production/consumption data, and whether the energy data is utility-scale or personal-scale. WattDepot implements a REST protocol for data transmission that can be used to implement clients for a wide variety of devices; the major constraint is that these devices need to have Internet access. WattDepot clients can be written in any language that supports the HTTP protocol. We provide a high-level client library for Java.
  • WattDepot can represent aggregations of power sources. 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, buildings into neighborhoods, and neighborhoods into cities.
  • WattDepot automatically performs data interpolation when necessary. 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 for aggregate power sources. 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 requires combining individual data values obtained at different times.
  • WattDepot can support carbon intensity data as well as energy data. To understand the ecological impact of power, it is useful to know the amount of carbon released by a given energy generation source.
  • WattDepot is architecturally decoupled from the underlying data storage technology. This supports experimentation with both traditional relational as well as NoSQL technologies, and facilitates scalability. Currently, WattDepot implements support for Derby, Postgres, and BerkeleyDB storage systems.
  • WattDepot is designed to support both PaaS and local installation. We have deployed WattDepot to the Heroku cloud-based hosting service.
  • WattDepot implements support for "ephemeral" data. In some application scenarios, it is useful to send energy data to the WattDepot server quite frequently (i.e. every few seconds) so that clients can monitor current energy consumption with low latency. However, that rate of data sampling is not necessary for historical analyses, which may only require energy data sampling at the rate of every few minutes. WattDepot supports this situation through "ephemeral" data, which creates an in-memory "window" during which all recently received energy data is available for retrieval, but stored in the repository only at a much lower sampling rate. This can reduce the size of the repository by one or more orders of magnitude while retaining the benefits of high sampling rate for recent data.
  • WattDepot is open source and will remain freely available to the community.

Publications

Selected publications and technical reports regarding WattDepot and the systems built using it are available here.

Associated tools

WattDepot provides the architectural center of an ecosystem of tools for energy data collection, storage, analysis, and presentation. Some associated technology now under development includes:

WattDepot ModBus Sensor Provides support for polling energy meters through the ModBus protocol to collect energy data for storage in WattDepot.
WattDepot Apps Provides a web application for basic display of energy data.
WattDepot CLI Provides a command line interface for inspecting the contents of the service.
WattDepot Gadgets Provides a selection of google gadget visualizations for WattDepot.
WattDepot Simulations Provides simulated data to support evaluation of WattDepot visualization and analysis services.
WattDroid An Android interface to WattDepot sources.
WattDepot-GData Provides a persistent cache for WattDepot data using Google Docs.
WattDepot-Javascript-Client Provides a Javascript client for WattDepot.

Public server

While you can download and run your own instance of WattDepot, the Collaborative Software Development Laboratory in the Department of Computer and Information Sciences at the University of Hawaii supports a public instance of WattDepot:

REST & Data source API URI: http://server.wattdepot.org:8190/wattdepot/
Visualizer and monitor: http://server.wattdepot.org:8005/wattdepotapps/

Note: this server is running a beta version of WattDepot and not all historical energy data from 2011 has been transferred to it.

We invite you to become involved with the system. Please peruse our Wiki pages or join our mailing list.