Introduction
The Energy Bank adapter allows you to monitor your Energy Bank system from Smart Energy Systems. This is currently a pilot, and the app will later get more functionality.
You can create automations through Thingsplex flows to control devices based on reports from the Energybank. For example, change mode to "charging" if solar panels produces more than 3000W. Please see example flow at the end of this article.
If you make a flow that works well for you, and you want to share it with the rest of the Futurehome community, please do so in forum.futurehome.io.
The adapter currently supports:
- Monitoring of battery charge control
- Monitoring of grid energy- and power import- and export
- Monitoring of solar power export
- Monitoring of battery level, alarms, sensor and health
- Monitoring of heat alarm
- Monitoring of power alarm
Installation
The Energybank API works over local network. This means that your smarthub will need to be on the same network as the Energybank, and you need to have your Energybank's local IP address and password.
To install the adapter you need to be in the Futurehome app, and follow these steps:
- Go to settings
→ playgrounds → Energybank Smart Energy Systems → click the install button.
- Click on the three dots and enter your Energybank's IP address and password.
Your Energybank device should then be included.
To install the Event collector adapter for extra statistics, follow these steps:
- Go to settings
→ playgrounds → Event collector → click the install button.
Once the adapter is installed, it will start logging energy statistics automatically.
Automation example
The source code is available at the bottom of this document. To make this flow work with your energybank, follow these steps:
- Copy the source code at the bottom of this document
- Click on "import" in flows and paste the source code provided
Start by clicking into the if condition node. Under value you can change the value of which you want the flow to differentiate. In the source code below it is set to 3000 W.
You can also change the Trigger node to trigger by another event, or the Action nodes to change the outcome of the flow.
When everything is setup remember to click the "Save" button in the lower left corner.
Source
{
"Id": "jDtHzGOzAcwrXsx",
"ClassId": "jDtHzGOzAcwrXsx",
"Author": "",
"Version": 0,
"CreatedAt": "2020-11-19T12:16:41.016268639+01:00",
"UpdatedAt": "2021-01-20T11:20:29.590106341+01:00",
"Name": "Energybank example",
"Group": "energybank",
"Description": "if solar>3000",
"Nodes": [
{
"Id": "1",
"Type": "trigger",
"Label": "trigger",
"SuccessTransition": "2",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:evt/rt:dev/rn:energybank/ad:1/sv:inverter_solar_conn/ad:1",
"Service": "inverter_solar_conn",
"ServiceInterface": "evt.meter_ext.report",
"Config": {
"InputVariableType": "",
"IsValueFilterEnabled": false,
"LookupServiceNameAndLocation": false,
"PropFilterName": "",
"PropFilterValue": "",
"RegisterAsVirtualService": false,
"Timeout": 0,
"ValueFilter": {
"Value": null,
"ValueType": "float_map"
},
"ValueJPath": "",
"ValueJPathResultType": "",
"VirtualServiceGroup": "",
"VirtualServiceProps": null
},
"Ui": {
"nodeType": "",
"x": 119,
"y": 230
},
"TypeAlias": "Trigger"
},
{
"Id": "2",
"Type": "transform",
"Label": "get_p_export",
"SuccessTransition": "4",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": "",
"IsRVariableGlobal": false,
"IsTargetVariableGlobal": false,
"IsTargetVariableInMemory": true,
"LVariableName": "",
"RValue": {
"Value": 0,
"ValueType": "int"
},
"RVariableName": "",
"Rtype": "var",
"TargetVariableName": "",
"TargetVariableType": "",
"Template": "",
"TransformType": "jpath",
"ValueMapping": [],
"XPathMapping": [
{
"IsTargetVariableGlobal": true,
"Path": "$.val.p_export",
"TargetVariableName": "p_export",
"TargetVariableType": "float",
"UpdateInputVariable": false
}
]
},
"Ui": {
"nodeType": "",
"x": 119,
"y": 372
},
"TypeAlias": "Transform"
},
{
"Id": "4",
"Type": "if",
"Label": "if_>_3000",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "",
"Service": "",
"ServiceInterface": "",
"Config": {
"Expression": [
{
"BooleanOperator": "",
"LeftVariableIsGlobal": true,
"LeftVariableName": "p_export",
"Operand": "gt",
"RightVariable": {
"Value": 3000,
"ValueType": "float"
}
}
],
"FalseTransition": "6",
"TrueTransition": "5"
},
"Ui": {
"nodeType": "",
"x": 119,
"y": 518
},
"TypeAlias": "If condition"
},
{
"Id": "5",
"Type": "action",
"Label": "Set energybank = charging",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:cmd/rt:dev/rn:energybank/ad:1/sv:battery_charge_ctrl/ad:1",
"Service": "battery_charge_ctrl",
"ServiceInterface": "cmd.mode.set",
"Config": {
"DefaultValue": {
"Value": "charging",
"ValueType": "string"
},
"IsVariableGlobal": false,
"Props": "charging",
"RegisterAsVirtualService": false,
"ResponseToTopic": "",
"VariableName": "",
"VirtualServiceGroup": "",
"VirtualServiceProps": {}
},
"Ui": {
"nodeType": "",
"x": 53,
"y": 697
},
"TypeAlias": "Action"
},
{
"Id": "6",
"Type": "action",
"Label": "Set energybank = idle",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:cmd/rt:dev/rn:energybank/ad:1/sv:battery_charge_ctrl/ad:1",
"Service": "battery_charge_ctrl",
"ServiceInterface": "cmd.mode.set",
"Config": {
"DefaultValue": {
"Value": "idle",
"ValueType": "string"
},
"IsVariableGlobal": false,
"Props": "charging",
"RegisterAsVirtualService": false,
"ResponseToTopic": "",
"VariableName": "",
"VirtualServiceGroup": "",
"VirtualServiceProps": {}
},
"Ui": {
"nodeType": "",
"x": 301,
"y": 697
},
"TypeAlias": "Action"
}
],
"Settings": null,
"IsDisabled": false,
"IsDefault": false,
"ParallelExecution": "parallel"
}
Kommentarer
0 kommentarer
Artiklen er lukket for kommentarer.