casa-corrently
Version:
Casa Corrently EcoSystem - Standalone and Node-RED
235 lines (187 loc) • 9.52 kB
Markdown
# 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](https://www.corrently.de/transparenz/bestellung-smartmeter/) (Germany only).
 [](https://travis-ci.com/energychain/casa-corrently) [](https://frontend.code-inspector.com/public/project/12360/casa-corrently/dashboard) [](https://percy.io/c0972268/casa-corrently) [](https://tawk.to/chat/5c53189451410568a109843f/default)
- [casa-corrently](#casa-corrently)
* [Sample Usage](#sample-usage)
+ [Online Demo (via Heroku)](#online-demo-via-heroku)
+ [Homescreen](#homescreen)
+ [Energy Price statistics](#energy-price-statistics)
+ [Community Screen](#community-screen)
* [Installation](#installation)
+ [Standalone](#standalone)
+ [Node-RED (Node) via Shell](#node-red-node-via-shell)
+ [Node-RED (Node) via Editor](#node-red-node-via-editor)
* [QuickStart](#quickstart)
+ [Prerequisites](#prerequisites)
+ [Corrently Demo Meter(s) - Full generation (Messkonzept1 - Volleinspeisung)](#corrently-demo-meters---full-generation-messkonzept1---volleinspeisung)
+ [Corrently Demo Meter(s) - surplus feed-in (Messkonzept2 - Überschusseinspeisung)](#corrently-demo-meters---surplus-feed-in-messkonzept2---uberschusseinspeisung)
+ [Accessing Demo](#accessing-demo)
* [Usage](#usage)
+ [First time usage](#first-time-usage)
+ [Modify time and reading of installation (optional)](#modify-time-and-reading-of-installation-optional)
+ [Output (standard)](#output-standard)
+ [Output with statistics (advanced)](#output-with-statistics-advanced)
+ [Output with aggregation (advanced)](#output-with-aggregation-advanced)
* [Sample flows](#sample-flows)
+ [Messkonzept 2 (Überschußeinspeisung) ohne Z2 (Produktionszähler)](#messkonzept-2-uberschusseinspeisung-ohne-z2-produktionszahler)
* [Standalone usage](#standalone-usage)
+ [One Click Deployment](#one-click-deployment)
* [Funding](#funding)
* [Further reading](#further-reading)
* [Maintainer / Imprint](#maintainer--imprint)
* [LICENSE](#license)
## Sample Usage
### [Online Demo (via Heroku)](https://stromdao.de/casa)
https://stromdao.de/casa
### 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).
```shell
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
```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
```shell
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
```shell
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`.
```javascript
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. *
```javascript
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.
```javascript
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)
[Dashboard](https://flows.nodered.org/flow/6f43f7d48405927ab3231ef1eea38a96)
## Standalone usage
It is possible to run this node without Node-RED. It comes shipped with a express APP.
```shell
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
```shell
cd casa-corrently
npm install casa-corrently-ipfs-edge
```
In config.json
```javascript
{
...
"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 peers
- `http://localhost:3000/p2p?method=self` gives this peers infos
- `http://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
<addr>
STROMDAO GmbH <br/>
Gerhard Weiser Ring 29 <br/>
69256 Mauer <br/>
Germany <br/>
<br/>
tel: +49 6226 968 009 0 <br/>
<br/>
kontakt@stromdao.com <br/>
<br/>
Handelsregister: HRB 728691 (Amtsgericht Mannheim)
</addr>
## LICENSE
Apache-2.0