casa-corrently 1.0.96
Casa Corrently EcoSystem - Standalone and Node-RED
casa-corrently
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).
- casa-corrently
Sample Usage
Online Demo (via Heroku)
Homescreen
Energy Price statistics
Community Screen
Installation
Standalone
Standalone installation uses an express http server to provide a nice looking UI (see sample screens above).
git clone https://github.com/energychain/casa-corrently.git
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.
QuickStart
This QuickStart allows you to start node-red with one the sample meters to get quickly familiar with this Node (module).
Prerequisites
- Node-RED installed global (e.q you could start it from command line using
node-red
) - Cloned version of GIT Repository https://github.com/energychain/casa-corrently.git
Corrently Demo Meter(s) - Full generation (Messkonzept1 - Volleinspeisung)
Reference: https://casa.corrently.de/books/demo-z%C3%A4hler/page/messkonzept-1-%28volleinspeisung%29
npm install node-red-dashboard
npm run demo-messkonzept1
Corrently Demo Meter(s) - surplus feed-in (Messkonzept2 - Überschusseinspeisung)
Reference: https://casa.corrently.de/books/demo-z%C3%A4hler/page/messkonzept-2-%28%C3%BCberschusseinspeisung%29
npm install node-red-dashboard
npm run demo-messkonzept2
Accessing Demo
- Editor: http://localhost:1880/
- Dashboard (UI): http://localhost:1880/ui
Usage
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 https://github.com/energychain/casa-corrently.git
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
Heroku: https://heroku.com/deploy?template=https://github.com/energychain/casa-corrently
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
{
...
"publisher":"casa-corrently-ipfs-edge",
...
}
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 peershttp://localhost:3000/p2p?method=self
gives this peers infoshttp://localhost:3000/p2p?method=msg&peer=CID
msg object of a peer
Funding
This module is part of the Corrently Ecosystem which looks for funding in Germany: https://www.stromdao.de/crowdfunding/info
Further reading
Further Documentation is available as Casa Corrently Chapter at: https://casa.corrently.de/books/nutzung-von-node-red/chapter/gr%C3%BCnstromz%C3%A4hler-%28discovergy-meter%29
Maintainer / Imprint
STROMDAO GmbHGerhard Weiser Ring 29
69256 Mauer
Germany
tel: +49 6226 968 009 0
[email protected]
Handelsregister: HRB 728691 (Amtsgericht Mannheim)
LICENSE
Apache-2.0