VictronGX_Custom_Sensors/node-red-flows/meters.json

867 lines
25 KiB
JSON

[
{
"id": "f96eea4d4a3a345d",
"type": "tab",
"label": "Meters",
"disabled": false,
"info": "",
"env": []
},
{
"id": "79ff2bd4c3604f42",
"type": "inject",
"z": "f96eea4d4a3a345d",
"name": "Poll every 3 sec",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "3",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 200,
"y": 400,
"wires": [
[
"5c5702e7ebd71a77",
"ccf9f0980f83375d",
"e2571df80f480199",
"165c27082bf35d11",
"71afb139032cfee2",
"972360a051abdf88",
"21e06b0168fdee41",
"e107fc40d203f46a",
"7586c0c0ec778dad",
"ef783dcc259e1398",
"f748fa2266fa4302",
"ece76e52d325bd6e",
"a5f8ee01c537330b",
"1e1823db7c7b4edd",
"7857cce5b19d21ea"
]
]
},
{
"id": "63e9e27d8597ced3",
"type": "http in",
"z": "f96eea4d4a3a345d",
"name": "",
"url": "/meters",
"method": "get",
"upload": false,
"swaggerDoc": "",
"x": 120,
"y": 880,
"wires": [
[
"c61fcb67b3a33b47"
]
]
},
{
"id": "fbe8cca3419d8161",
"type": "change",
"z": "f96eea4d4a3a345d",
"name": "set http header",
"rules": [
{
"t": "set",
"p": "headers",
"pt": "msg",
"to": "{}",
"tot": "json"
},
{
"t": "set",
"p": "headers.content-type",
"pt": "msg",
"to": "application/json",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1150,
"y": 880,
"wires": [
[
"83f39f5649b78b86"
]
]
},
{
"id": "83f39f5649b78b86",
"type": "http response",
"z": "f96eea4d4a3a345d",
"name": "serve as http api",
"statusCode": "",
"headers": {},
"x": 1420,
"y": 880,
"wires": []
},
{
"id": "c61fcb67b3a33b47",
"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;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 510,
"y": 880,
"wires": [
[
"307db2619dcf6228"
]
]
},
{
"id": "307db2619dcf6228",
"type": "json",
"z": "f96eea4d4a3a345d",
"name": "build json object",
"property": "payload",
"action": "",
"pretty": false,
"x": 910,
"y": 880,
"wires": [
[
"fbe8cca3419d8161"
]
]
},
{
"id": "5c5702e7ebd71a77",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Voltage L1",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R100,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 560,
"y": 140,
"wires": [
[
"f5853a536891d509"
]
]
},
{
"id": "f5853a536891d509",
"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;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 140,
"wires": [
[]
]
},
{
"id": "ccf9f0980f83375d",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Voltage L2",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R101,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 560,
"y": 180,
"wires": [
[
"a3b33ef1225b85e7"
]
]
},
{
"id": "a3b33ef1225b85e7",
"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;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 180,
"wires": [
[]
]
},
{
"id": "e2571df80f480199",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Voltage L3",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R102,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 560,
"y": 220,
"wires": [
[
"b284d02cb539994f"
]
]
},
{
"id": "b284d02cb539994f",
"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;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 220,
"wires": [
[]
]
},
{
"id": "165c27082bf35d11",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Current L1",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R103,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 560,
"y": 260,
"wires": [
[
"1da7740caa290264"
]
]
},
{
"id": "1da7740caa290264",
"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;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 260,
"wires": [
[]
]
},
{
"id": "71afb139032cfee2",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Current L2",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R104,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 560,
"y": 300,
"wires": [
[
"6c9ebd253a3c3b0d"
]
]
},
{
"id": "6c9ebd253a3c3b0d",
"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;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 300,
"wires": [
[]
]
},
{
"id": "972360a051abdf88",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Current L3",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R105,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 560,
"y": 340,
"wires": [
[
"d848102461062b3f"
]
]
},
{
"id": "d848102461062b3f",
"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;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 340,
"wires": [
[]
]
},
{
"id": "21e06b0168fdee41",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Power L1",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R106,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 550,
"y": 380,
"wires": [
[
"3e88cef8b8b508ac"
]
]
},
{
"id": "3e88cef8b8b508ac",
"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)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 380,
"wires": [
[]
]
},
{
"id": "e107fc40d203f46a",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Power L2",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R107,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 550,
"y": 420,
"wires": [
[
"466e66a05eddb62f"
]
]
},
{
"id": "466e66a05eddb62f",
"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)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 420,
"wires": [
[]
]
},
{
"id": "7586c0c0ec778dad",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Power L3",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R108,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 550,
"y": 460,
"wires": [
[
"a0e6a154bfb85c09"
]
]
},
{
"id": "a0e6a154bfb85c09",
"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)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 460,
"wires": [
[]
]
},
{
"id": "baf1934f370ed4fd",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Total Power",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R112,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 560,
"y": 40,
"wires": [
[
"c86839ef84dcc35d"
]
]
},
{
"id": "c86839ef84dcc35d",
"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)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 40,
"wires": [
[]
]
},
{
"id": "ef783dcc259e1398",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Import L1",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R117,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 550,
"y": 500,
"wires": [
[
"22bdca2522a4b3c9"
]
]
},
{
"id": "22bdca2522a4b3c9",
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.001).toFixed(2);\nglobal.set(\"einspeisung_l1_import\", temp)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 500,
"wires": [
[]
]
},
{
"id": "f748fa2266fa4302",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Import L2",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R118,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 550,
"y": 540,
"wires": [
[
"51dc86ef4b4e31fd"
]
]
},
{
"id": "51dc86ef4b4e31fd",
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.001).toFixed(2);\nglobal.set(\"einspeisung_l2_import\", temp)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 540,
"wires": [
[]
]
},
{
"id": "ece76e52d325bd6e",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Import L3",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R119,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 550,
"y": 580,
"wires": [
[
"804899fa9686be16"
]
]
},
{
"id": "804899fa9686be16",
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.001).toFixed(2);\nglobal.set(\"einspeisung_l3_import\", temp)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 580,
"wires": [
[]
]
},
{
"id": "a5f8ee01c537330b",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Export L1",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R150,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 550,
"y": 620,
"wires": [
[
"ba0021b15f94fc41"
]
]
},
{
"id": "ba0021b15f94fc41",
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.001).toFixed(2);\nglobal.set(\"einspeisung_l1_export\", temp)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 620,
"wires": [
[]
]
},
{
"id": "1e1823db7c7b4edd",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Export L2",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R151,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 550,
"y": 660,
"wires": [
[
"68157d83b4f176f5"
]
]
},
{
"id": "68157d83b4f176f5",
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.001).toFixed(2);\nglobal.set(\"einspeisung_l2_export\", temp)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 660,
"wires": [
[]
]
},
{
"id": "7857cce5b19d21ea",
"type": "http request",
"z": "f96eea4d4a3a345d",
"name": "Export L3",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://10.1.0.5/cgi-bin/readVal.exe?PDP,%20R152,d",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"senderr": false,
"x": 550,
"y": 700,
"wires": [
[
"4d12b6c71b023fc8"
]
]
},
{
"id": "4d12b6c71b023fc8",
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "format and save to global var",
"func": "temp = parseFloat(msg.payload * 0.001).toFixed(2);\nglobal.set(\"einspeisung_l3_export\", temp)\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 940,
"y": 700,
"wires": [
[]
]
},
{
"id": "58942376d9fbdd07",
"type": "inject",
"z": "f96eea4d4a3a345d",
"name": "Poll every sec",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "1",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 190,
"y": 40,
"wires": [
[
"baf1934f370ed4fd"
]
]
},
{
"id": "18e719ada7da042a",
"type": "inject",
"z": "f96eea4d4a3a345d",
"name": "Calc every minute",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "60",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 190,
"y": 760,
"wires": [
[
"983943d318a0ef33"
]
]
},
{
"id": "983943d318a0ef33",
"type": "function",
"z": "f96eea4d4a3a345d",
"name": "Phase sum of import and export like EM24",
"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 = parseFloat(global.get(\"einspeisung_total_import\"));\nvar total_export = parseFloat(global.get(\"einspeisung_total_export\"));\nvar phase_combined_last = parseFloat(global.get(\"einspeisung_total_phase_combined_last\"));\nvar check = \"Nothing\";\n\n//get measurements\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//get measurement of import and export\nvar phase_combined = (einspeisung_l1_import - einspeisung_l1_export) + (einspeisung_l2_import - einspeisung_l2_export) + (einspeisung_l3_import - einspeisung_l3_export);\n\nif (phase_combined < phase_combined_last) {\n total_export += Math.abs(phase_combined - phase_combined_last);\n check = \"Export: \" + Math.abs(phase_combined - phase_combined_last) + \" kWh\";\n}\nif (phase_combined > phase_combined_last) {\n total_import += Math.abs(phase_combined - phase_combined_last);\n check = \"Import: \" + Math.abs(phase_combined - phase_combined_last) + \" kWh\";\n}\n\nglobal.set(\"einspeisung_total_phase_combined_last\", phase_combined);\nglobal.set(\"einspeisung_total_import\", parseFloat(total_import).toFixed(2));\nglobal.set(\"einspeisung_total_export\", parseFloat(total_export).toFixed(2));\nmsg.payload = {total_import: total_import, total_export: total_export, phase_combined: phase_combined, phase_combined_last: phase_combined_last, check: check}\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 960,
"y": 760,
"wires": [
[
"9b291dc80aff0a1a"
]
]
},
{
"id": "9b291dc80aff0a1a",
"type": "debug",
"z": "f96eea4d4a3a345d",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 1460,
"y": 760,
"wires": []
}
]