Rename script and flow to english

This commit is contained in:
Carsten Schmiemann 2023-05-09 00:56:36 +02:00
parent f1fc0b5631
commit c249ece7df
2 changed files with 38 additions and 38 deletions

View File

@ -19,8 +19,8 @@ sys.path.insert(1, os.path.join(os.path.dirname(__file__), '/opt/victronenergy/d
from vedbus import VeDbusService
class NodeRedMeterEinspeisung:
def __init__(self, servicename, deviceinstance, paths, productname='Einspeisung', connection='Node RED HTTP JSON service'):
class NodeRedMetergrid-meter:
def __init__(self, servicename, deviceinstance, paths, productname='grid-meter', connection='Node RED HTTP JSON service'):
self._dbusservice = VeDbusService("{}.http_{:02d}".format(servicename, deviceinstance))
self._paths = paths
@ -97,25 +97,25 @@ class NodeRedMeterEinspeisung:
meter_data = self._getNodeRedData()
#send data to DBus
self._dbusservice['/Ac/Power'] = meter_data['einspeisung']['total_power'] # positive: consumption, negative: feed into grid
self._dbusservice['/Ac/Current'] = meter_data['einspeisung']['total_current']
self._dbusservice['/Ac/L1/Voltage'] = meter_data['einspeisung']['l1_voltage']
self._dbusservice['/Ac/L2/Voltage'] = meter_data['einspeisung']['l2_voltage']
self._dbusservice['/Ac/L3/Voltage'] = meter_data['einspeisung']['l3_voltage']
self._dbusservice['/Ac/L1/Current'] = meter_data['einspeisung']['l1_current']
self._dbusservice['/Ac/L2/Current'] = meter_data['einspeisung']['l2_current']
self._dbusservice['/Ac/L3/Current'] = meter_data['einspeisung']['l3_current']
self._dbusservice['/Ac/L1/Power'] = meter_data['einspeisung']['l1_power']
self._dbusservice['/Ac/L2/Power'] = meter_data['einspeisung']['l2_power']
self._dbusservice['/Ac/L3/Power'] = meter_data['einspeisung']['l3_power']
self._dbusservice['/Ac/L1/Energy/Forward'] = meter_data['einspeisung']['l1_import']
self._dbusservice['/Ac/L2/Energy/Forward'] = meter_data['einspeisung']['l2_import']
self._dbusservice['/Ac/L3/Energy/Forward'] = meter_data['einspeisung']['l3_import']
self._dbusservice['/Ac/L1/Energy/Reverse'] = meter_data['einspeisung']['l1_export']
self._dbusservice['/Ac/L2/Energy/Reverse'] = meter_data['einspeisung']['l2_export']
self._dbusservice['/Ac/L3/Energy/Reverse'] = meter_data['einspeisung']['l3_export']
self._dbusservice['/Ac/Energy/Forward'] = meter_data['einspeisung']['total_import']
self._dbusservice['/Ac/Energy/Reverse'] = meter_data['einspeisung']['total_export']
self._dbusservice['/Ac/Power'] = meter_data['grid-meter']['total_power'] # positive: consumption, negative: feed into grid
self._dbusservice['/Ac/Current'] = meter_data['grid-meter']['total_current']
self._dbusservice['/Ac/L1/Voltage'] = meter_data['grid-meter']['l1_voltage']
self._dbusservice['/Ac/L2/Voltage'] = meter_data['grid-meter']['l2_voltage']
self._dbusservice['/Ac/L3/Voltage'] = meter_data['grid-meter']['l3_voltage']
self._dbusservice['/Ac/L1/Current'] = meter_data['grid-meter']['l1_current']
self._dbusservice['/Ac/L2/Current'] = meter_data['grid-meter']['l2_current']
self._dbusservice['/Ac/L3/Current'] = meter_data['grid-meter']['l3_current']
self._dbusservice['/Ac/L1/Power'] = meter_data['grid-meter']['l1_power']
self._dbusservice['/Ac/L2/Power'] = meter_data['grid-meter']['l2_power']
self._dbusservice['/Ac/L3/Power'] = meter_data['grid-meter']['l3_power']
self._dbusservice['/Ac/L1/Energy/Forward'] = meter_data['grid-meter']['l1_import']
self._dbusservice['/Ac/L2/Energy/Forward'] = meter_data['grid-meter']['l2_import']
self._dbusservice['/Ac/L3/Energy/Forward'] = meter_data['grid-meter']['l3_import']
self._dbusservice['/Ac/L1/Energy/Reverse'] = meter_data['grid-meter']['l1_export']
self._dbusservice['/Ac/L2/Energy/Reverse'] = meter_data['grid-meter']['l2_export']
self._dbusservice['/Ac/L3/Energy/Reverse'] = meter_data['grid-meter']['l3_export']
self._dbusservice['/Ac/Energy/Forward'] = meter_data['grid-meter']['total_import']
self._dbusservice['/Ac/Energy/Reverse'] = meter_data['grid-meter']['total_export']
#logging
logging.debug("House Consumption (/Ac/Power): %s" % (self._dbusservice['/Ac/Power']))
@ -167,7 +167,7 @@ def main():
_v = lambda p, v: (str(round(v, 1)) + ' V')
#start our main-service
pvac_output = NodeRedMeterEinspeisung(
pvac_output = NodeRedMetergrid-meter(
servicename='com.victronenergy.grid',
deviceinstance=40,
paths={

View File

@ -111,7 +111,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "Create java objects",
"func": "var einspeisung_total_power = parseFloat(global.get(\"einspeisung_total_power\"))\n\nvar einspeisung_l1_voltage = parseFloat(global.get(\"einspeisung_l1_voltage\"))\nvar einspeisung_l2_voltage = parseFloat(global.get(\"einspeisung_l2_voltage\"))\nvar einspeisung_l3_voltage = parseFloat(global.get(\"einspeisung_l3_voltage\"))\n\nvar einspeisung_l1_current = parseFloat(global.get(\"einspeisung_l1_current\"))\nvar einspeisung_l2_current = parseFloat(global.get(\"einspeisung_l2_current\"))\nvar einspeisung_l3_current = parseFloat(global.get(\"einspeisung_l3_current\"))\n\nvar einspeisung_l1_power = parseFloat(global.get(\"einspeisung_l1_power\"))\nvar einspeisung_l2_power = parseFloat(global.get(\"einspeisung_l2_power\"))\nvar einspeisung_l3_power = parseFloat(global.get(\"einspeisung_l3_power\"))\n\nvar einspeisung_l1_import = parseFloat(global.get(\"einspeisung_l1_import\"))\nvar einspeisung_l2_import = parseFloat(global.get(\"einspeisung_l2_import\"))\nvar einspeisung_l3_import = parseFloat(global.get(\"einspeisung_l3_import\"))\n\nvar einspeisung_l1_export = parseFloat(global.get(\"einspeisung_l1_export\"))\nvar einspeisung_l2_export = parseFloat(global.get(\"einspeisung_l2_export\"))\nvar einspeisung_l3_export = parseFloat(global.get(\"einspeisung_l3_export\"))\n\n//Totals\nvar einspeisung_total_current = einspeisung_l1_current + einspeisung_l2_current + einspeisung_l3_current\nvar einspeisung_total_import = parseFloat(global.get(\"einspeisung_total_import\"))\nvar einspeisung_total_export = parseFloat(global.get(\"einspeisung_total_export\"))\n\nmsg.payload.einspeisung = {total_power:einspeisung_total_power, total_current:einspeisung_total_current, total_import:einspeisung_total_import, total_export:einspeisung_total_export, l1_voltage:einspeisung_l1_voltage, l2_voltage:einspeisung_l2_voltage, l3_voltage:einspeisung_l3_voltage, l1_current:einspeisung_l1_current, l2_current:einspeisung_l2_current, l3_current:einspeisung_l3_current, l1_power:einspeisung_l1_power, l2_power:einspeisung_l2_power, l3_power:einspeisung_l3_power, l1_import:einspeisung_l1_import, l2_import:einspeisung_l2_import, l3_import:einspeisung_l3_import, l1_export:einspeisung_l1_export, l2_export:einspeisung_l2_export, l3_export:einspeisung_l3_export};\n\nreturn msg;",
"func": "var grid_total_power = parseFloat(global.get(\"grid_total_power\"))\n\nvar grid_l1_voltage = parseFloat(global.get(\"grid_l1_voltage\"))\nvar grid_l2_voltage = parseFloat(global.get(\"grid_l2_voltage\"))\nvar grid_l3_voltage = parseFloat(global.get(\"grid_l3_voltage\"))\n\nvar grid_l1_current = parseFloat(global.get(\"grid_l1_current\"))\nvar grid_l2_current = parseFloat(global.get(\"grid_l2_current\"))\nvar grid_l3_current = parseFloat(global.get(\"grid_l3_current\"))\n\nvar grid_l1_power = parseFloat(global.get(\"grid_l1_power\"))\nvar grid_l2_power = parseFloat(global.get(\"grid_l2_power\"))\nvar grid_l3_power = parseFloat(global.get(\"grid_l3_power\"))\n\nvar grid_l1_import = parseFloat(global.get(\"grid_l1_import\"))\nvar grid_l2_import = parseFloat(global.get(\"grid_l2_import\"))\nvar grid_l3_import = parseFloat(global.get(\"grid_l3_import\"))\n\nvar grid_l1_export = parseFloat(global.get(\"grid_l1_export\"))\nvar grid_l2_export = parseFloat(global.get(\"grid_l2_export\"))\nvar grid_l3_export = parseFloat(global.get(\"grid_l3_export\"))\n\n//Totals\nvar grid_total_current = grid_l1_current + grid_l2_current + grid_l3_current\nvar grid_total_import = parseFloat(global.get(\"grid_total_import\"))\nvar grid_total_export = parseFloat(global.get(\"grid_total_export\"))\n\nmsg.payload.grid = {total_power:grid_total_power, total_current:grid_total_current, total_import:grid_total_import, total_export:grid_total_export, l1_voltage:grid_l1_voltage, l2_voltage:grid_l2_voltage, l3_voltage:grid_l3_voltage, l1_current:grid_l1_current, l2_current:grid_l2_current, l3_current:grid_l3_current, l1_power:grid_l1_power, l2_power:grid_l2_power, l3_power:grid_l3_power, l1_import:grid_l1_import, l2_import:grid_l2_import, l3_import:grid_l3_import, l1_export:grid_l1_export, l2_export:grid_l2_export, l3_export:grid_l3_export};\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
@ -168,7 +168,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"einspeisung_l1_voltage\", temp)\nreturn msg;",
"func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"grid_l1_voltage\", temp)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
@ -207,7 +207,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"einspeisung_l2_voltage\", temp)\nreturn msg;",
"func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"grid_l2_voltage\", temp)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
@ -246,7 +246,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"einspeisung_l3_voltage\", temp)\nreturn msg;",
"func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"grid_l3_voltage\", temp)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
@ -285,7 +285,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.001).toFixed(1);\nglobal.set(\"einspeisung_l1_current\", temp)\nreturn msg;",
"func": "temp = parseFloat(msg.payload * 0.001).toFixed(1);\nglobal.set(\"grid_l1_current\", temp)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
@ -324,7 +324,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.001).toFixed(1);\nglobal.set(\"einspeisung_l2_current\", temp)\nreturn msg;",
"func": "temp = parseFloat(msg.payload * 0.001).toFixed(1);\nglobal.set(\"grid_l2_current\", temp)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
@ -363,7 +363,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.001).toFixed(1);\nglobal.set(\"einspeisung_l3_current\", temp)\nreturn msg;",
"func": "temp = parseFloat(msg.payload * 0.001).toFixed(1);\nglobal.set(\"grid_l3_current\", temp)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
@ -402,7 +402,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"einspeisung_l1_power\", temp);\nmsg.payload = parseFloat(temp);\nreturn msg;",
"func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"grid_l1_power\", temp);\nmsg.payload = parseFloat(temp);\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
@ -443,7 +443,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"einspeisung_l2_power\", temp);\nmsg.payload = parseFloat(temp);\nreturn msg;",
"func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"grid_l2_power\", temp);\nmsg.payload = parseFloat(temp);\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
@ -484,7 +484,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"einspeisung_l3_power\", temp);\nmsg.payload = parseFloat(temp);\nreturn msg;",
"func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"grid_l3_power\", temp);\nmsg.payload = parseFloat(temp);\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
@ -525,7 +525,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"einspeisung_total_power\", temp);\nmsg.payload = parseFloat(temp);\nreturn msg;",
"func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"grid_total_power\", temp);\nmsg.payload = parseFloat(temp);\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
@ -573,7 +573,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "Calculate kWh of sum power",
"func": "//init counters if not defined\nif (global.get(\"einspeisung_total_import\") === undefined) {\n global.set(\"einspeisung_total_import\", 0);\n}\nif (global.get(\"einspeisung_total_export\") === undefined) {\n global.set(\"einspeisung_total_export\", 0);\n}\n//get counters from global variable\nvar total_import = global.get(\"einspeisung_total_import\");\nvar total_export = global.get(\"einspeisung_total_export\");\nvar check = \"Nothing\";\n\n//check if usage (payload) is positive=import or negative=export\n//add diff to import or export counters\nif (msg.payload < 0) {\n total_export += Math.abs(msg.payload);\n check = \"Export: \" + Math.abs(msg.payload) + \" kWh\";\n}\nif (msg.payload > 0) {\n total_import += Math.abs(msg.payload);\n check = \"Import: \" + Math.abs(msg.payload) + \" kWh\";\n}\n\n//write result back to global vars and send a msg for debug\nglobal.set(\"einspeisung_total_import\", total_import);\nglobal.set(\"einspeisung_total_export\", total_export);\nmsg.payload = {total_import: total_import, total_export: total_export, check: check}\nreturn msg;",
"func": "//init counters if not defined\nif (global.get(\"grid_total_import\") === undefined) {\n global.set(\"grid_total_import\", 0);\n}\nif (global.get(\"grid_total_export\") === undefined) {\n global.set(\"grid_total_export\", 0);\n}\n//get counters from global variable\nvar total_import = global.get(\"grid_total_import\");\nvar total_export = global.get(\"grid_total_export\");\nvar check = \"Nothing\";\n\n//check if usage (payload) is positive=import or negative=export\n//add diff to import or export counters\nif (msg.payload < 0) {\n total_export += Math.abs(msg.payload);\n check = \"Export: \" + Math.abs(msg.payload) + \" kWh\";\n}\nif (msg.payload > 0) {\n total_import += Math.abs(msg.payload);\n check = \"Import: \" + Math.abs(msg.payload) + \" kWh\";\n}\n\n//write result back to global vars and send a msg for debug\nglobal.set(\"grid_total_import\", total_import);\nglobal.set(\"grid_total_export\", total_export);\nmsg.payload = {total_import: total_import, total_export: total_export, check: check}\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
@ -606,7 +606,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "Init variables",
"func": "global.set(\"einspeisung_total_import\", 0);\nglobal.set(\"einspeisung_total_export\", 0);\nglobal.set(\"einspeisung_l1_import\", 0);\nglobal.set(\"einspeisung_l2_import\", 0);\nglobal.set(\"einspeisung_l3_import\", 0);\nglobal.set(\"einspeisung_l1_export\", 0);\nglobal.set(\"einspeisung_l2_export\", 0);\nglobal.set(\"einspeisung_l3_export\", 0);\nreturn msg;",
"func": "global.set(\"grid_total_import\", 0);\nglobal.set(\"grid_total_export\", 0);\nglobal.set(\"grid_l1_import\", 0);\nglobal.set(\"grid_l2_import\", 0);\nglobal.set(\"grid_l3_import\", 0);\nglobal.set(\"grid_l1_export\", 0);\nglobal.set(\"grid_l2_export\", 0);\nglobal.set(\"grid_l3_export\", 0);\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
@ -700,7 +700,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "Calculate kWh of phase 1 power",
"func": "//init counters if not defined\nif (global.get(\"einspeisung_l1_import\") === undefined) {\n global.set(\"einspeisung_l1_import\", 0);\n}\nif (global.get(\"einspeisung_l1_export\") === undefined) {\n global.set(\"einspeisung_l1_export\", 0);\n}\n//get counters from global variable\nvar total_import = global.get(\"einspeisung_l1_import\");\nvar total_export = global.get(\"einspeisung_l1_export\");\nvar check = \"Nothing\";\n\n//check if usage (payload) is positive=import or negative=export\n//add diff to import or export counters\nif (msg.payload < 0) {\n total_export += Math.abs(msg.payload);\n check = \"Export: \" + Math.abs(msg.payload) + \" kWh\";\n}\nif (msg.payload > 0) {\n total_import += Math.abs(msg.payload);\n check = \"Import: \" + Math.abs(msg.payload) + \" kWh\";\n}\n//write result back to global vars and send a msg for debug\nglobal.set(\"einspeisung_l1_import\", total_import);\nglobal.set(\"einspeisung_l1_export\", total_export);\nmsg.payload = {total_import: total_import, total_export: total_export, check: check}\nreturn msg;",
"func": "//init counters if not defined\nif (global.get(\"grid_l1_import\") === undefined) {\n global.set(\"grid_l1_import\", 0);\n}\nif (global.get(\"grid_l1_export\") === undefined) {\n global.set(\"grid_l1_export\", 0);\n}\n//get counters from global variable\nvar total_import = global.get(\"grid_l1_import\");\nvar total_export = global.get(\"grid_l1_export\");\nvar check = \"Nothing\";\n\n//check if usage (payload) is positive=import or negative=export\n//add diff to import or export counters\nif (msg.payload < 0) {\n total_export += Math.abs(msg.payload);\n check = \"Export: \" + Math.abs(msg.payload) + \" kWh\";\n}\nif (msg.payload > 0) {\n total_import += Math.abs(msg.payload);\n check = \"Import: \" + Math.abs(msg.payload) + \" kWh\";\n}\n//write result back to global vars and send a msg for debug\nglobal.set(\"grid_l1_import\", total_import);\nglobal.set(\"grid_l1_export\", total_export);\nmsg.payload = {total_import: total_import, total_export: total_export, check: check}\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
@ -717,7 +717,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "Calculate kWh of phase 2 power",
"func": "//init counters if not defined\nif (global.get(\"einspeisung_l2_import\") === undefined) {\n global.set(\"einspeisung_l2_import\", 0);\n}\nif (global.get(\"einspeisung_l2_export\") === undefined) {\n global.set(\"einspeisung_l2_export\", 0);\n}\n//get counters from global variable\nvar total_import = global.get(\"einspeisung_l2_import\");\nvar total_export = global.get(\"einspeisung_l2_export\");\nvar check = \"Nothing\";\n\n//check if usage (payload) is positive=import or negative=export\n//add diff to import or export counters\nif (msg.payload < 0) {\n total_export += Math.abs(msg.payload);\n check = \"Export: \" + Math.abs(msg.payload) + \" kWh\";\n}\nif (msg.payload > 0) {\n total_import += Math.abs(msg.payload);\n check = \"Import: \" + Math.abs(msg.payload) + \" kWh\";\n}\n\n//write result back to global vars and send a msg for debug\nglobal.set(\"einspeisung_l2_import\", total_import);\nglobal.set(\"einspeisung_l2_export\", total_export);\nmsg.payload = {total_import: total_import, total_export: total_export, check: check}\nreturn msg;",
"func": "//init counters if not defined\nif (global.get(\"grid_l2_import\") === undefined) {\n global.set(\"grid_l2_import\", 0);\n}\nif (global.get(\"grid_l2_export\") === undefined) {\n global.set(\"grid_l2_export\", 0);\n}\n//get counters from global variable\nvar total_import = global.get(\"grid_l2_import\");\nvar total_export = global.get(\"grid_l2_export\");\nvar check = \"Nothing\";\n\n//check if usage (payload) is positive=import or negative=export\n//add diff to import or export counters\nif (msg.payload < 0) {\n total_export += Math.abs(msg.payload);\n check = \"Export: \" + Math.abs(msg.payload) + \" kWh\";\n}\nif (msg.payload > 0) {\n total_import += Math.abs(msg.payload);\n check = \"Import: \" + Math.abs(msg.payload) + \" kWh\";\n}\n\n//write result back to global vars and send a msg for debug\nglobal.set(\"grid_l2_import\", total_import);\nglobal.set(\"grid_l2_export\", total_export);\nmsg.payload = {total_import: total_import, total_export: total_export, check: check}\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
@ -734,7 +734,7 @@
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "Calculate kWh of phase 3 power",
"func": "//init counters if not defined\nif (global.get(\"einspeisung_l3_import\") === undefined) {\n global.set(\"einspeisung_l3_import\", 0);\n}\nif (global.get(\"einspeisung_l3_export\") === undefined) {\n global.set(\"einspeisung_l3_export\", 0);\n}\n//get counters from global variable\nvar total_import = global.get(\"einspeisung_l3_import\");\nvar total_export = global.get(\"einspeisung_l3_export\");\nvar check = \"Nothing\";\n\n//check if usage (payload) is positive=import or negative=export\n//add diff to import or export counters\nif (msg.payload < 0) {\n total_export += Math.abs(msg.payload);\n check = \"Export: \" + Math.abs(msg.payload) + \" kWh\";\n}\nif (msg.payload > 0) {\n total_import += Math.abs(msg.payload);\n check = \"Import: \" + Math.abs(msg.payload) + \" kWh\";\n}\n\n//write result back to global vars and send a msg for debug\nglobal.set(\"einspeisung_l3_import\", total_import);\nglobal.set(\"einspeisung_l3_export\", total_export);\nmsg.payload = {total_import: total_import, total_export: total_export, check: check}\nreturn msg;",
"func": "//init counters if not defined\nif (global.get(\"grid_l3_import\") === undefined) {\n global.set(\"grid_l3_import\", 0);\n}\nif (global.get(\"grid_l3_export\") === undefined) {\n global.set(\"grid_l3_export\", 0);\n}\n//get counters from global variable\nvar total_import = global.get(\"grid_l3_import\");\nvar total_export = global.get(\"grid_l3_export\");\nvar check = \"Nothing\";\n\n//check if usage (payload) is positive=import or negative=export\n//add diff to import or export counters\nif (msg.payload < 0) {\n total_export += Math.abs(msg.payload);\n check = \"Export: \" + Math.abs(msg.payload) + \" kWh\";\n}\nif (msg.payload > 0) {\n total_import += Math.abs(msg.payload);\n check = \"Import: \" + Math.abs(msg.payload) + \" kWh\";\n}\n\n//write result back to global vars and send a msg for debug\nglobal.set(\"grid_l3_import\", total_import);\nglobal.set(\"grid_l3_export\", total_export);\nmsg.payload = {total_import: total_import, total_export: total_export, check: check}\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",