Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including casa-corrently with all npm packages installed. Try it out:

var casaCorrently = require("casa-corrently")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

casa-corrently v1.0.81

Casa Corrently EcoSystem - Standalone and Node-RED


Casa-Corrently is an energy monitoring solution design to run from within a local network (home area network). It might be used either standalone, as Node-RED module or embedded into other applications.

This core module is designed to work with smartmeters (Electricity only). If you do not have a Smart Meter you might get it here from STROMDAO (Germany only).

npm Build Status Code Quality This project is using for visual regression testing. chat

Sample Usage

Online Demo (via Heroku)


Casa Corrently Homescreen

Energy Price statistics

Casa Corrently Strompreis

Community Screen

Casa Corrently Community



Standalone installation uses an express http server to provide a nice looking UI (see sample screens above).

git clone
cd casa-corrently
npm install

You will get the UI at http://localhost:3000/ pre-configured for one of our demo households. Copy sample_config.json to config.json and configure to your needs.

Node-RED (Node) via Shell

cd ~/.node-red/
npm install --save casa-corrently

Node-RED (Node) via Editor

Install casa-corrently as NODE package.


This QuickStart allows you to start node-red with one the sample meters to get quickly familiar with this Node (module).


  • Node-RED installed global (e.q you could start it from command line using node-red)
  • Cloned version of GIT Repository

Corrently Demo Meter(s) - Full generation (Messkonzept1 - Volleinspeisung)


npm install node-red-dashboard
npm run demo-messkonzept1

Corrently Demo Meter(s) - surplus feed-in (Messkonzept2 - Überschusseinspeisung)


npm install node-red-dashboard
npm run demo-messkonzept2

Accessing Demo

  • Editor: http://localhost:1880/
  • Dashboard (UI): http://localhost:1880/ui


First time usage

On first time adding a Discovery Meter to a flow the list of available meters will be empty.

  • Add Discovergy login information to configuration node
  • Deploy changes to flow
  • Re-Open Configuration of Discovergy Meter

Modify time and reading of installation (optional)

You might overwrite time and value of first reading from the node configuration.

Output (standard)

If triggered (maybe periodic via an inject) this node provides a json Object as msg.payload.

msg.payload =  {
  time: <TIME>, // time of reading per Discovergy API
  latest: {
    power: <POWERVALUE>, // Power in Watt * 10^-3
    power1: <POWERVALUE>,// Power in Watt * 10^-3 of Phase 1
    power2: <POWERVALUE>,// Power in Watt * 10^-3 of Phase 2
    power3: <POWERVALUE>,// Power in Watt * 10^-3 of Phase 3
    energy: <ENERGYVALUE>,// Actual Meter Reading in Watthours * 10^-7 (consumption . OBIS Code 1.8.0)
    energyOut: <ENERGYVALUE>,// Actual Meter Reading in Watthours * 10^-7 (production . OBIS Code 2.8.0)
    baseCosts: <EUROVALUE>, // Accumulated base fee (Grundgebühr) since first measument time (eq. installation - might be overwritten)
    energyCost: <EUROVALUE>, // Accumulated energy costs (Arbeitspreis) since first measument time (eq. installation - might be overwritten)
    energyRevenue: <EUROVALUE>, // Revenue from feeding Energy into the grid
    incomeSaldo: <EUROVALUE> // Pre Calculated : energyRevenue - (baseCosts + energyCost)

Output with statistics (advanced)

If msg.topic is set to statistics additional statistic information will be provided. Beside of power,power1,power2,power3 the object gets formated same as in msg.payload.latest above.

*NOTE: Retrieving statistics requires a significant higher amount of API calls. Consider to use it less than once per minute. *

msg.payload =  {
  time: <TIME>// time of reading per Discovergy API
  latest: { ... }, // latest values
  last24h: { ... }, // From latest reading 24 hours backward
  today: { ... }, // Values from today
  yesterday: { ... }, // Values from yesterday
  monthToDay: { ... }, // Values from this month
  lastMonth: { ... }, // Values from last month
  yearToDay: { ... }, // Values from this year
  last365d: { ... } // Values from last 365 days

Output with aggregation (advanced)

You might add multiple Discovergy Meters in sequence. In this case a property aggregation will contain aggregated values of all meters.

msg.payload =  {
  time: <TIME>// time of reading per Discovergy API
  latest: { ... }, // latest values  
  aggregation: { ... } // Aggregated values of all meters in sequence

Sample flows

Messkonzept 2 (Überschußeinspeisung) ohne Z2 (Produktionszähler)


Standalone usage

It is possible to run this node without Node-RED. It comes shipped with a express APP.

git clone
cd casa-corrently
npm install
npm start ./sample_config_messkonzept2.json

By default the Web UI will be visible at http://localhost:3000/index.html

One Click Deployment


IPFS Support (early beta!)

It is possible access a Casa Corrently Instance via IPFS from remote. To do so you need to install casa-corrently-ipfs-edge and add an publisher entry into your config.json

installation of IPFS publisher

cd casa-corrently
npm install casa-corrently-ipfs-edge

In config.json


Restarting casa-corrently should provide you an ipfs URL of your msg objects.

You might use the following URLs from within the Webinterface:

  • http://localhost:3000/p2p?method=ls gives list of available peers
  • http://localhost:3000/p2p?method=self gives this peers infos
  • http://localhost:3000/p2p?method=msg&peer=CID msg object of a peer


This module is part of the Corrently Ecosystem which looks for funding in Germany: STROMDAO - Corrently Crowdfunding

Further reading

Further Documentation is available as Casa Corrently Chapter at:

Maintainer / Imprint

Gerhard Weiser Ring 29
69256 Mauer

tel: +49 6226 968 009 0

Handelsregister: HRB 728691 (Amtsgericht Mannheim)




RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free