diff --git a/node-red-flows/meters.json b/node-red-flows/meters.json index 2033d13..1d54d6f 100644 --- a/node-red-flows/meters.json +++ b/node-red-flows/meters.json @@ -28,7 +28,7 @@ "topic": "", "payload": "", "payloadType": "date", - "x": 200, + "x": 180, "y": 400, "wires": [ [ @@ -40,13 +40,7 @@ "972360a051abdf88", "21e06b0168fdee41", "e107fc40d203f46a", - "7586c0c0ec778dad", - "ef783dcc259e1398", - "f748fa2266fa4302", - "ece76e52d325bd6e", - "a5f8ee01c537330b", - "1e1823db7c7b4edd", - "7857cce5b19d21ea" + "7586c0c0ec778dad" ] ] }, @@ -408,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)\nreturn msg;", + "func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"einspeisung_l1_power\", temp);\nmsg.payload = parseFloat(temp);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", @@ -417,7 +411,9 @@ "x": 940, "y": 380, "wires": [ - [] + [ + "1cdb84780936c696" + ] ] }, { @@ -447,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)\nreturn msg;", + "func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"einspeisung_l2_power\", temp);\nmsg.payload = parseFloat(temp);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", @@ -456,7 +452,9 @@ "x": 940, "y": 420, "wires": [ - [] + [ + "074a7fdb9ba59d27" + ] ] }, { @@ -486,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)\nreturn msg;", + "func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"einspeisung_l3_power\", temp);\nmsg.payload = parseFloat(temp);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", @@ -495,7 +493,9 @@ "x": 940, "y": 460, "wires": [ - [] + [ + "6ff639af913d0a4d" + ] ] }, { @@ -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)\nreturn msg;", + "func": "temp = parseFloat(msg.payload * 0.1).toFixed(1);\nglobal.set(\"einspeisung_total_power\", temp);\nmsg.payload = parseFloat(temp);\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", @@ -533,29 +533,9 @@ "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" + "1504cb346fc652fd" ] ] }, @@ -576,28 +556,6 @@ [] ] }, - { - "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", @@ -615,28 +573,6 @@ [] ] }, - { - "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", @@ -654,28 +590,6 @@ [] ] }, - { - "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", @@ -693,28 +607,6 @@ [] ] }, - { - "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", @@ -732,28 +624,6 @@ [] ] }, - { - "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", @@ -775,7 +645,7 @@ "id": "58942376d9fbdd07", "type": "inject", "z": "f96eea4d4a3a345d", - "name": "Poll every sec", + "name": "Poll every two sec", "props": [ { "p": "payload" @@ -785,14 +655,14 @@ "vt": "str" } ], - "repeat": "1", + "repeat": "2", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", - "x": 190, + "x": 200, "y": 40, "wires": [ [ @@ -801,10 +671,60 @@ ] }, { - "id": "18e719ada7da042a", + "id": "983943d318a0ef33", + "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\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\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;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1530, + "y": 40, + "wires": [ + [] + ] + }, + { + "id": "1504cb346fc652fd", + "type": "watt2kwh", + "z": "f96eea4d4a3a345d", + "format": "kwh", + "maximum": "10", + "maximumunit": "mins", + "name": "", + "x": 1250, + "y": 40, + "wires": [ + [ + "983943d318a0ef33" + ] + ] + }, + { + "id": "e621c16c10a5eb1d", + "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;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1440, + "y": 580, + "wires": [ + [] + ] + }, + { + "id": "d905c25120cfdfd3", "type": "inject", "z": "f96eea4d4a3a345d", - "name": "Calc every minute", + "name": "Inject once", "props": [ { "p": "payload" @@ -814,54 +734,118 @@ "vt": "str" } ], - "repeat": "60", + "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", - "x": 190, - "y": 760, + "x": 1250, + "y": 580, "wires": [ [ - "983943d318a0ef33" + "e621c16c10a5eb1d" ] ] }, { - "id": "983943d318a0ef33", + "id": "1cdb84780936c696", + "type": "watt2kwh", + "z": "f96eea4d4a3a345d", + "format": "kwh", + "maximum": "10", + "maximumunit": "mins", + "name": "", + "x": 1230, + "y": 380, + "wires": [ + [ + "0b9537e05d7149d3" + ] + ] + }, + { + "id": "074a7fdb9ba59d27", + "type": "watt2kwh", + "z": "f96eea4d4a3a345d", + "format": "kwh", + "maximum": "10", + "maximumunit": "mins", + "name": "", + "x": 1230, + "y": 420, + "wires": [ + [ + "59bf60635bd06584" + ] + ] + }, + { + "id": "6ff639af913d0a4d", + "type": "watt2kwh", + "z": "f96eea4d4a3a345d", + "format": "kwh", + "maximum": "10", + "maximumunit": "mins", + "name": "", + "x": 1230, + "y": 460, + "wires": [ + [ + "87d6bf141ff90325" + ] + ] + }, + { + "id": "0b9537e05d7149d3", "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;", + "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\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\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;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], - "x": 960, - "y": 760, + "x": 1500, + "y": 380, "wires": [ - [ - "9b291dc80aff0a1a" - ] + [] ] }, { - "id": "9b291dc80aff0a1a", - "type": "debug", + "id": "59bf60635bd06584", + "type": "function", "z": "f96eea4d4a3a345d", - "name": "", - "active": true, - "tosidebar": true, - "console": false, - "tostatus": false, - "complete": "false", - "statusVal": "", - "statusType": "auto", - "x": 1460, - "y": 760, - "wires": [] + "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\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\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;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1500, + "y": 420, + "wires": [ + [] + ] + }, + { + "id": "87d6bf141ff90325", + "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\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\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;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1500, + "y": 460, + "wires": [ + [] + ] } ] \ No newline at end of file