[ { "id": "f6f2187d.f17ca8", "type": "tab", "label": "MQTT2Influxdb", "disabled": false, "info": "" }, { "id": "ae14dbbaafe62be6", "type": "tab", "label": "CSV2Influxdb", "disabled": false, "info": "", "env": [] }, { "id": "d0f6fc20cc752ed0", "type": "tab", "label": "Debug Dashboard", "disabled": false, "info": "" }, { "id": "325e309897bf4538", "type": "tab", "label": "3dprinter", "disabled": false, "info": "", "env": [] }, { "id": "47e5443dc1c29bcd", "type": "tab", "label": "laser cutter", "disabled": false, "info": "", "env": [] }, { "id": "8ef0902d5920bef2", "type": "tab", "label": "cnc", "disabled": false, "info": "", "env": [] }, { "id": "306896b1c1761662", "type": "tab", "label": "Test Watts to KWh", "disabled": false, "info": "", "env": [] }, { "id": "7ce136dbb8c897d1", "type": "mqtt-broker", "name": "pi-mqtt-server:1833", "broker": "pi-mqtt-server", "port": "1883", "clientid": "", "autoConnect": true, "usetls": false, "protocolVersion": "4", "keepalive": "60", "cleansession": true, "birthTopic": "", "birthQos": "0", "birthRetain": "false", "birthPayload": "", "birthMsg": {}, "closeTopic": "", "closeQos": "0", "closeRetain": "false", "closePayload": "", "closeMsg": {}, "willTopic": "", "willQos": "0", "willRetain": "false", "willPayload": "", "willMsg": {}, "userProps": "", "sessionExpiry": "" }, { "id": "368e029bdaefea73", "type": "ui_group", "name": "Power", "tab": "8eef9f1fd7446608", "order": 1, "disp": true, "width": "6", "collapse": false, "className": "" }, { "id": "8eef9f1fd7446608", "type": "ui_tab", "name": "Powermonitor", "icon": "dashboard", "order": 1, "disabled": false, "hidden": false }, { "id": "90bc7a058a6ccbd7", "type": "ui_base", "theme": { "name": "theme-light", "lightTheme": { "default": "#0094CE", "baseColor": "#0094CE", "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif", "edited": true, "reset": false }, "darkTheme": { "default": "#097479", "baseColor": "#097479", "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif", "edited": false }, "customTheme": { "name": "Untitled Theme 1", "default": "#4B7930", "baseColor": "#4B7930", "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif" }, "themeState": { "base-color": { "default": "#0094CE", "value": "#0094CE", "edited": false }, "page-titlebar-backgroundColor": { "value": "#0094CE", "edited": false }, "page-backgroundColor": { "value": "#fafafa", "edited": false }, "page-sidebar-backgroundColor": { "value": "#ffffff", "edited": false }, "group-textColor": { "value": "#1bbfff", "edited": false }, "group-borderColor": { "value": "#ffffff", "edited": false }, "group-backgroundColor": { "value": "#ffffff", "edited": false }, "widget-textColor": { "value": "#111111", "edited": false }, "widget-backgroundColor": { "value": "#0094ce", "edited": false }, "widget-borderColor": { "value": "#ffffff", "edited": false }, "base-font": { "value": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif" } }, "angularTheme": { "primary": "indigo", "accents": "blue", "warn": "red", "background": "grey", "palette": "light" } }, "site": { "name": "Node-RED Dashboard", "hideToolbar": "false", "allowSwipe": "false", "lockMenu": "false", "allowTempTheme": "true", "dateFormat": "DD.MM.YYYY", "sizes": { "sx": 48, "sy": 48, "gx": 6, "gy": 6, "cx": 6, "cy": 6, "px": 0, "py": 0 } } }, { "id": "eeb221fb.ab27f", "type": "influxdb", "hostname": "127.0.0.1", "port": "8086", "protocol": "http", "database": "test", "name": "test", "usetls": true, "tls": "d50d0c9f.31e858", "influxdbVersion": "1.x", "url": "http://localhost:8086", "rejectUnauthorized": true }, { "id": "d50d0c9f.31e858", "type": "tls-config", "name": "", "cert": "", "key": "", "ca": "", "certname": "", "keyname": "", "caname": "", "servername": "", "verifyservercert": false }, { "id": "d61a7da6caeb26aa", "type": "influxdb", "hostname": "influxdb", "port": "8086", "protocol": "http", "database": "database", "name": "influx", "usetls": false, "tls": "d50d0c9f.31e858", "influxdbVersion": "2.0", "url": "http://influxdb:8086", "rejectUnauthorized": true }, { "id": "4cf36a44b74caee5", "type": "mqtt-broker", "name": "mosquitto", "broker": "mosquitto", "port": "1883", "clientid": "", "autoConnect": true, "usetls": false, "protocolVersion": "4", "keepalive": "60", "cleansession": true, "birthTopic": "", "birthQos": "0", "birthRetain": "false", "birthPayload": "", "birthMsg": {}, "closeTopic": "", "closeQos": "0", "closeRetain": "false", "closePayload": "", "closeMsg": {}, "willTopic": "", "willQos": "0", "willRetain": "false", "willPayload": "", "willMsg": {}, "userProps": "", "sessionExpiry": "" }, { "id": "00a750cdfb54579e", "type": "mqtt in", "z": "f6f2187d.f17ca8", "name": "", "topic": "/iot-platform/energy-monitor/test-device/watt", "qos": "1", "datatype": "auto-detect", "broker": "4cf36a44b74caee5", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 270, "y": 480, "wires": [ [ "16687c90623bdb9b" ] ] }, { "id": "7e53d20583f56487", "type": "influxdb out", "z": "f6f2187d.f17ca8", "influxdb": "d61a7da6caeb26aa", "name": "Influx watt", "measurement": "msg", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "test", "x": 810, "y": 500, "wires": [] }, { "id": "16687c90623bdb9b", "type": "function", "z": "f6f2187d.f17ca8", "name": "toNumber", "func": "\nmsg.payload = Number(msg.payload)\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 540, "y": 480, "wires": [ [ "7e53d20583f56487", "499e0f3651d818db" ] ] }, { "id": "499e0f3651d818db", "type": "debug", "z": "f6f2187d.f17ca8", "name": "consumption", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 810, "y": 420, "wires": [] }, { "id": "b14166f65d5aec75", "type": "mqtt in", "z": "f6f2187d.f17ca8", "name": "", "topic": "tele/tasmota_A4D1F3/SENSOR", "qos": "1", "datatype": "auto-detect", "broker": "4cf36a44b74caee5", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 210, "y": 720, "wires": [ [ "29cd45a4f1feb505" ] ] }, { "id": "23c62c30ebabca6e", "type": "influxdb out", "z": "f6f2187d.f17ca8", "influxdb": "d61a7da6caeb26aa", "name": "Influx plant sensor", "measurement": "msg", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "plant", "x": 790, "y": 640, "wires": [] }, { "id": "e3742f5060cf6cb7", "type": "debug", "z": "f6f2187d.f17ca8", "name": "debug 1", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 760, "y": 760, "wires": [] }, { "id": "29cd45a4f1feb505", "type": "function", "z": "f6f2187d.f17ca8", "name": "plant2Influx", "func": "var newMsg = {\n payload: {\n temperature: Number(msg.payload.DHT11.Temperature),\n humidity: Number(msg.payload.DHT11.Humidity)\n }\n};\nreturn newMsg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 530, "y": 640, "wires": [ [ "23c62c30ebabca6e", "e3742f5060cf6cb7" ] ] }, { "id": "f21213aec2f647ff", "type": "mqtt in", "z": "f6f2187d.f17ca8", "name": "", "topic": "tele/tasmota_891E97/SENSOR", "qos": "1", "datatype": "auto-detect", "broker": "4cf36a44b74caee5", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 190, "y": 1000, "wires": [ [ "5e4f2b3e1acad45b" ] ] }, { "id": "26b455c1bd337375", "type": "influxdb out", "z": "f6f2187d.f17ca8", "influxdb": "d61a7da6caeb26aa", "name": "Influx Shelly device", "measurement": "msg", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "shelly", "x": 770, "y": 920, "wires": [] }, { "id": "96eaf14353a89e9c", "type": "debug", "z": "f6f2187d.f17ca8", "name": "shelly", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 730, "y": 1040, "wires": [] }, { "id": "5e4f2b3e1acad45b", "type": "function", "z": "f6f2187d.f17ca8", "name": "shelly2Influx", "func": "return {\n payload: {\n power: Number(msg.payload.ENERGY.Power),\n voltage: Number(msg.payload.ENERGY.Voltage),\n current: Number(msg.payload.ENERGY.Current)\n }\n};\n", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 490, "y": 1000, "wires": [ [ "26b455c1bd337375", "96eaf14353a89e9c" ] ] }, { "id": "e0977f2582bfaaa6", "type": "mqtt in", "z": "d0f6fc20cc752ed0", "name": "", "topic": "/iot-platform/energy-monitor/test-device/watt", "qos": "1", "datatype": "auto-detect", "broker": "4cf36a44b74caee5", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 330, "y": 300, "wires": [ [ "af39dce845afb447", "73b0f02f5524fc38" ] ] }, { "id": "af39dce845afb447", "type": "ui_gauge", "z": "d0f6fc20cc752ed0", "name": "", "group": "368e029bdaefea73", "order": 0, "width": 0, "height": 0, "gtype": "gage", "title": "Power ", "label": "W", "format": "{{value}}", "min": 0, "max": "4000", "colors": [ "#00b500", "#e6e600", "#ca3838" ], "seg1": "", "seg2": "", "diff": false, "className": "", "x": 690, "y": 300, "wires": [] }, { "id": "73b0f02f5524fc38", "type": "ui_chart", "z": "d0f6fc20cc752ed0", "name": "", "group": "368e029bdaefea73", "order": 1, "width": 0, "height": 0, "label": "Chart", "chartType": "line", "legend": "false", "xformat": "HH:mm:ss", "interpolate": "linear", "nodata": "", "dot": false, "ymin": "", "ymax": "", "removeOlder": 1, "removeOlderPoints": "", "removeOlderUnit": "3600", "cutout": 0, "useOneColor": false, "useUTC": false, "colors": [ "#1f77b4", "#aec7e8", "#ff7f0e", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5" ], "outputs": 1, "useDifferentColor": false, "className": "", "x": 690, "y": 340, "wires": [ [] ] }, { "id": "ab06ffb0bf2c56e8", "type": "mqtt in", "z": "325e309897bf4538", "name": "", "topic": "microfactory/3dprinter", "qos": "2", "datatype": "auto-detect", "broker": "4cf36a44b74caee5", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 120, "y": 120, "wires": [ [ "b0d392d2c63876e6" ] ] }, { "id": "4becd7ada513bdcf", "type": "debug", "z": "325e309897bf4538", "name": "filament sensor", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 720, "y": 180, "wires": [] }, { "id": "b0d392d2c63876e6", "type": "function", "z": "325e309897bf4538", "name": "parse filament data", "func": "return {\n payload: {\n device: String(msg.payload.device),\n unit: String(msg.payload.unit),\n measure: Number(msg.payload.value)\n }\n};", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 410, "y": 120, "wires": [ [ "4becd7ada513bdcf", "f0a128bf29194ea6" ] ] }, { "id": "f0a128bf29194ea6", "type": "influxdb out", "z": "325e309897bf4538", "influxdb": "d61a7da6caeb26aa", "name": "filament2Influx", "measurement": "filament", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "3dprinter", "x": 700, "y": 60, "wires": [] }, { "id": "5743e72dc31c53a8", "type": "mqtt in", "z": "325e309897bf4538", "name": "", "topic": "inmachines/3dprinter/power", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 140, "y": 380, "wires": [ [ "833743b62b5687d6" ] ] }, { "id": "833743b62b5687d6", "type": "function", "z": "325e309897bf4538", "name": "parse power data", "func": "var power = Number(msg.payload);\n\nif (power != 0){\n return {\n payload: power\n }\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 410, "y": 380, "wires": [ [ "e2da2b347453dd67", "2bbfb79be4639a0f" ] ] }, { "id": "e2da2b347453dd67", "type": "debug", "z": "325e309897bf4538", "name": "power 3dprinter", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 700, "y": 420, "wires": [] }, { "id": "2bbfb79be4639a0f", "type": "influxdb out", "z": "325e309897bf4538", "influxdb": "d61a7da6caeb26aa", "name": "power2Influx", "measurement": "power", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "3dprinter", "x": 690, "y": 340, "wires": [] }, { "id": "45612fd7f9c352cd", "type": "mqtt in", "z": "325e309897bf4538", "name": "", "topic": "inmachines/3dprinter/state", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 130, "y": 580, "wires": [ [ "da214da48c4af7a9" ] ] }, { "id": "da214da48c4af7a9", "type": "function", "z": "325e309897bf4538", "name": "parse state data", "func": "return {\n payload: String(msg.payload)\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 400, "y": 580, "wires": [ [ "b905735dc618a8a0", "de6344746014f314" ] ] }, { "id": "b905735dc618a8a0", "type": "debug", "z": "325e309897bf4538", "name": "state 3dprinter", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 700, "y": 620, "wires": [] }, { "id": "de6344746014f314", "type": "influxdb out", "z": "325e309897bf4538", "influxdb": "d61a7da6caeb26aa", "name": "state2Influx", "measurement": "state", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "3dprinter", "x": 690, "y": 540, "wires": [] }, { "id": "043e7748ef5e677b", "type": "mqtt in", "z": "325e309897bf4538", "name": "", "topic": "inmachines/3dprinter/filename", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 140, "y": 800, "wires": [ [ "a2b0ef42bca5e9f1" ] ] }, { "id": "a2b0ef42bca5e9f1", "type": "function", "z": "325e309897bf4538", "name": "parse filename data", "func": "return {\n payload: String(msg.payload)\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 410, "y": 800, "wires": [ [ "04b4d32bae0f2348", "8d1f5be333d2d226" ] ] }, { "id": "04b4d32bae0f2348", "type": "debug", "z": "325e309897bf4538", "name": "filename 3dprinter", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 710, "y": 840, "wires": [] }, { "id": "8d1f5be333d2d226", "type": "influxdb out", "z": "325e309897bf4538", "influxdb": "d61a7da6caeb26aa", "name": "filename2Influx", "measurement": "fileaname", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "3dprinter", "x": 700, "y": 760, "wires": [] }, { "id": "65bf19a4f55aee7e", "type": "mqtt in", "z": "325e309897bf4538", "name": "", "topic": "inmachines/3dprinter/starttime", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 150, "y": 1000, "wires": [ [ "1d33bc1b547f5ce2" ] ] }, { "id": "1d33bc1b547f5ce2", "type": "function", "z": "325e309897bf4538", "name": "parse start time data", "func": "return {\n payload: String(msg.payload)\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 1000, "wires": [ [ "6af55efed77b7ef4", "af07e620b26d2106" ] ] }, { "id": "6af55efed77b7ef4", "type": "debug", "z": "325e309897bf4538", "name": "starttime 3dprinter", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 710, "y": 1040, "wires": [] }, { "id": "af07e620b26d2106", "type": "influxdb out", "z": "325e309897bf4538", "influxdb": "d61a7da6caeb26aa", "name": "starttime2Influx", "measurement": "starttime", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "3dprinter", "x": 700, "y": 960, "wires": [] }, { "id": "957acd380de62057", "type": "mqtt in", "z": "325e309897bf4538", "name": "", "topic": "inmachines/3dprinter/endtime", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 140, "y": 1200, "wires": [ [ "048a2e5ff076bae4" ] ] }, { "id": "048a2e5ff076bae4", "type": "function", "z": "325e309897bf4538", "name": "parse end time data", "func": "return {\n payload: String(msg.payload)\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 1200, "wires": [ [ "2dc5b48d55a82a7c", "ee288ff508fa00f2" ] ] }, { "id": "2dc5b48d55a82a7c", "type": "debug", "z": "325e309897bf4538", "name": "endtime 3dprinter", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 710, "y": 1240, "wires": [] }, { "id": "ee288ff508fa00f2", "type": "influxdb out", "z": "325e309897bf4538", "influxdb": "d61a7da6caeb26aa", "name": "endtime2Influx", "measurement": "starttime", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "3dprinter", "x": 700, "y": 1160, "wires": [] }, { "id": "f721f6ca3b0cecf9", "type": "mqtt in", "z": "325e309897bf4538", "name": "", "topic": "microfactory/3dprinter", "qos": "2", "datatype": "auto-detect", "broker": "4cf36a44b74caee5", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 120, "y": 1780, "wires": [ [ "457e27536f3374c3" ] ] }, { "id": "de4f15d4a930ac7c", "type": "mqtt in", "z": "325e309897bf4538", "name": "", "topic": "inmachines/3dprinter/filename", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 140, "y": 1740, "wires": [ [ "f801ca46ae96ee13" ] ] }, { "id": "4d79d002fc073730", "type": "mqtt in", "z": "325e309897bf4538", "name": "", "topic": "inmachines/3dprinter/starttime", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 150, "y": 1660, "wires": [ [ "1f71b44724013341" ] ] }, { "id": "a5836d9b547ecc51", "type": "mqtt in", "z": "325e309897bf4538", "name": "", "topic": "inmachines/3dprinter/endtime", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 140, "y": 1700, "wires": [ [ "ec5b4e4a5bfd740c" ] ] }, { "id": "c53493537ea6f7be", "type": "watt2kwh", "z": "325e309897bf4538", "format": "kwh", "maximum": "5", "maximumunit": "mins", "name": "energy", "x": 570, "y": 1520, "wires": [ [ "70b6224a4844669b" ] ] }, { "id": "70b6224a4844669b", "type": "function", "z": "325e309897bf4538", "name": "Calculate Total Energy per Job in KWh", "func": "if (msg.topic == \"starttime\"){\n flow.set(\"energyVal\", 0);\n flow.set(\"starttime\", String(msg.payload));\n}\nelse if (msg.topic == \"filename\"){\n flow.set(\"filename\", msg.payload);\n}\nelse if (msg.topic == \"energy\"){\n var savedVal = flow.get(\"energyVal\")||0;\n savedVal += Number(msg.payload);\n flow.set(\"energyVal\", savedVal);\n}\nelse if (msg.topic == \"endtime\") {\n\n var filename = String(flow.get(\"filename\"));\n var totalEnergy = Number(flow.get(\"energyVal\"));\n var starttime = String(flow.get(\"starttime\"));\n var endtime = String(msg.payload);\n\n if (filename == \"\") endtime = \"\";\n\n flow.set(\"energyVal\", 0);\n flow.set(\"filename\", \"\");\n flow.set(\"starttime\", \"\");\n \n if (filename != \"\"){\n return {\n payload: {\n filename: filename,\n totalEnergy: totalEnergy,\n starttime: starttime,\n endtime: endtime\n }\n }\n };\n}\n", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 710, "y": 1400, "wires": [ [ "03a1941ce253b3b9", "68c658d3edbf677c" ] ] }, { "id": "03a1941ce253b3b9", "type": "debug", "z": "325e309897bf4538", "name": "total energy data 3dprinter", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 790, "y": 1340, "wires": [] }, { "id": "67657741888fde9e", "type": "function", "z": "325e309897bf4538", "name": "parse power data", "func": "return {\n payload: Number(msg.payload),\n topic: \"energy\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 410, "y": 1520, "wires": [ [ "c53493537ea6f7be" ] ] }, { "id": "4285ef3b1208e509", "type": "function", "z": "325e309897bf4538", "name": "parse filename data", "func": "return {\n payload: String(msg.payload),\n topic: \"filename\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 410, "y": 1480, "wires": [ [ "70b6224a4844669b" ] ] }, { "id": "9ac67ad3477863de", "type": "function", "z": "325e309897bf4538", "name": "parse start time data", "func": "return {\n payload: String(msg.payload),\n topic: \"starttime\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 1400, "wires": [ [ "70b6224a4844669b" ] ] }, { "id": "98d996ff21aa233a", "type": "function", "z": "325e309897bf4538", "name": "parse end time data", "func": "return {\n payload: String(msg.payload),\n topic: \"endtime\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 1440, "wires": [ [ "70b6224a4844669b" ] ] }, { "id": "68c658d3edbf677c", "type": "influxdb out", "z": "325e309897bf4538", "influxdb": "d61a7da6caeb26aa", "name": "energy2Influx", "measurement": "energy", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "3dprinter", "x": 820, "y": 1460, "wires": [] }, { "id": "542cedacd11634a0", "type": "mqtt in", "z": "325e309897bf4538", "name": "", "topic": "inmachines/3dprinter/starttime", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 150, "y": 1400, "wires": [ [ "9ac67ad3477863de" ] ] }, { "id": "073af3328a03ced6", "type": "mqtt in", "z": "325e309897bf4538", "name": "", "topic": "inmachines/3dprinter/filename", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 140, "y": 1480, "wires": [ [ "4285ef3b1208e509" ] ] }, { "id": "6ef8324a574f7fb8", "type": "mqtt in", "z": "325e309897bf4538", "name": "", "topic": "inmachines/3dprinter/endtime", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 140, "y": 1440, "wires": [ [ "98d996ff21aa233a" ] ] }, { "id": "1b85b9d5bddbdeeb", "type": "mqtt in", "z": "325e309897bf4538", "name": "", "topic": "inmachines/3dprinter/power", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 140, "y": 1520, "wires": [ [ "67657741888fde9e" ] ] }, { "id": "1f71b44724013341", "type": "function", "z": "325e309897bf4538", "name": "parse start time data", "func": "return {\n payload: String(msg.payload),\n topic: \"starttime\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 1660, "wires": [ [ "cc1955fcad08f307" ] ] }, { "id": "ec5b4e4a5bfd740c", "type": "function", "z": "325e309897bf4538", "name": "parse end time data", "func": "return {\n payload: String(msg.payload),\n topic: \"endtime\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 1700, "wires": [ [ "cc1955fcad08f307" ] ] }, { "id": "f801ca46ae96ee13", "type": "function", "z": "325e309897bf4538", "name": "parse filename data", "func": "return {\n payload: String(msg.payload),\n topic: \"filename\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 410, "y": 1740, "wires": [ [ "cc1955fcad08f307" ] ] }, { "id": "457e27536f3374c3", "type": "function", "z": "325e309897bf4538", "name": "parse filament data", "func": "return {\n payload: Number(msg.payload.value),\n topic: \"filament\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 410, "y": 1780, "wires": [ [ "cc1955fcad08f307" ] ] }, { "id": "cc1955fcad08f307", "type": "function", "z": "325e309897bf4538", "name": "Calculate Total Filament per Job in mm", "func": "if (msg.topic == \"starttime\"){\n flow.set(\"energyVal\", 0);\n flow.set(\"starttime\", String(msg.payload));\n}\nelse if (msg.topic == \"filename\"){\n flow.set(\"filename\", msg.payload);\n}\nelse if (msg.topic == \"filament\"){\n var savedVal = flow.get(\"filamentVal\")||0;\n savedVal += Number(msg.payload);\n flow.set(\"filamentVal\", savedVal);\n}\nelse if (msg.topic == \"endtime\") {\n\n var filename = String(flow.get(\"filename\"));\n var totalFilament = Number(flow.get(\"filamentVal\"));\n var starttime = String(flow.get(\"starttime\"));\n var endtime = String(msg.payload);\n\n if (filename == \"\") endtime = \"\";\n\n flow.set(\"filamentVal\", 0);\n flow.set(\"filename\", \"\");\n flow.set(\"starttime\", \"\");\n \n if (filename != \"\"){\n return {\n payload: {\n filename: filename,\n totalFilament: totalFilament,\n starttime: starttime,\n endtime: endtime\n }\n }\n };\n}\n", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 760, "y": 1660, "wires": [ [ "2ce2d1777768561f", "6df29c651de8a30f" ] ] }, { "id": "2ce2d1777768561f", "type": "influxdb out", "z": "325e309897bf4538", "influxdb": "d61a7da6caeb26aa", "name": "totalFilament2Influx", "measurement": "totalFilament", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "3dprinter", "x": 810, "y": 1720, "wires": [] }, { "id": "6df29c651de8a30f", "type": "debug", "z": "325e309897bf4538", "name": "total filament data 3dprinter", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 840, "y": 1600, "wires": [] }, { "id": "03218742c3ad8813", "type": "mqtt in", "z": "47e5443dc1c29bcd", "name": "", "topic": "inmachines/lasercutter/power", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 160, "y": 100, "wires": [ [ "d5c6cec404621985" ] ] }, { "id": "d5c6cec404621985", "type": "function", "z": "47e5443dc1c29bcd", "name": "parse power data", "func": "var power = Number(msg.payload);\n\nif (power != 0) {\n return {\n payload: power\n }\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 430, "y": 100, "wires": [ [ "bc5a407d180795d6", "717f97209a08d9e6" ] ] }, { "id": "bc5a407d180795d6", "type": "debug", "z": "47e5443dc1c29bcd", "name": "power lasercutter", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 730, "y": 140, "wires": [] }, { "id": "717f97209a08d9e6", "type": "influxdb out", "z": "47e5443dc1c29bcd", "influxdb": "d61a7da6caeb26aa", "name": "power2Influx", "measurement": "power", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "lasercutter", "x": 710, "y": 60, "wires": [] }, { "id": "de46b19aa31d7651", "type": "mqtt in", "z": "47e5443dc1c29bcd", "name": "", "topic": "inmachines/lasercutter/state", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 150, "y": 300, "wires": [ [ "c744b426dfa65eb5" ] ] }, { "id": "c744b426dfa65eb5", "type": "function", "z": "47e5443dc1c29bcd", "name": "parse state data", "func": "return {\n payload: String(msg.payload)\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 300, "wires": [ [ "efd7719d7decb1ea", "2b6011429c5db2cf" ] ] }, { "id": "efd7719d7decb1ea", "type": "debug", "z": "47e5443dc1c29bcd", "name": "state lasercutter", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 720, "y": 340, "wires": [] }, { "id": "2b6011429c5db2cf", "type": "influxdb out", "z": "47e5443dc1c29bcd", "influxdb": "d61a7da6caeb26aa", "name": "state2Influx", "measurement": "state", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "lasercutter", "x": 710, "y": 260, "wires": [] }, { "id": "8526861fd9b04a1e", "type": "mqtt in", "z": "47e5443dc1c29bcd", "name": "", "topic": "inmachines/lasercutter/filename", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 160, "y": 520, "wires": [ [ "608cda03a9c0f11c" ] ] }, { "id": "608cda03a9c0f11c", "type": "function", "z": "47e5443dc1c29bcd", "name": "parse filename data", "func": "return {\n payload: String(msg.payload)\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 430, "y": 520, "wires": [ [ "338d4cf095415f71", "6a44d6248d307f2f" ] ] }, { "id": "338d4cf095415f71", "type": "debug", "z": "47e5443dc1c29bcd", "name": "filename lasercutter", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 730, "y": 560, "wires": [] }, { "id": "6a44d6248d307f2f", "type": "influxdb out", "z": "47e5443dc1c29bcd", "influxdb": "d61a7da6caeb26aa", "name": "filename2Influx", "measurement": "fileaname", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "lasercutter", "x": 720, "y": 480, "wires": [] }, { "id": "04a28afa6d1e805e", "type": "mqtt in", "z": "47e5443dc1c29bcd", "name": "", "topic": "inmachines/lasercutter/starttime", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 150, "y": 720, "wires": [ [ "fced75dd9147f098" ] ] }, { "id": "fced75dd9147f098", "type": "function", "z": "47e5443dc1c29bcd", "name": "parse start time data", "func": "return {\n payload: String(msg.payload)\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 720, "wires": [ [ "77a78efc551054de", "e8414361ec62c0fd" ] ] }, { "id": "77a78efc551054de", "type": "debug", "z": "47e5443dc1c29bcd", "name": "starttime lasercutter", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 710, "y": 760, "wires": [] }, { "id": "e8414361ec62c0fd", "type": "influxdb out", "z": "47e5443dc1c29bcd", "influxdb": "d61a7da6caeb26aa", "name": "starttime2Influx", "measurement": "starttime", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "lasercutter", "x": 700, "y": 680, "wires": [] }, { "id": "3090b2bebdaf9dc4", "type": "mqtt in", "z": "47e5443dc1c29bcd", "name": "", "topic": "inmachines/lasercutter/endtime", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 140, "y": 920, "wires": [ [ "1c4d7a829c5238f5" ] ] }, { "id": "1c4d7a829c5238f5", "type": "function", "z": "47e5443dc1c29bcd", "name": "parse end time data", "func": "return {\n payload: String(msg.payload)\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 920, "wires": [ [ "b44d4302a407dd2b", "dbfb1873d5556ab7" ] ] }, { "id": "b44d4302a407dd2b", "type": "debug", "z": "47e5443dc1c29bcd", "name": "endtime lasercutter", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 710, "y": 960, "wires": [] }, { "id": "dbfb1873d5556ab7", "type": "influxdb out", "z": "47e5443dc1c29bcd", "influxdb": "d61a7da6caeb26aa", "name": "endtime2Influx", "measurement": "starttime", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "lasercutter", "x": 700, "y": 880, "wires": [] }, { "id": "9d7570569e826d67", "type": "watt2kwh", "z": "47e5443dc1c29bcd", "format": "kwh", "maximum": "5", "maximumunit": "mins", "name": "energy", "x": 570, "y": 1260, "wires": [ [ "2a8f5b34aa7515dc" ] ] }, { "id": "2a8f5b34aa7515dc", "type": "function", "z": "47e5443dc1c29bcd", "name": "Calculate Total Energy per Job in KWh", "func": "if (msg.topic == \"starttime\"){\n flow.set(\"energyVal\", 0);\n flow.set(\"starttime\", String(msg.payload));\n}\nelse if (msg.topic == \"filename\"){\n flow.set(\"filename\", msg.payload);\n}\nelse if (msg.topic == \"energy\"){\n var savedVal = flow.get(\"energyVal\")||0;\n savedVal += Number(msg.payload);\n flow.set(\"energyVal\", savedVal);\n}\nelse if (msg.topic == \"endtime\") {\n\n var filename = String(flow.get(\"filename\"));\n var totalEnergy = Number(flow.get(\"energyVal\"));\n var starttime = String(flow.get(\"starttime\"));\n var endtime = String(msg.payload);\n\n if (filename == \"\") endtime = \"\";\n\n flow.set(\"energyVal\", 0);\n flow.set(\"filename\", \"\");\n flow.set(\"starttime\", \"\");\n \n if (filename != \"\"){\n return {\n payload: {\n filename: filename,\n totalEnergy: totalEnergy,\n starttime: starttime,\n endtime: endtime\n }\n }\n };\n}\n", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 710, "y": 1140, "wires": [ [ "17442662acc3cc61", "a18f6f9a24ea9144" ] ] }, { "id": "17442662acc3cc61", "type": "debug", "z": "47e5443dc1c29bcd", "name": "total energy data lasercutter", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 800, "y": 1080, "wires": [] }, { "id": "ef92d9755a6cee93", "type": "mqtt in", "z": "47e5443dc1c29bcd", "name": "", "topic": "inmachines/lasercutter/power", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 160, "y": 1260, "wires": [ [ "168fb8d5dd594bf7" ] ] }, { "id": "137b0ca0a7dd2b65", "type": "mqtt in", "z": "47e5443dc1c29bcd", "name": "", "topic": "inmachines/lasercutter/filename", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 150, "y": 1220, "wires": [ [ "2e896c2ae1ba2354" ] ] }, { "id": "7cedd8b637dc1ff5", "type": "mqtt in", "z": "47e5443dc1c29bcd", "name": "", "topic": "inmachines/lasercutter/starttime", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 150, "y": 1140, "wires": [ [ "74f85843b62cb4e5" ] ] }, { "id": "0d6281f5484dc85f", "type": "mqtt in", "z": "47e5443dc1c29bcd", "name": "", "topic": "inmachines/lasercutter/endtime", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 150, "y": 1180, "wires": [ [ "a9fccfc5db812bc1" ] ] }, { "id": "168fb8d5dd594bf7", "type": "function", "z": "47e5443dc1c29bcd", "name": "parse power data", "func": "return {\n payload: Number(msg.payload),\n topic: \"energy\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 410, "y": 1260, "wires": [ [ "9d7570569e826d67" ] ] }, { "id": "2e896c2ae1ba2354", "type": "function", "z": "47e5443dc1c29bcd", "name": "parse filename data", "func": "return {\n payload: String(msg.payload),\n topic: \"filename\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 410, "y": 1220, "wires": [ [ "2a8f5b34aa7515dc" ] ] }, { "id": "74f85843b62cb4e5", "type": "function", "z": "47e5443dc1c29bcd", "name": "parse start time data", "func": "return {\n payload: String(msg.payload),\n topic: \"starttime\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 1140, "wires": [ [ "2a8f5b34aa7515dc" ] ] }, { "id": "a9fccfc5db812bc1", "type": "function", "z": "47e5443dc1c29bcd", "name": "parse end time data", "func": "return {\n payload: String(msg.payload),\n topic: \"endtime\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 1180, "wires": [ [ "2a8f5b34aa7515dc" ] ] }, { "id": "a18f6f9a24ea9144", "type": "influxdb out", "z": "47e5443dc1c29bcd", "influxdb": "d61a7da6caeb26aa", "name": "energy2Influx", "measurement": "energy", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "lasercutter", "x": 820, "y": 1200, "wires": [] }, { "id": "638c6ded649c614b", "type": "mqtt in", "z": "8ef0902d5920bef2", "name": "", "topic": "inmachines/cnc/power", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 160, "y": 100, "wires": [ [ "10cf598593d1c733" ] ] }, { "id": "10cf598593d1c733", "type": "function", "z": "8ef0902d5920bef2", "name": "parse power data", "func": "var power = Number(msg.payload);\n\nif (power != 0) {\n return {\n payload: power\n }\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 430, "y": 100, "wires": [ [ "0786982790db5744", "c7fb8cedc139159b" ] ] }, { "id": "c7fb8cedc139159b", "type": "debug", "z": "8ef0902d5920bef2", "name": "power cnc", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 710, "y": 140, "wires": [] }, { "id": "0786982790db5744", "type": "influxdb out", "z": "8ef0902d5920bef2", "influxdb": "d61a7da6caeb26aa", "name": "power2Influx", "measurement": "power", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "cnc", "x": 710, "y": 60, "wires": [] }, { "id": "98b5ad128b01848f", "type": "mqtt in", "z": "8ef0902d5920bef2", "name": "", "topic": "inmachines/cnc/state", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 150, "y": 300, "wires": [ [ "53e884adebc7c2b6" ] ] }, { "id": "53e884adebc7c2b6", "type": "function", "z": "8ef0902d5920bef2", "name": "parse state data", "func": "return {\n payload: String(msg.payload)\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 300, "wires": [ [ "9e773dd4015689eb", "ef7d6e2d40f1aa5f" ] ] }, { "id": "9e773dd4015689eb", "type": "debug", "z": "8ef0902d5920bef2", "name": "state cnc", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 700, "y": 340, "wires": [] }, { "id": "ef7d6e2d40f1aa5f", "type": "influxdb out", "z": "8ef0902d5920bef2", "influxdb": "d61a7da6caeb26aa", "name": "state2Influx", "measurement": "state", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "cnc", "x": 710, "y": 260, "wires": [] }, { "id": "7bd4b1807e47ee1d", "type": "mqtt in", "z": "8ef0902d5920bef2", "name": "", "topic": "inmachines/cnc/filename", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 160, "y": 520, "wires": [ [ "cb768f2f0da63c93" ] ] }, { "id": "cb768f2f0da63c93", "type": "function", "z": "8ef0902d5920bef2", "name": "parse filename data", "func": "return {\n payload: String(msg.payload)\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 430, "y": 520, "wires": [ [ "cb4c266a29ef1440", "1cc4882458d1f319" ] ] }, { "id": "cb4c266a29ef1440", "type": "debug", "z": "8ef0902d5920bef2", "name": "filename cnc", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 710, "y": 560, "wires": [] }, { "id": "1cc4882458d1f319", "type": "influxdb out", "z": "8ef0902d5920bef2", "influxdb": "d61a7da6caeb26aa", "name": "filename2Influx", "measurement": "fileaname", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "cnc", "x": 720, "y": 480, "wires": [] }, { "id": "885cd93aa8f7ef38", "type": "mqtt in", "z": "8ef0902d5920bef2", "name": "", "topic": "inmachines/cnc/starttime", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 150, "y": 720, "wires": [ [ "2257476829ab9742" ] ] }, { "id": "2257476829ab9742", "type": "function", "z": "8ef0902d5920bef2", "name": "parse start time data", "func": "return {\n payload: String(msg.payload)\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 720, "wires": [ [ "217def6e60f47b93", "6d5919e96c3906fd" ] ] }, { "id": "217def6e60f47b93", "type": "debug", "z": "8ef0902d5920bef2", "name": "starttime cnc", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 690, "y": 760, "wires": [] }, { "id": "6d5919e96c3906fd", "type": "influxdb out", "z": "8ef0902d5920bef2", "influxdb": "d61a7da6caeb26aa", "name": "starttime2Influx", "measurement": "starttime", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "cnc", "x": 700, "y": 680, "wires": [] }, { "id": "2293ee44337863a9", "type": "mqtt in", "z": "8ef0902d5920bef2", "name": "", "topic": "inmachines/cnc/endtime", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 140, "y": 920, "wires": [ [ "8e5574ad90cc3b10" ] ] }, { "id": "8e5574ad90cc3b10", "type": "function", "z": "8ef0902d5920bef2", "name": "parse end time data", "func": "return {\n payload: String(msg.payload)\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 920, "wires": [ [ "25d21239196d7faa", "28113e349797c645" ] ] }, { "id": "25d21239196d7faa", "type": "debug", "z": "8ef0902d5920bef2", "name": "endtime cnc", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 690, "y": 960, "wires": [] }, { "id": "28113e349797c645", "type": "influxdb out", "z": "8ef0902d5920bef2", "influxdb": "d61a7da6caeb26aa", "name": "endtime2Influx", "measurement": "starttime", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "cnc", "x": 700, "y": 880, "wires": [] }, { "id": "b0a15edf8fe83d66", "type": "watt2kwh", "z": "8ef0902d5920bef2", "format": "kwh", "maximum": "5", "maximumunit": "mins", "name": "energy", "x": 570, "y": 1340, "wires": [ [ "8fcc98c839a1453f" ] ] }, { "id": "8fcc98c839a1453f", "type": "function", "z": "8ef0902d5920bef2", "name": "Calculate Total Energy per Job in KWh", "func": "if (msg.topic == \"starttime\"){\n flow.set(\"energyVal\", 0);\n flow.set(\"starttime\", String(msg.payload));\n}\nelse if (msg.topic == \"filename\"){\n flow.set(\"filename\", msg.payload);\n}\nelse if (msg.topic == \"energy\"){\n var savedVal = flow.get(\"energyVal\")||0;\n savedVal += Number(msg.payload);\n flow.set(\"energyVal\", savedVal);\n}\nelse if (msg.topic == \"endtime\") {\n\n var filename = String(flow.get(\"filename\"));\n var totalEnergy = Number(flow.get(\"energyVal\"));\n var starttime = String(flow.get(\"starttime\"));\n var endtime = String(msg.payload);\n\n if (filename == \"\") endtime = \"\";\n\n flow.set(\"energyVal\", 0);\n flow.set(\"filename\", \"\");\n flow.set(\"starttime\", \"\");\n \n if (filename != \"\"){\n return {\n payload: {\n filename: filename,\n totalEnergy: totalEnergy,\n starttime: starttime,\n endtime: endtime\n }\n }\n };\n}\n", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 750, "y": 1220, "wires": [ [ "9eab0627c1031cf2", "082316617296f409" ] ] }, { "id": "9eab0627c1031cf2", "type": "debug", "z": "8ef0902d5920bef2", "name": "total energy data cnc", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 820, "y": 1160, "wires": [] }, { "id": "082316617296f409", "type": "influxdb out", "z": "8ef0902d5920bef2", "influxdb": "d61a7da6caeb26aa", "name": "energy2Influx", "measurement": "energy", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "cnc", "x": 900, "y": 1280, "wires": [] }, { "id": "96f6eaa5c9904074", "type": "mqtt in", "z": "8ef0902d5920bef2", "name": "", "topic": "inmachines/cnc/power", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 180, "y": 1340, "wires": [ [ "0d0ec5e5d29889ce" ] ] }, { "id": "4c227772c7eca826", "type": "mqtt in", "z": "8ef0902d5920bef2", "name": "", "topic": "inmachines/cnc/filename", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 170, "y": 1300, "wires": [ [ "bcc39f1191b7d553" ] ] }, { "id": "4011677e0ba8e6b1", "type": "mqtt in", "z": "8ef0902d5920bef2", "name": "", "topic": "inmachines/cnc/starttime", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 170, "y": 1220, "wires": [ [ "6b42430ab3b72380" ] ] }, { "id": "311050b52addd82f", "type": "mqtt in", "z": "8ef0902d5920bef2", "name": "", "topic": "inmachines/cnc/endtime", "qos": "2", "datatype": "auto-detect", "broker": "7ce136dbb8c897d1", "nl": false, "rap": true, "rh": 0, "inputs": 0, "x": 170, "y": 1260, "wires": [ [ "e7a627de85bde4b5" ] ] }, { "id": "0d0ec5e5d29889ce", "type": "function", "z": "8ef0902d5920bef2", "name": "parse power data", "func": "return {\n payload: Number(msg.payload),\n topic: \"energy\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 410, "y": 1340, "wires": [ [ "b0a15edf8fe83d66" ] ] }, { "id": "bcc39f1191b7d553", "type": "function", "z": "8ef0902d5920bef2", "name": "parse filename data", "func": "return {\n payload: String(msg.payload),\n topic: \"filename\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 410, "y": 1300, "wires": [ [ "8fcc98c839a1453f" ] ] }, { "id": "6b42430ab3b72380", "type": "function", "z": "8ef0902d5920bef2", "name": "parse start time data", "func": "return {\n payload: String(msg.payload),\n topic: \"starttime\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 1220, "wires": [ [ "8fcc98c839a1453f" ] ] }, { "id": "e7a627de85bde4b5", "type": "function", "z": "8ef0902d5920bef2", "name": "parse end time data", "func": "return {\n payload: String(msg.payload),\n topic: \"endtime\"\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 420, "y": 1260, "wires": [ [ "8fcc98c839a1453f" ] ] }, { "id": "d62baedc.ded46", "type": "debug", "z": "306896b1c1761662", "name": "", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 690, "y": 120, "wires": [] }, { "id": "74280b50.f704a4", "type": "inject", "z": "306896b1c1761662", "name": "1 kW feed", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "10", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "1000", "payloadType": "str", "x": 370, "y": 120, "wires": [ [ "5eb66b22.1a4de4" ] ] }, { "id": "5eb66b22.1a4de4", "type": "watt2kwh", "z": "306896b1c1761662", "format": "kwh", "maximum": "5", "maximumunit": "mins", "name": "", "x": 530, "y": 120, "wires": [ [ "d62baedc.ded46" ] ] }, { "id": "0a53eaae9809ca5d", "type": "inject", "z": "306896b1c1761662", "name": "1 kW feed", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "energy", "payload": "100", "payloadType": "str", "x": 340, "y": 740, "wires": [ [ "b8a15b474b58d57e" ] ] }, { "id": "b8a15b474b58d57e", "type": "watt2kwh", "z": "306896b1c1761662", "format": "kwh", "maximum": "5", "maximumunit": "mins", "name": "energy", "x": 490, "y": 740, "wires": [ [ "49376315951ce5fa", "ec96c9fe97b07be6", "566d67059f548be9" ] ] }, { "id": "49376315951ce5fa", "type": "function", "z": "306896b1c1761662", "name": "Store kwh", "func": "if (msg.topic == \"starttime\"){\n flow.set(\"energyVal\", 0);\n flow.set(\"starttime\", String(msg.payload));\n}\nelse if (msg.topic == \"filename\"){\n flow.set(\"filename\", msg.payload);\n}\nelse if (msg.topic == \"energy\"){\n var savedVal = flow.get(\"energyVal\")||0;\n savedVal += Number(msg.payload);\n flow.set(\"energyVal\", savedVal);\n}\nelse if (msg.topic == \"endtime\") {\n\n var filename = String(flow.get(\"filename\"));\n var totalEnergy = Number(flow.get(\"energyVal\"));\n var starttime = String(flow.get(\"starttime\"));\n var endtime = String(msg.payload);\n\n if (filename == \"\") endtime = \"\";\n\n flow.set(\"energyVal\", 0);\n flow.set(\"filename\", \"\");\n flow.set(\"starttime\", \"\");\n \n if (filename != \"\"){\n return {\n payload: {\n filename: filename,\n totalEnergy: totalEnergy,\n starttime: starttime,\n endtime: endtime\n }\n }\n };\n}\n\n\n\n\n// var inputVal = msg.payload;\n// return {\n// payload: Number(inputVal)\n// }\n// if (inputVal == \"reset\"){\n// flow.set(\"energyVal\",0); \n// } \n// else {\n// var savedVal = flow.get('energyVal')||0;\n// savedVal += inputVal;\n// flow.set(\"energyVal\",savedVal);\n// msg.payload = savedVal;\n// return msg;\n// }", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 680, "y": 500, "wires": [ [ "429b6abaf0a24b24" ] ] }, { "id": "429b6abaf0a24b24", "type": "debug", "z": "306896b1c1761662", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "x": 830, "y": 500, "wires": [] }, { "id": "a22c25030b9db89c", "type": "inject", "z": "306896b1c1761662", "name": "starttime", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "starttime", "payload": "", "payloadType": "date", "x": 340, "y": 320, "wires": [ [ "49376315951ce5fa", "4e0ba29caa8ba379", "9b027270db41cce4" ] ] }, { "id": "205d111a44376ad3", "type": "inject", "z": "306896b1c1761662", "name": "endtime", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "endtime", "payload": "", "payloadType": "date", "x": 320, "y": 460, "wires": [ [ "49376315951ce5fa", "066026e31d385e24", "b18e4570d774eeb7" ] ] }, { "id": "e467f8636f87a598", "type": "inject", "z": "306896b1c1761662", "name": "filename", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "filename", "payload": "test.gcode", "payloadType": "str", "x": 340, "y": 600, "wires": [ [ "49376315951ce5fa", "0cb3904156cccc89", "f4618e8839ee98c9" ] ] }, { "id": "ec96c9fe97b07be6", "type": "debug", "z": "306896b1c1761662", "name": "energy payload", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 360, "y": 780, "wires": [] }, { "id": "4e0ba29caa8ba379", "type": "debug", "z": "306896b1c1761662", "name": "starttime payload", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 350, "y": 360, "wires": [] }, { "id": "066026e31d385e24", "type": "debug", "z": "306896b1c1761662", "name": "endtime payload", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 350, "y": 500, "wires": [] }, { "id": "0cb3904156cccc89", "type": "debug", "z": "306896b1c1761662", "name": "filename payload", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 350, "y": 640, "wires": [] }, { "id": "9b027270db41cce4", "type": "debug", "z": "306896b1c1761662", "name": "starttime topic", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "topic", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 340, "y": 400, "wires": [] }, { "id": "566d67059f548be9", "type": "debug", "z": "306896b1c1761662", "name": "energy topic", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "topic", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 350, "y": 820, "wires": [] }, { "id": "f4618e8839ee98c9", "type": "debug", "z": "306896b1c1761662", "name": "filename topic", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "topic", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 340, "y": 680, "wires": [] }, { "id": "b18e4570d774eeb7", "type": "debug", "z": "306896b1c1761662", "name": "endtime topic", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "topic", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 340, "y": 540, "wires": [] }, { "id": "09892d432d23febd", "type": "inject", "z": "306896b1c1761662", "name": "1 kW feed", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "energy", "payload": "100", "payloadType": "str", "x": 320, "y": 1120, "wires": [ [ "ea9bcaa0f0ec0b94" ] ] }, { "id": "ea9bcaa0f0ec0b94", "type": "watt2kwh", "z": "306896b1c1761662", "format": "kwh", "maximum": "5", "maximumunit": "mins", "name": "energy", "x": 470, "y": 1120, "wires": [ [ "cfde7a2beb7bd7b1" ] ] }, { "id": "cfde7a2beb7bd7b1", "type": "function", "z": "306896b1c1761662", "name": "Store kwh", "func": "if (msg.topic == \"starttime\"){\n flow.set(\"energyVal\", 0);\n flow.set(\"starttime\", String(msg.payload));\n}\nelse if (msg.topic == \"filename\"){\n flow.set(\"filename\", msg.payload);\n}\nelse if (msg.topic == \"energy\"){\n var savedVal = flow.get(\"energyVal\")||0;\n savedVal += Number(msg.payload);\n flow.set(\"energyVal\", savedVal);\n}\nelse if (msg.topic == \"endtime\") {\n\n var filename = String(flow.get(\"filename\"));\n var totalEnergy = Number(flow.get(\"energyVal\"));\n var starttime = String(flow.get(\"starttime\"));\n var endtime = String(msg.payload);\n\n if (filename == \"\") endtime = \"\";\n\n flow.set(\"energyVal\", 0);\n flow.set(\"filename\", \"\");\n flow.set(\"starttime\", \"\");\n \n if (filename != \"\"){\n return {\n payload: {\n filename: filename,\n totalEnergy: totalEnergy,\n starttime: starttime,\n endtime: endtime\n }\n }\n };\n}\n\n\n\n\n// var inputVal = msg.payload;\n// return {\n// payload: Number(inputVal)\n// }\n// if (inputVal == \"reset\"){\n// flow.set(\"energyVal\",0); \n// } \n// else {\n// var savedVal = flow.get('energyVal')||0;\n// savedVal += inputVal;\n// flow.set(\"energyVal\",savedVal);\n// msg.payload = savedVal;\n// return msg;\n// }", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 660, "y": 1060, "wires": [ [ "6279be3cba18b520", "7ba6782b58c6f6f9" ] ] }, { "id": "6279be3cba18b520", "type": "debug", "z": "306896b1c1761662", "name": "total energy data", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 830, "y": 1000, "wires": [] }, { "id": "2d61f4f33de55817", "type": "inject", "z": "306896b1c1761662", "name": "starttime", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "starttime", "payload": "", "payloadType": "date", "x": 460, "y": 1000, "wires": [ [ "cfde7a2beb7bd7b1" ] ] }, { "id": "a021859dc895ce1c", "type": "inject", "z": "306896b1c1761662", "name": "endtime", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "endtime", "payload": "", "payloadType": "date", "x": 460, "y": 1040, "wires": [ [ "cfde7a2beb7bd7b1" ] ] }, { "id": "7aa25b20b1aba7e7", "type": "inject", "z": "306896b1c1761662", "name": "filename", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "filename", "payload": "test.gcode", "payloadType": "str", "x": 460, "y": 1080, "wires": [ [ "cfde7a2beb7bd7b1" ] ] }, { "id": "7ba6782b58c6f6f9", "type": "influxdb out", "z": "306896b1c1761662", "influxdb": "d61a7da6caeb26aa", "name": "energy2Influx", "measurement": "energy", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "Curious Community Labs", "bucket": "cnc", "x": 840, "y": 1060, "wires": [] } ]