From 7a6825a80e1c8f472a88168cb5860cc979425719 Mon Sep 17 00:00:00 2001 From: "p.vanderwilt" Date: Mon, 4 Aug 2025 11:45:00 +0200 Subject: [PATCH] Add flows document --- flows/asm3_flows.json | 1763 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1763 insertions(+) create mode 100644 flows/asm3_flows.json diff --git a/flows/asm3_flows.json b/flows/asm3_flows.json new file mode 100644 index 0000000..7f6d216 --- /dev/null +++ b/flows/asm3_flows.json @@ -0,0 +1,1763 @@ +[ + { + "id": "31bba0914516dd85", + "type": "tab", + "label": "Flow 2", + "disabled": true, + "info": "", + "env": [] + }, + { + "id": "0abdac5260d9553e", + "type": "tab", + "label": "Flow 1", + "disabled": false, + "info": "", + "env": [] + }, + { + "id": "394f713d4e71366c", + "type": "tab", + "label": "Flow 4", + "disabled": true, + "info": "", + "env": [] + }, + { + "id": "2c8bcaa0046b4323", + "type": "ui-theme", + "name": "Default", + "colors": { + "surface": "#ffffff", + "primary": "#0094ce", + "bgPage": "#eeeeee", + "groupBg": "#ffffff", + "groupOutline": "#cccccc" + }, + "sizes": { + "density": "default", + "pagePadding": "12px", + "groupGap": "12px", + "groupBorderRadius": "4px", + "widgetGap": "12px" + } + }, + { + "id": "ac25cd90dc999a5a", + "type": "ui-base", + "name": "UI Name", + "path": "/dashboard", + "appIcon": "", + "includeClientData": true, + "acceptsClientConfig": [ + "ui-notification", + "ui-control" + ], + "showPathInSidebar": false, + "headerContent": "page", + "navigationStyle": "default", + "titleBarStyle": "default", + "showReconnectNotification": true, + "notificationDisplayTime": 1, + "showDisconnectNotification": true, + "allowInstall": true + }, + { + "id": "ec4a923c5ead6278", + "type": "ui-page", + "name": "Dashboard", + "ui": "ac25cd90dc999a5a", + "path": "/page1", + "icon": "home", + "layout": "grid", + "theme": "2c8bcaa0046b4323", + "breakpoints": [ + { + "name": "Default", + "px": "0", + "cols": "3" + }, + { + "name": "Tablet", + "px": "576", + "cols": "6" + }, + { + "name": "Small Desktop", + "px": "768", + "cols": "9" + }, + { + "name": "Desktop", + "px": "1024", + "cols": "12" + } + ], + "order": -1, + "className": "", + "visible": "true", + "disabled": "false" + }, + { + "id": "58b5e9368ec5774b", + "type": "ui-group", + "name": "Group 1", + "page": "ec4a923c5ead6278", + "width": 6, + "height": 1, + "order": -1, + "showTitle": true, + "className": "", + "visible": "true", + "disabled": "false", + "groupType": "default" + }, + { + "id": "14172c57f4c6ff14", + "type": "ui-group", + "name": "Group 2", + "page": "ec4a923c5ead6278", + "width": 6, + "height": 1, + "order": -1, + "showTitle": true, + "className": "", + "visible": "true", + "disabled": "false", + "groupType": "default" + }, + { + "id": "ca564642bfc5606c", + "type": "ui-page", + "name": "PFR", + "ui": "ac25cd90dc999a5a", + "path": "/page2", + "icon": "home", + "layout": "grid", + "theme": "2c8bcaa0046b4323", + "breakpoints": [ + { + "name": "Default", + "px": "0", + "cols": "3" + }, + { + "name": "Tablet", + "px": "576", + "cols": "6" + }, + { + "name": "Small Desktop", + "px": "768", + "cols": "9" + }, + { + "name": "Desktop", + "px": "1024", + "cols": "12" + } + ], + "order": -1, + "className": "", + "visible": "true", + "disabled": "false" + }, + { + "id": "ae38454098a37db0", + "type": "ui-group", + "name": "Group 3", + "page": "ca564642bfc5606c", + "width": 6, + "height": 1, + "order": -1, + "showTitle": true, + "className": "", + "visible": "true", + "disabled": "false", + "groupType": "default" + }, + { + "id": "de8b029d69f26c0e", + "type": "ui-group", + "name": "Group 4", + "page": "ca564642bfc5606c", + "width": 6, + "height": 1, + "order": -1, + "showTitle": true, + "className": "", + "visible": "true", + "disabled": "false", + "groupType": "default" + }, + { + "id": "f7803caf86a911f6", + "type": "inject", + "z": "31bba0914516dd85", + "name": "", + "props": [ + { + "p": "timestamp", + "v": "", + "vt": "date" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "1", + "crontab": "", + "once": true, + "onceDelay": 0.1, + "topic": "clock", + "x": 200, + "y": 340, + "wires": [ + [ + "5266f4e09e7b919b" + ] + ] + }, + { + "id": "98f5ffa4bed3b99f", + "type": "inject", + "z": "31bba0914516dd85", + "name": "Influx composition", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + }, + { + "p": "timestamp", + "v": "", + "vt": "date" + } + ], + "repeat": "", + "crontab": "", + "once": true, + "onceDelay": "5", + "topic": "Fluent", + "payload": "{\"inlet\":0,\"F\":1000,\"C\":[0,30,100,16,0,0,5,25,75,30,0,0,125]}", + "payloadType": "json", + "x": 170, + "y": 260, + "wires": [ + [ + "5266f4e09e7b919b" + ] + ] + }, + { + "id": "f1b3cffbd2d38473", + "type": "ui-chart", + "z": "31bba0914516dd85", + "group": "14172c57f4c6ff14", + "name": "Effluent", + "label": "Effluent", + "order": 9007199254740991, + "chartType": "line", + "category": "Series", + "categoryType": "property", + "xAxisLabel": "", + "xAxisProperty": "", + "xAxisPropertyType": "timestamp", + "xAxisType": "time", + "xAxisFormat": "", + "xAxisFormatType": "auto", + "xmin": "", + "xmax": "", + "yAxisLabel": "", + "yAxisProperty": "Y", + "yAxisPropertyType": "property", + "ymin": "", + "ymax": "", + "bins": 10, + "action": "append", + "stackSeries": false, + "pointShape": "circle", + "pointRadius": 4, + "showLegend": true, + "removeOlder": "8", + "removeOlderUnit": "3600", + "removeOlderPoints": "2000", + "colors": [ + "#0095ff", + "#ff0000", + "#ff7f0e", + "#2ca02c", + "#a347e1", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "textColor": [ + "#666666" + ], + "textColorDefault": true, + "gridColor": [ + "#e5e5e5" + ], + "gridColorDefault": true, + "width": 6, + "height": 8, + "className": "", + "interpolation": "linear", + "x": 1420, + "y": 300, + "wires": [ + [] + ] + }, + { + "id": "fc4aa2928bdbe228", + "type": "function", + "z": "31bba0914516dd85", + "name": "Data_converter", + "func": "if (msg.topic != \"Fluent\") {\n return;\n}\n\nconst [S_O, S_I, S_S, S_NH, S_N2, S_NO, S_HCO, X_I, X_S, X_H, X_STO, X_A, X_TS] = msg.payload.C;\n\nmsg = {payload: [\n { \"Series\": \"S_O\", \"Y\": S_O},\n { \"Series\": \"S_I\", \"Y\": S_I},\n { \"Series\": \"S_S\", \"Y\": S_S},\n { \"Series\": \"S_NH\", \"Y\": S_NH},\n { \"Series\": \"S_N2\", \"Y\": S_N2},\n { \"Series\": \"S_NO\", \"Y\": S_NO},\n { \"Series\": \"S_HCO\", \"Y\": S_HCO}\n ]};\n\nreturn msg;", + "outputs": 1, + "timeout": 0, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1220, + "y": 300, + "wires": [ + [ + "f1b3cffbd2d38473" + ] + ] + }, + { + "id": "e955d0c2d3246c4b", + "type": "ui-chart", + "z": "31bba0914516dd85", + "group": "58b5e9368ec5774b", + "name": "Anoxic reactor", + "label": "Anoxic reactor", + "order": 9007199254740991, + "chartType": "line", + "category": "Series", + "categoryType": "property", + "xAxisLabel": "", + "xAxisProperty": "", + "xAxisPropertyType": "timestamp", + "xAxisType": "time", + "xAxisFormat": "", + "xAxisFormatType": "auto", + "xmin": "", + "xmax": "", + "yAxisLabel": "", + "yAxisProperty": "Y", + "yAxisPropertyType": "property", + "ymin": "", + "ymax": "", + "bins": 10, + "action": "append", + "stackSeries": false, + "pointShape": "circle", + "pointRadius": 4, + "showLegend": true, + "removeOlder": "8", + "removeOlderUnit": "3600", + "removeOlderPoints": "2000", + "colors": [ + "#0095ff", + "#ff0000", + "#ff7f0e", + "#2ca02c", + "#a347e1", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "textColor": [ + "#666666" + ], + "textColorDefault": true, + "gridColor": [ + "#e5e5e5" + ], + "gridColorDefault": true, + "width": 6, + "height": 8, + "className": "", + "interpolation": "linear", + "x": 1040, + "y": 180, + "wires": [ + [] + ] + }, + { + "id": "59f0787fadf99939", + "type": "function", + "z": "31bba0914516dd85", + "name": "Data_converter", + "func": "if (msg.topic != \"Fluent\") {\n return;\n}\n\nconst [S_O, S_I, S_S, S_NH, S_N2, S_NO, S_HCO, X_I, X_S, X_H, X_STO, X_A, X_TS] = msg.payload.C;\n\nmsg = {payload: [\n { \"Series\": \"S_O\", \"Y\": S_O},\n { \"Series\": \"S_I\", \"Y\": S_I},\n { \"Series\": \"S_S\", \"Y\": S_S},\n { \"Series\": \"S_NH\", \"Y\": S_NH},\n { \"Series\": \"S_N2\", \"Y\": S_N2},\n { \"Series\": \"S_NO\", \"Y\": S_NO},\n { \"Series\": \"S_HCO\", \"Y\": S_HCO},\n { \"Series\": \"X_I\", \"Y\": X_I},\n { \"Series\": \"X_S\", \"Y\": X_S},\n { \"Series\": \"X_H\", \"Y\": X_H},\n { \"Series\": \"X_STO\", \"Y\": X_STO},\n { \"Series\": \"X_A\", \"Y\": X_A},\n { \"Series\": \"X_TS\", \"Y\": X_TS}\n ]};\n\nreturn msg;", + "outputs": 1, + "timeout": 0, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 820, + "y": 180, + "wires": [ + [ + "e955d0c2d3246c4b" + ] + ] + }, + { + "id": "bb63e864735f963f", + "type": "ui-chart", + "z": "31bba0914516dd85", + "group": "14172c57f4c6ff14", + "name": "Sludge composition", + "label": "Sludge composition", + "order": 9007199254740991, + "chartType": "line", + "category": "Series", + "categoryType": "property", + "xAxisLabel": "", + "xAxisProperty": "", + "xAxisPropertyType": "timestamp", + "xAxisType": "time", + "xAxisFormat": "", + "xAxisFormatType": "auto", + "xmin": "", + "xmax": "", + "yAxisLabel": "", + "yAxisProperty": "Y", + "yAxisPropertyType": "property", + "ymin": "", + "ymax": "", + "bins": 10, + "action": "append", + "stackSeries": false, + "pointShape": "circle", + "pointRadius": 4, + "showLegend": true, + "removeOlder": "8", + "removeOlderUnit": "3600", + "removeOlderPoints": "2000", + "colors": [ + "#0095ff", + "#ff0000", + "#ff7f0e", + "#2ca02c", + "#a347e1", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "textColor": [ + "#666666" + ], + "textColorDefault": true, + "gridColor": [ + "#e5e5e5" + ], + "gridColorDefault": true, + "width": 6, + "height": 8, + "className": "", + "interpolation": "linear", + "x": 1450, + "y": 340, + "wires": [ + [] + ] + }, + { + "id": "ca96bcb7f32f011f", + "type": "function", + "z": "31bba0914516dd85", + "name": "Data_converter", + "func": "if (msg.topic != \"Fluent\") {\n return;\n}\n\nconst [S_O, S_I, S_S, S_NH, S_N2, S_NO, S_HCO, X_I, X_S, X_H, X_STO, X_A, X_TS] = msg.payload.C;\n\nmsg = {payload: [\n { \"Series\": \"X_I\", \"Y\": X_I},\n { \"Series\": \"X_S\", \"Y\": X_S},\n { \"Series\": \"X_H\", \"Y\": X_H},\n { \"Series\": \"X_STO\", \"Y\": X_STO},\n { \"Series\": \"X_A\", \"Y\": X_A},\n { \"Series\": \"X_TS\", \"Y\": X_TS}\n ]};\n\nreturn msg;", + "outputs": 1, + "timeout": 0, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1220, + "y": 340, + "wires": [ + [ + "bb63e864735f963f" + ] + ] + }, + { + "id": "9327869b411c3063", + "type": "ui-chart", + "z": "31bba0914516dd85", + "group": "58b5e9368ec5774b", + "name": "Aerobic reactor", + "label": "Aerobic reactor / recirculation", + "order": 9007199254740991, + "chartType": "line", + "category": "Series", + "categoryType": "property", + "xAxisLabel": "", + "xAxisProperty": "", + "xAxisPropertyType": "timestamp", + "xAxisType": "time", + "xAxisFormat": "", + "xAxisFormatType": "auto", + "xmin": "", + "xmax": "", + "yAxisLabel": "", + "yAxisProperty": "Y", + "yAxisPropertyType": "property", + "ymin": "", + "ymax": "", + "bins": 10, + "action": "append", + "stackSeries": false, + "pointShape": "circle", + "pointRadius": 4, + "showLegend": true, + "removeOlder": "8", + "removeOlderUnit": "3600", + "removeOlderPoints": "2000", + "colors": [ + "#0095ff", + "#ff0000", + "#ff7f0e", + "#2ca02c", + "#a347e1", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "textColor": [ + "#666666" + ], + "textColorDefault": true, + "gridColor": [ + "#e5e5e5" + ], + "gridColorDefault": true, + "width": 6, + "height": 8, + "className": "", + "interpolation": "linear", + "x": 1440, + "y": 260, + "wires": [ + [] + ] + }, + { + "id": "3cb7fec9537ac405", + "type": "function", + "z": "31bba0914516dd85", + "name": "Data_converter", + "func": "if (msg.topic != \"Fluent\") {\n return;\n}\n\nconst [S_O, S_I, S_S, S_NH, S_N2, S_NO, S_HCO, X_I, X_S, X_H, X_STO, X_A, X_TS] = msg.payload.C;\n\nmsg = {payload: [\n { \"Series\": \"S_O\", \"Y\": S_O},\n { \"Series\": \"S_I\", \"Y\": S_I},\n { \"Series\": \"S_S\", \"Y\": S_S},\n { \"Series\": \"S_NH\", \"Y\": S_NH},\n { \"Series\": \"S_N2\", \"Y\": S_N2},\n { \"Series\": \"S_NO\", \"Y\": S_NO},\n { \"Series\": \"S_HCO\", \"Y\": S_HCO},\n { \"Series\": \"X_I\", \"Y\": X_I},\n { \"Series\": \"X_S\", \"Y\": X_S},\n { \"Series\": \"X_H\", \"Y\": X_H},\n { \"Series\": \"X_STO\", \"Y\": X_STO},\n { \"Series\": \"X_A\", \"Y\": X_A},\n { \"Series\": \"X_TS\", \"Y\": X_TS}\n ]};\n\nreturn msg;", + "outputs": 1, + "timeout": 0, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1220, + "y": 260, + "wires": [ + [ + "9327869b411c3063" + ] + ] + }, + { + "id": "640ecab878ee623a", + "type": "debug", + "z": "31bba0914516dd85", + "name": "Sludge removal", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 1160, + "y": 420, + "wires": [] + }, + { + "id": "8e1117ff307f949b", + "type": "debug", + "z": "31bba0914516dd85", + "name": "Sludge recirculation", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 930, + "y": 420, + "wires": [] + }, + { + "id": "d9e3b28718762905", + "type": "debug", + "z": "31bba0914516dd85", + "name": "Effluent", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 680, + "y": 420, + "wires": [] + }, + { + "id": "9534da473265bb6a", + "type": "recirculation-pump", + "z": "31bba0914516dd85", + "name": "", + "F2": "50", + "inlet": "2", + "x": 930, + "y": 340, + "wires": [ + [ + "ca96bcb7f32f011f", + "640ecab878ee623a" + ], + [ + "8e1117ff307f949b", + "5266f4e09e7b919b" + ] + ] + }, + { + "id": "038a9d67ce069678", + "type": "settling-basin", + "z": "31bba0914516dd85", + "name": "", + "TS_set": "5400", + "inlet": "1", + "x": 700, + "y": 340, + "wires": [ + [ + "fc4aa2928bdbe228", + "d9e3b28718762905" + ], + [ + "9534da473265bb6a" + ] + ] + }, + { + "id": "1cb62ce7d6e2b362", + "type": "recirculation-pump", + "z": "31bba0914516dd85", + "name": "", + "F2": "3000", + "inlet": 1, + "x": 470, + "y": 340, + "wires": [ + [ + "038a9d67ce069678" + ], + [ + "5266f4e09e7b919b" + ] + ] + }, + { + "id": "2ac1635a77880b09", + "type": "advancedReactor", + "z": "31bba0914516dd85", + "name": "Aerobic 2", + "reactor_type": "CSTR", + "volume": "400", + "length": "", + "resolution_L": "", + "alpha": "", + "n_inlets": 1, + "kla": "7500", + "S_O_init": 0, + "S_I_init": 30, + "S_S_init": 100, + "S_NH_init": 16, + "S_N2_init": 0, + "S_NO_init": 0, + "S_HCO_init": 5, + "X_I_init": 25, + "X_S_init": 75, + "X_H_init": 30, + "X_STO_init": 0, + "X_A_init": 0.001, + "X_TS_init": 125.0009, + "x": 960, + "y": 260, + "wires": [ + [ + "3cb7fec9537ac405", + "1cb62ce7d6e2b362" + ], + [], + [] + ] + }, + { + "id": "5f39b76fc9528f75", + "type": "advancedReactor", + "z": "31bba0914516dd85", + "name": "Aerobic 1", + "reactor_type": "CSTR", + "volume": "400", + "length": "", + "resolution_L": "", + "alpha": "", + "n_inlets": 1, + "kla": "7500", + "S_O_init": 0, + "S_I_init": 30, + "S_S_init": 100, + "S_NH_init": 16, + "S_N2_init": 0, + "S_NO_init": 0, + "S_HCO_init": 5, + "X_I_init": 25, + "X_S_init": 75, + "X_H_init": 30, + "X_STO_init": 0, + "X_A_init": "30", + "X_TS_init": "132", + "x": 780, + "y": 260, + "wires": [ + [], + [], + [ + "2ac1635a77880b09" + ] + ] + }, + { + "id": "b38f1a7b0ab6a7c7", + "type": "advancedReactor", + "z": "31bba0914516dd85", + "name": "Anoxic 2", + "reactor_type": "CSTR", + "volume": "400", + "length": "", + "resolution_L": "", + "alpha": "", + "n_inlets": 1, + "kla": "", + "S_O_init": 0, + "S_I_init": 30, + "S_S_init": 100, + "S_NH_init": 16, + "S_N2_init": 0, + "S_NO_init": 0, + "S_HCO_init": 5, + "X_I_init": 25, + "X_S_init": 75, + "X_H_init": 30, + "X_STO_init": 0, + "X_A_init": 0.001, + "X_TS_init": 125.0009, + "x": 600, + "y": 260, + "wires": [ + [ + "59f0787fadf99939" + ], + [], + [ + "5f39b76fc9528f75" + ] + ] + }, + { + "id": "5266f4e09e7b919b", + "type": "advancedReactor", + "z": "31bba0914516dd85", + "name": "Anoxic 1", + "reactor_type": "CSTR", + "volume": "400", + "length": "", + "resolution_L": "", + "alpha": "", + "n_inlets": "3", + "kla": "", + "S_O_init": 0, + "S_I_init": 30, + "S_S_init": 100, + "S_NH_init": 16, + "S_N2_init": 0, + "S_NO_init": 0, + "S_HCO_init": 5, + "X_I_init": 25, + "X_S_init": 75, + "X_H_init": 30, + "X_STO_init": 0, + "X_A_init": 0.001, + "X_TS_init": 125.0009, + "x": 420, + "y": 260, + "wires": [ + [], + [], + [ + "b38f1a7b0ab6a7c7" + ] + ] + }, + { + "id": "5865699f68c9aa64", + "type": "inject", + "z": "0abdac5260d9553e", + "name": "", + "props": [ + { + "p": "timestamp", + "v": "", + "vt": "date" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "1", + "crontab": "", + "once": true, + "onceDelay": 0.1, + "topic": "clock", + "x": 300, + "y": 260, + "wires": [ + [ + "5ba082534d7b491e" + ] + ] + }, + { + "id": "061920b87a45057d", + "type": "inject", + "z": "0abdac5260d9553e", + "name": "Influx composition 1", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + }, + { + "p": "timestamp", + "v": "", + "vt": "date" + } + ], + "repeat": "1440", + "crontab": "", + "once": true, + "onceDelay": "5", + "topic": "Fluent", + "payload": "{\"inlet\":0,\"F\":6600,\"C\":[0,30,100,16,0,0,5,25,75,30,0,0,125]}", + "payloadType": "json", + "x": 260, + "y": 180, + "wires": [ + [ + "5ba082534d7b491e" + ] + ] + }, + { + "id": "c2338b164df519f6", + "type": "debug", + "z": "0abdac5260d9553e", + "name": "Sludge removal", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 1260, + "y": 340, + "wires": [] + }, + { + "id": "724aa3442b6fc5fc", + "type": "debug", + "z": "0abdac5260d9553e", + "name": "Sludge recirculation", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 1030, + "y": 340, + "wires": [] + }, + { + "id": "fd2e755a96891ec3", + "type": "debug", + "z": "0abdac5260d9553e", + "name": "Effluent", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 780, + "y": 340, + "wires": [] + }, + { + "id": "c509ace161289789", + "type": "recirculation-pump", + "z": "0abdac5260d9553e", + "name": "", + "F2": "1000", + "inlet": "2", + "x": 1030, + "y": 260, + "wires": [ + [ + "c2338b164df519f6", + "c2fd7710c8b22ffa" + ], + [ + "724aa3442b6fc5fc", + "5ba082534d7b491e", + "edbda618f142adfa" + ] + ] + }, + { + "id": "b914e9abe9d60945", + "type": "settling-basin", + "z": "0abdac5260d9553e", + "name": "", + "TS_set": "5400", + "inlet": "1", + "x": 800, + "y": 260, + "wires": [ + [ + "fd2e755a96891ec3" + ], + [ + "c509ace161289789" + ] + ] + }, + { + "id": "dc2d2c985e2fdff6", + "type": "recirculation-pump", + "z": "0abdac5260d9553e", + "name": "", + "F2": "1100", + "inlet": 1, + "x": 570, + "y": 260, + "wires": [ + [ + "b914e9abe9d60945" + ], + [ + "5ba082534d7b491e" + ] + ] + }, + { + "id": "7f94060aa59d6c3a", + "type": "advancedReactor", + "z": "0abdac5260d9553e", + "name": "Aerobic 1", + "reactor_type": "PFR", + "volume": "1470", + "length": "20", + "resolution_L": "20", + "alpha": "0", + "n_inlets": 1, + "kla": "7500", + "S_O_init": 0, + "S_I_init": 30, + "S_S_init": 100, + "S_NH_init": 16, + "S_N2_init": 0, + "S_NO_init": 0, + "S_HCO_init": 5, + "X_I_init": 25, + "X_S_init": 75, + "X_H_init": 30, + "X_STO_init": 0, + "X_A_init": "30", + "X_TS_init": "132", + "enableLog": true, + "logLevel": "debug", + "positionVsParent": "atEquipment", + "x": 1060, + "y": 180, + "wires": [ + [ + "dc2d2c985e2fdff6", + "a5d1282993a362c9", + "368215b8dd484211" + ], + [], + [] + ] + }, + { + "id": "5ba082534d7b491e", + "type": "advancedReactor", + "z": "0abdac5260d9553e", + "name": "Anoxic 1", + "reactor_type": "PFR", + "volume": "730", + "length": "10", + "resolution_L": "10", + "alpha": "0", + "n_inlets": "3", + "kla": "", + "S_O_init": 0, + "S_I_init": 30, + "S_S_init": 100, + "S_NH_init": 16, + "S_N2_init": 0, + "S_NO_init": 0, + "S_HCO_init": 5, + "X_I_init": 25, + "X_S_init": 75, + "X_H_init": 30, + "X_STO_init": 0, + "X_A_init": 0.001, + "X_TS_init": 125.0009, + "enableLog": true, + "logLevel": "debug", + "positionVsParent": "atEquipment", + "x": 540, + "y": 180, + "wires": [ + [ + "4874a8564327e7ab" + ], + [], + [ + "7f94060aa59d6c3a" + ] + ] + }, + { + "id": "4874a8564327e7ab", + "type": "function", + "z": "0abdac5260d9553e", + "name": "Data_converter", + "func": "if (msg.topic != \"Fluent\") {\n return;\n}\n\nconst [S_O, S_I, S_S, S_NH, S_N2, S_NO, S_HCO, X_I, X_S, X_H, X_STO, X_A, X_TS] = msg.payload.C;\n\nmsg = {payload: [\n { \"Series\": \"S_O\", \"Y\": S_O},\n { \"Series\": \"S_I\", \"Y\": S_I},\n { \"Series\": \"S_S\", \"Y\": S_S},\n { \"Series\": \"S_NH\", \"Y\": S_NH},\n { \"Series\": \"S_N2\", \"Y\": S_N2},\n { \"Series\": \"S_NO\", \"Y\": S_NO},\n { \"Series\": \"S_HCO\", \"Y\": S_HCO},\n { \"Series\": \"X_I\", \"Y\": X_I},\n { \"Series\": \"X_S\", \"Y\": X_S},\n { \"Series\": \"X_H\", \"Y\": X_H},\n { \"Series\": \"X_STO\", \"Y\": X_STO},\n { \"Series\": \"X_A\", \"Y\": X_A},\n { \"Series\": \"X_TS\", \"Y\": X_TS}\n ]};\n\nreturn msg;", + "outputs": 1, + "timeout": 0, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 800, + "y": 120, + "wires": [ + [ + "ac91a2c6413414f8" + ] + ] + }, + { + "id": "ac91a2c6413414f8", + "type": "ui-chart", + "z": "0abdac5260d9553e", + "group": "ae38454098a37db0", + "name": "Anoxic reactor", + "label": "Anoxic reactor", + "order": 9007199254740991, + "chartType": "line", + "category": "Series", + "categoryType": "property", + "xAxisLabel": "", + "xAxisProperty": "", + "xAxisPropertyType": "timestamp", + "xAxisType": "time", + "xAxisFormat": "", + "xAxisFormatType": "auto", + "xmin": "", + "xmax": "", + "yAxisLabel": "", + "yAxisProperty": "Y", + "yAxisPropertyType": "property", + "ymin": "", + "ymax": "", + "bins": 10, + "action": "append", + "stackSeries": false, + "pointShape": "circle", + "pointRadius": 4, + "showLegend": true, + "removeOlder": "8", + "removeOlderUnit": "3600", + "removeOlderPoints": "2000", + "colors": [ + "#0095ff", + "#ff0000", + "#ff7f0e", + "#2ca02c", + "#a347e1", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "textColor": [ + "#666666" + ], + "textColorDefault": true, + "gridColor": [ + "#e5e5e5" + ], + "gridColorDefault": true, + "width": 6, + "height": 8, + "className": "", + "interpolation": "linear", + "x": 1020, + "y": 120, + "wires": [ + [] + ] + }, + { + "id": "a5d1282993a362c9", + "type": "function", + "z": "0abdac5260d9553e", + "name": "Data_converter", + "func": "if (msg.topic != \"Fluent\") {\n return;\n}\n\nconst [S_O, S_I, S_S, S_NH, S_N2, S_NO, S_HCO, X_I, X_S, X_H, X_STO, X_A, X_TS] = msg.payload.C;\n\nmsg = {payload: [\n { \"Series\": \"S_O\", \"Y\": S_O},\n { \"Series\": \"S_I\", \"Y\": S_I},\n { \"Series\": \"S_S\", \"Y\": S_S},\n { \"Series\": \"S_NH\", \"Y\": S_NH},\n { \"Series\": \"S_N2\", \"Y\": S_N2},\n { \"Series\": \"S_NO\", \"Y\": S_NO},\n { \"Series\": \"S_HCO\", \"Y\": S_HCO},\n { \"Series\": \"X_I\", \"Y\": X_I},\n { \"Series\": \"X_S\", \"Y\": X_S},\n { \"Series\": \"X_H\", \"Y\": X_H},\n { \"Series\": \"X_STO\", \"Y\": X_STO},\n { \"Series\": \"X_A\", \"Y\": X_A},\n { \"Series\": \"X_TS\", \"Y\": X_TS}\n ]};\n\nreturn msg;", + "outputs": 1, + "timeout": 0, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1260, + "y": 180, + "wires": [ + [ + "e61130eff38ee89a" + ] + ] + }, + { + "id": "e61130eff38ee89a", + "type": "ui-chart", + "z": "0abdac5260d9553e", + "group": "ae38454098a37db0", + "name": "Aerobic reactor", + "label": "Aerobic reactor / recirculation", + "order": 9007199254740991, + "chartType": "line", + "category": "Series", + "categoryType": "property", + "xAxisLabel": "", + "xAxisProperty": "", + "xAxisPropertyType": "timestamp", + "xAxisType": "time", + "xAxisFormat": "", + "xAxisFormatType": "auto", + "xmin": "", + "xmax": "", + "yAxisLabel": "", + "yAxisProperty": "Y", + "yAxisPropertyType": "property", + "ymin": "", + "ymax": "", + "bins": 10, + "action": "append", + "stackSeries": false, + "pointShape": "circle", + "pointRadius": 4, + "showLegend": true, + "removeOlder": "8", + "removeOlderUnit": "3600", + "removeOlderPoints": "2000", + "colors": [ + "#0095ff", + "#ff0000", + "#ff7f0e", + "#2ca02c", + "#a347e1", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "textColor": [ + "#666666" + ], + "textColorDefault": true, + "gridColor": [ + "#e5e5e5" + ], + "gridColorDefault": true, + "width": 6, + "height": 8, + "className": "", + "interpolation": "linear", + "x": 1480, + "y": 180, + "wires": [ + [] + ] + }, + { + "id": "c2fd7710c8b22ffa", + "type": "function", + "z": "0abdac5260d9553e", + "name": "Data_converter", + "func": "if (msg.topic != \"Fluent\") {\n return;\n}\n\nconst [S_O, S_I, S_S, S_NH, S_N2, S_NO, S_HCO, X_I, X_S, X_H, X_STO, X_A, X_TS] = msg.payload.C;\n\nmsg = {payload: [\n { \"Series\": \"S_O\", \"Y\": S_O},\n { \"Series\": \"S_I\", \"Y\": S_I},\n { \"Series\": \"S_S\", \"Y\": S_S},\n { \"Series\": \"S_NH\", \"Y\": S_NH},\n { \"Series\": \"S_N2\", \"Y\": S_N2},\n { \"Series\": \"S_NO\", \"Y\": S_NO},\n { \"Series\": \"S_HCO\", \"Y\": S_HCO}\n ]};\n\nreturn msg;", + "outputs": 1, + "timeout": 0, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1260, + "y": 240, + "wires": [ + [ + "6cfb58885cf36b74" + ] + ] + }, + { + "id": "6cfb58885cf36b74", + "type": "ui-chart", + "z": "0abdac5260d9553e", + "group": "de8b029d69f26c0e", + "name": "Effluent", + "label": "Effluent", + "order": 9007199254740991, + "chartType": "line", + "category": "Series", + "categoryType": "property", + "xAxisLabel": "", + "xAxisProperty": "", + "xAxisPropertyType": "timestamp", + "xAxisType": "time", + "xAxisFormat": "", + "xAxisFormatType": "auto", + "xmin": "", + "xmax": "", + "yAxisLabel": "", + "yAxisProperty": "Y", + "yAxisPropertyType": "property", + "ymin": "", + "ymax": "", + "bins": 10, + "action": "append", + "stackSeries": false, + "pointShape": "circle", + "pointRadius": 4, + "showLegend": true, + "removeOlder": "8", + "removeOlderUnit": "3600", + "removeOlderPoints": "2000", + "colors": [ + "#0095ff", + "#ff0000", + "#ff7f0e", + "#2ca02c", + "#a347e1", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "textColor": [ + "#666666" + ], + "textColorDefault": true, + "gridColor": [ + "#e5e5e5" + ], + "gridColorDefault": true, + "width": 6, + "height": 8, + "className": "", + "interpolation": "linear", + "x": 1460, + "y": 240, + "wires": [ + [] + ] + }, + { + "id": "edbda618f142adfa", + "type": "function", + "z": "0abdac5260d9553e", + "name": "Data_converter", + "func": "if (msg.topic != \"Fluent\") {\n return;\n}\n\nconst [S_O, S_I, S_S, S_NH, S_N2, S_NO, S_HCO, X_I, X_S, X_H, X_STO, X_A, X_TS] = msg.payload.C;\n\nmsg = {payload: [\n { \"Series\": \"X_I\", \"Y\": X_I},\n { \"Series\": \"X_S\", \"Y\": X_S},\n { \"Series\": \"X_H\", \"Y\": X_H},\n { \"Series\": \"X_STO\", \"Y\": X_STO},\n { \"Series\": \"X_A\", \"Y\": X_A},\n { \"Series\": \"X_TS\", \"Y\": X_TS}\n ]};\n\nreturn msg;", + "outputs": 1, + "timeout": 0, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1260, + "y": 280, + "wires": [ + [ + "95dc5302c82d6bcb" + ] + ] + }, + { + "id": "95dc5302c82d6bcb", + "type": "ui-chart", + "z": "0abdac5260d9553e", + "group": "de8b029d69f26c0e", + "name": "Sludge composition", + "label": "Sludge composition", + "order": 9007199254740991, + "chartType": "line", + "category": "Series", + "categoryType": "property", + "xAxisLabel": "", + "xAxisProperty": "", + "xAxisPropertyType": "timestamp", + "xAxisType": "time", + "xAxisFormat": "", + "xAxisFormatType": "auto", + "xmin": "", + "xmax": "", + "yAxisLabel": "", + "yAxisProperty": "Y", + "yAxisPropertyType": "property", + "ymin": "", + "ymax": "", + "bins": 10, + "action": "append", + "stackSeries": false, + "pointShape": "circle", + "pointRadius": 4, + "showLegend": true, + "removeOlder": "8", + "removeOlderUnit": "3600", + "removeOlderPoints": "2000", + "colors": [ + "#0095ff", + "#ff0000", + "#ff7f0e", + "#2ca02c", + "#a347e1", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "textColor": [ + "#666666" + ], + "textColorDefault": true, + "gridColor": [ + "#e5e5e5" + ], + "gridColorDefault": true, + "width": 6, + "height": 8, + "className": "", + "interpolation": "linear", + "x": 1490, + "y": 280, + "wires": [ + [] + ] + }, + { + "id": "cb4329d4882d3b10", + "type": "inject", + "z": "0abdac5260d9553e", + "name": "", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": true, + "onceDelay": 0.1, + "topic": "Dispersion", + "payload": "10000", + "payloadType": "num", + "x": 290, + "y": 340, + "wires": [ + [ + "5ba082534d7b491e", + "7f94060aa59d6c3a" + ] + ] + }, + { + "id": "4b5a1cb582ce04a5", + "type": "inject", + "z": "0abdac5260d9553e", + "name": "Influx composition 2", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + }, + { + "p": "timestamp", + "v": "", + "vt": "date" + } + ], + "repeat": "1440", + "crontab": "", + "once": true, + "onceDelay": "480", + "topic": "Fluent", + "payload": "{\"inlet\":0,\"F\":8000,\"C\":[0,50,125,20,0,0,6.25,10,50,11,0,0,81.5]}", + "payloadType": "json", + "x": 260, + "y": 140, + "wires": [ + [ + "5ba082534d7b491e" + ] + ] + }, + { + "id": "68ba512b76ed980a", + "type": "inject", + "z": "0abdac5260d9553e", + "name": "Influx composition 3", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + }, + { + "p": "timestamp", + "v": "", + "vt": "date" + } + ], + "repeat": "1440", + "crontab": "", + "once": true, + "onceDelay": "960", + "topic": "Fluent", + "payload": "{\"inlet\":0,\"F\":6600,\"C\":[0,25,95,12.8,0,0,4,25,75,40,0,0,134]}", + "payloadType": "json", + "x": 260, + "y": 100, + "wires": [ + [ + "5ba082534d7b491e" + ] + ] + }, + { + "id": "368215b8dd484211", + "type": "debug", + "z": "0abdac5260d9553e", + "name": "debug 1", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1280, + "y": 100, + "wires": [] + }, + { + "id": "b5dde0cd3e3b7a9e", + "type": "inject", + "z": "394f713d4e71366c", + "name": "Influx composition 3", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + }, + { + "p": "timestamp", + "v": "", + "vt": "date" + } + ], + "repeat": "1440", + "crontab": "", + "once": true, + "onceDelay": "960", + "topic": "Fluent", + "payload": "{\"inlet\":0,\"F\":1000,\"C\":[0,25,95,12.8,0,0,4,25,75,40,0,0,134]}", + "payloadType": "json", + "x": 220, + "y": 140, + "wires": [ + [ + "818dbe32cad9fa42" + ] + ] + }, + { + "id": "74fa10e5ad6ac925", + "type": "inject", + "z": "394f713d4e71366c", + "name": "Influx composition 2", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + }, + { + "p": "timestamp", + "v": "", + "vt": "date" + } + ], + "repeat": "1440", + "crontab": "", + "once": true, + "onceDelay": "480", + "topic": "Fluent", + "payload": "{\"inlet\":0,\"F\":1200,\"C\":[0,50,125,20,0,0,6.25,10,50,11,0,0,81.5]}", + "payloadType": "json", + "x": 220, + "y": 180, + "wires": [ + [ + "818dbe32cad9fa42" + ] + ] + }, + { + "id": "ad54f09b8bb12e39", + "type": "inject", + "z": "394f713d4e71366c", + "name": "Influx composition 1", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + }, + { + "p": "timestamp", + "v": "", + "vt": "date" + } + ], + "repeat": "1440", + "crontab": "", + "once": true, + "onceDelay": "5", + "topic": "Fluent", + "payload": "{\"inlet\":0,\"F\":1000,\"C\":[0,30,100,16,0,0,5,25,75,30,0,0,125]}", + "payloadType": "json", + "x": 220, + "y": 220, + "wires": [ + [ + "818dbe32cad9fa42" + ] + ] + }, + { + "id": "2776f6ebd3205e51", + "type": "inject", + "z": "394f713d4e71366c", + "name": "", + "props": [ + { + "p": "timestamp", + "v": "", + "vt": "date" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "1", + "crontab": "", + "once": true, + "onceDelay": 0.1, + "topic": "clock", + "x": 260, + "y": 300, + "wires": [ + [ + "818dbe32cad9fa42" + ] + ] + }, + { + "id": "8538c18935bee1bf", + "type": "inject", + "z": "394f713d4e71366c", + "name": "", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": true, + "onceDelay": 0.1, + "topic": "Dispersion", + "payload": "3000", + "payloadType": "num", + "x": 240, + "y": 380, + "wires": [ + [ + "818dbe32cad9fa42", + "c3d507ed7b05c089" + ] + ] + }, + { + "id": "818dbe32cad9fa42", + "type": "advancedReactor", + "z": "394f713d4e71366c", + "name": "Anoxic 1", + "reactor_type": "PFR", + "volume": "800", + "length": "30", + "resolution_L": "20", + "alpha": "0", + "n_inlets": "3", + "kla": "", + "S_O_init": 0, + "S_I_init": 30, + "S_S_init": 100, + "S_NH_init": 16, + "S_N2_init": 0, + "S_NO_init": 0, + "S_HCO_init": 5, + "X_I_init": 25, + "X_S_init": 75, + "X_H_init": 30, + "X_STO_init": 0, + "X_A_init": 0.001, + "X_TS_init": 125.0009, + "enableLog": false, + "logLevel": "info", + "positionVsParent": "downstream", + "x": 600, + "y": 220, + "wires": [ + [], + [], + [ + "c3d507ed7b05c089" + ] + ] + }, + { + "id": "c3d507ed7b05c089", + "type": "advancedReactor", + "z": "394f713d4e71366c", + "name": "Aerobic 1", + "reactor_type": "PFR", + "volume": "800", + "length": "30", + "resolution_L": "20", + "alpha": "0", + "n_inlets": 1, + "kla": "7500", + "S_O_init": 0, + "S_I_init": 30, + "S_S_init": 100, + "S_NH_init": 16, + "S_N2_init": 0, + "S_NO_init": 0, + "S_HCO_init": 5, + "X_I_init": 25, + "X_S_init": 75, + "X_H_init": 30, + "X_STO_init": 0, + "X_A_init": "30", + "X_TS_init": "132", + "enableLog": false, + "logLevel": "info", + "positionVsParent": "upstream", + "x": 1020, + "y": 220, + "wires": [ + [], + [], + [] + ] + } +] \ No newline at end of file