[ { "id": "rm_int_tab", "type": "tab", "label": "RotatingMachine - Integration with Machine Group", "disabled": false, "info": "Demonstrates a machineGroupControl parent with two rotatingMachine children and a measurement node." }, { "id": "rm_int_comment_title", "type": "comment", "z": "rm_int_tab", "name": "RotatingMachine - Integration with Parent\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nShows how rotatingMachine registers with a\nmachineGroupControl parent via Port 2.\nAlso shows a measurement node providing\npressure data to a pump.\n\nPrerequisites: EVOLV package installed.", "info": "", "x": 380, "y": 40, "wires": [] }, { "id": "rm_int_comment_howto", "type": "comment", "z": "rm_int_tab", "name": "HOW TO USE:\n1. Deploy flow - pumps auto-register with MGC via Port 2\n2. Set Pump 1 to virtualControl, then Startup\n3. Set speed setpoints on individual pumps\n4. Observe MGC aggregating child state on Port 0\n5. Inject pressure measurement to see curve predictions", "info": "", "x": 380, "y": 110, "wires": [] }, { "id": "rm_int_mgc", "type": "machineGroupControl", "z": "rm_int_tab", "name": "Machine Group", "enableLog": true, "logLevel": "info", "positionVsParent": "atEquipment", "positionIcon": "", "hasDistance": false, "distance": "", "distanceUnit": "m", "x": 570, "y": 300, "wires": [ ["rm_int_debug_mgc_port0"], ["rm_int_debug_mgc_port1"], ["rm_int_debug_mgc_port2"] ] }, { "id": "rm_int_pump1", "type": "rotatingMachine", "z": "rm_int_tab", "name": "Pump 1", "speed": "1", "startup": "2", "warmup": "1", "shutdown": "2", "cooldown": "1", "movementMode": "staticspeed", "machineCurve": "", "uuid": "example-pump-001", "supplier": "hidrostal", "category": "pump", "assetType": "pump-centrifugal", "model": "hidrostal-H05K-S03R", "unit": "m3/h", "curvePressureUnit": "mbar", "curveFlowUnit": "m3/h", "curvePowerUnit": "kW", "curveControlUnit": "%", "enableLog": true, "logLevel": "info", "positionVsParent": "atEquipment", "positionIcon": "", "hasDistance": false, "distance": "", "distanceUnit": "m", "distanceDescription": "", "x": 570, "y": 480, "wires": [ ["rm_int_debug_p1_port0"], [], ["rm_int_mgc"] ] }, { "id": "rm_int_pump2", "type": "rotatingMachine", "z": "rm_int_tab", "name": "Pump 2", "speed": "1", "startup": "2", "warmup": "1", "shutdown": "2", "cooldown": "1", "movementMode": "staticspeed", "machineCurve": "", "uuid": "example-pump-002", "supplier": "hidrostal", "category": "pump", "assetType": "pump-centrifugal", "model": "hidrostal-H05K-S03R", "unit": "m3/h", "curvePressureUnit": "mbar", "curveFlowUnit": "m3/h", "curvePowerUnit": "kW", "curveControlUnit": "%", "enableLog": true, "logLevel": "info", "positionVsParent": "atEquipment", "positionIcon": "", "hasDistance": false, "distance": "", "distanceUnit": "m", "distanceDescription": "", "x": 570, "y": 620, "wires": [ ["rm_int_debug_p2_port0"], [], ["rm_int_mgc"] ] }, { "id": "rm_int_inject_mode_p1", "type": "inject", "z": "rm_int_tab", "name": "P1: virtualControl", "props": [ { "p": "topic", "vt": "str" }, { "p": "payload", "v": "virtualControl", "vt": "str" } ], "topic": "setMode", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 200, "y": 440, "wires": [["rm_int_pump1"]] }, { "id": "rm_int_inject_start_p1", "type": "inject", "z": "rm_int_tab", "name": "P1: Startup", "props": [ { "p": "topic", "vt": "str" }, { "p": "payload", "v": "{\"source\":\"GUI\",\"action\":\"execSequence\",\"parameter\":\"startup\"}", "vt": "json" } ], "topic": "execSequence", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 180, "y": 480, "wires": [["rm_int_pump1"]] }, { "id": "rm_int_inject_setpoint_p1", "type": "inject", "z": "rm_int_tab", "name": "P1: Set 75%", "props": [ { "p": "topic", "vt": "str" }, { "p": "payload", "v": "{\"source\":\"GUI\",\"action\":\"execMovement\",\"setpoint\":75}", "vt": "json" } ], "topic": "execMovement", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 180, "y": 520, "wires": [["rm_int_pump1"]] }, { "id": "rm_int_inject_mode_p2", "type": "inject", "z": "rm_int_tab", "name": "P2: virtualControl", "props": [ { "p": "topic", "vt": "str" }, { "p": "payload", "v": "virtualControl", "vt": "str" } ], "topic": "setMode", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 200, "y": 580, "wires": [["rm_int_pump2"]] }, { "id": "rm_int_inject_start_p2", "type": "inject", "z": "rm_int_tab", "name": "P2: Startup", "props": [ { "p": "topic", "vt": "str" }, { "p": "payload", "v": "{\"source\":\"GUI\",\"action\":\"execSequence\",\"parameter\":\"startup\"}", "vt": "json" } ], "topic": "execSequence", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 180, "y": 620, "wires": [["rm_int_pump2"]] }, { "id": "rm_int_inject_setpoint_p2", "type": "inject", "z": "rm_int_tab", "name": "P2: Set 50%", "props": [ { "p": "topic", "vt": "str" }, { "p": "payload", "v": "{\"source\":\"GUI\",\"action\":\"execMovement\",\"setpoint\":50}", "vt": "json" } ], "topic": "execMovement", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 180, "y": 660, "wires": [["rm_int_pump2"]] }, { "id": "rm_int_inject_pressure", "type": "inject", "z": "rm_int_tab", "name": "P1: Sim downstream 900 mbar", "props": [ { "p": "topic", "vt": "str" }, { "p": "payload", "v": "{\"type\":\"pressure\",\"position\":\"downstream\",\"value\":900,\"unit\":\"mbar\"}", "vt": "json" } ], "topic": "simulateMeasurement", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 240, "y": 740, "wires": [["rm_int_pump1"]] }, { "id": "rm_int_inject_shutdown_p1", "type": "inject", "z": "rm_int_tab", "name": "P1: Shutdown", "props": [ { "p": "topic", "vt": "str" }, { "p": "payload", "v": "{\"source\":\"GUI\",\"action\":\"execSequence\",\"parameter\":\"shutdown\"}", "vt": "json" } ], "topic": "execSequence", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 190, "y": 780, "wires": [["rm_int_pump1"]] }, { "id": "rm_int_inject_shutdown_p2", "type": "inject", "z": "rm_int_tab", "name": "P2: Shutdown", "props": [ { "p": "topic", "vt": "str" }, { "p": "payload", "v": "{\"source\":\"GUI\",\"action\":\"execSequence\",\"parameter\":\"shutdown\"}", "vt": "json" } ], "topic": "execSequence", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 190, "y": 820, "wires": [["rm_int_pump2"]] }, { "id": "rm_int_debug_mgc_port0", "type": "debug", "z": "rm_int_tab", "name": "MGC Port 0: Group State", "active": true, "tosidebar": true, "console": false, "tostatus": true, "complete": "payload", "targetType": "msg", "statusVal": "payload", "statusType": "auto", "x": 830, "y": 260, "wires": [] }, { "id": "rm_int_debug_mgc_port1", "type": "debug", "z": "rm_int_tab", "name": "MGC Port 1: InfluxDB", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "x": 820, "y": 300, "wires": [] }, { "id": "rm_int_debug_mgc_port2", "type": "debug", "z": "rm_int_tab", "name": "MGC Port 2: Parent", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "x": 810, "y": 340, "wires": [] }, { "id": "rm_int_debug_p1_port0", "type": "debug", "z": "rm_int_tab", "name": "P1 Port 0: Process", "active": false, "tosidebar": true, "console": false, "tostatus": true, "complete": "payload", "targetType": "msg", "statusVal": "payload.state", "statusType": "auto", "x": 810, "y": 460, "wires": [] }, { "id": "rm_int_debug_p2_port0", "type": "debug", "z": "rm_int_tab", "name": "P2 Port 0: Process", "active": false, "tosidebar": true, "console": false, "tostatus": true, "complete": "payload", "targetType": "msg", "statusVal": "payload.state", "statusType": "auto", "x": 810, "y": 600, "wires": [] } ]