{ "custom": { "VAV_tagPaths": [], "data": [ "[Ignition_Common_IO_Gtwy]RM1100/SATB1_HS1_RM1100_VAV13", "[Ignition_Common_IO_Gtwy]RM1100/SATB1_HS1_RM1100_VAV14", "[Ignition_Common_IO_Gtwy]RM1101/SATB1_HS1_RM1101_VAV17", "[Ignition_Common_IO_Gtwy]RM1102/SATB1_HS1_RM1102_VAV15", "[Ignition_Common_IO_Gtwy]RM1102-2/SATB1_HS1_RM1102-2_VAV16", "[Ignition_Common_IO_Gtwy]RM1103/SATB1_HS1_RM1103_VAV09", "[Ignition_Common_IO_Gtwy]RM1109/SATB1_HS1_RM1109_VAV06", "[Ignition_Common_IO_Gtwy]RM1110/SATB1_HS1_RM1110_VAV04", "[Ignition_Common_IO_Gtwy]RM1110/SATB1_HS1_RM1110_VAV05", "[Ignition_Common_IO_Gtwy]RM1111/SATB1_HS1_RM1111_VAV11", "[Ignition_Common_IO_Gtwy]RM1113/SATB1_HS1_RM1113_VAV08", "[Ignition_Common_IO_Gtwy]RM1114/SATB1_HS1_RM1114_VAV07", "[Ignition_Common_IO_Gtwy]RM1116/SATB1_HS1_RM1116_VAV01", "[Ignition_Common_IO_Gtwy]RM1117/SATB1_HS1_RM1117_VAV02", "[Ignition_Common_IO_Gtwy]RM1118/SATB1_HS1_RM1118_VAV03", "[Ignition_Common_IO_Gtwy]RM1121/SATB1_HS1_RM1121_VAV19", "[Ignition_Common_IO_Gtwy]RM1127/SATB1_HS1_RM1127_VAV22", "[Ignition_Common_IO_Gtwy]RM1127/SATB1_HS1_RM1127_VAV23", "[Ignition_Common_IO_Gtwy]RM1133/SATB1_HS1_RM1133_VAV25", "[Ignition_Common_IO_Gtwy]RM1133-5/SATB1_HS1_RM1133-5_VAV18", "[Ignition_Common_IO_Gtwy]RM1134/SATB1_HS1_RM1134_VAV20", "[Ignition_Common_IO_Gtwy]RM1135/SATB1_HS1_RM1135_VAV21", "[Ignition_Common_IO_Gtwy]RM1137/SATB1_HS1_RM1137_VAV12", "[Ignition_Common_IO_Gtwy]RM1138/SATB1_HS1_RM1138_VAV29", "[Ignition_Common_IO_Gtwy]RM1139/SATB1_HS1_RM1139_VAV26", "[Ignition_Common_IO_Gtwy]RM1139/SATB1_HS1_RM1139_VAV27", "[Ignition_Common_IO_Gtwy]RM1139/SATB1_HS1_RM1139_VAV28", "[Ignition_Common_IO_Gtwy]RM1141/SATB1_HS1_RM1141_VAV24", "[Ignition_Common_IO_Gtwy]RM1153/SATB1_HS1_RM1153_VAV34", "[Ignition_Common_IO_Gtwy]RM1190/SATB1_HS1_RM1190_VAV33", "[Ignition_Common_IO_Gtwy]RM1192/SATB1_HS1_RM1192_VAV31", "[Ignition_Common_IO_Gtwy]RM1194/SATB1_HS1_RM1194_VAV32" ], "selectedRoom": "RM1109", "tagPath": "[Ignition_Common_IO_Gtwy]", "tagPath_VAVmaster": "[Ignition_Common_IO_Gtwy]VAV/SATB1_VAV_Master" }, "params": {}, "propConfig": { "custom.VAV_tagPaths": { "binding": { "config": { "struct": { "selected": "{view.custom.selectedRoom}", "time": "now(1000)" }, "waitOnAll": true }, "transforms": [ { "code": "\tselected \u003d value[\"selected\"]\n\tpath \u003d str(self.view.custom.tagPath) + selected\n\ttags \u003d system.tag.browse(path,{\"typeId\":\"Objects/Air/VAV v2\", \"recursive\":True ,\"tagType\":\"UdtInstance\"})\n\toutput \u003d []\n\tfor item in tags:\n\t\toutput.append(item[\"fullPath\"])\n\treturn output", "type": "script" } ], "type": "expr-struct" }, "persistent": true }, "custom.data": { "binding": { "config": { "struct": { "tagPath": "{view.custom.tagPath}", "time": "now(3000)" }, "waitOnAll": false }, "enabled": false, "transforms": [ { "code": "\toutput \u003d []\n\ttags \u003d system.tag.browse(value[\"tagPath\"],{\"typeId\":\"Objects/Air/VAV\", \"recursive\":True ,\"tagType\":\"UdtInstance\"})\n\tfor item in tags:\n\t\toutput.append(str(item[\"fullPath\"]))\n\treturn output", "type": "script" } ], "type": "expr-struct" }, "persistent": true }, "custom.selectedRoom": { "persistent": true }, "custom.tagPath": { "persistent": true }, "custom.tagPath_VAVmaster": { "persistent": true } }, "props": { "defaultSize": { "height": 1000, "width": 1276 } }, "root": { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "32px" }, "propConfig": { "props.text": { "binding": { "config": { "path": "view.custom.VAV_tagPaths[0]" }, "transforms": [ { "code": "\timport re\n\ttag_path \u003d value\n\tpattern \u003d r\"]([^/]+)\" # Matches any characters between \u0027]\u0027 and \u0027/\u0027\n\tmatch \u003d re.search(pattern, tag_path)\n\tif match:\n\t\textracted_value \u003d match.group(1)\n\treturn extracted_value", "type": "script" } ], "type": "property" } } }, "props": { "style": { "backgroundColor": "var(--container)", "borderBottomLeftRadius": "var(--borderRadius)", "borderBottomRightRadius": "var(--borderRadius)", "borderTopLeftRadius": "var(--borderRadius)", "borderTopRightRadius": "var(--borderRadius)", "boxShadow": "var(--boxShadow2)", "overflow": "visible", "paddingBottom": 5, "paddingLeft": 15, "paddingRight": 15, "paddingTop": 5 } }, "type": "ia.display.label" }, { "meta": { "name": "FlexRepeater" }, "propConfig": { "props.instances": { "binding": { "config": { "path": "view.custom.VAV_tagPaths" }, "enabled": false, "transforms": [ { "code": "\toutput \u003d []\n\tfor item in value:\n\t\toutput.append({\"instanceStyle\":{\"classes\": \"\"},\n\t\t\t\t\t\t\"instancePosition\":{},\n\t\t\t\t\t\t\"embedded\": False,\n\t\t\t\t\t\t\"objectName\": \"VAV v2\",\n\t\t\t\t\t\t\"tagPath\": item})\n\treturn output", "type": "script" } ], "type": "property" } } }, "props": { "instances": [ { "embedded": false, "instancePosition": {}, "instanceStyle": { "classes": "" }, "objectName": "VAV v2", "tagPath": "[Ignition_Common_IO_Gtwy]RM1109/SATB1_HS1_RM1109_VAV06" } ], "justify": "center", "path": "Library/Diagrams/HVAC/Dgrm_VAV", "style": { "backgroundColor": "var(--containerRoot)", "gap": 50, "overflow": "visible" }, "wrap": "wrap" }, "type": "ia.display.flex-repeater" }, { "events": { "dom": { "onClick": { "config": { "script": "\ttagPath \u003d self.view.custom.tagPath_VAVmaster\n\tobjectName \u003d \"VAVMaster\"\n\tpayload\u003d{\n\t\t\u0027objectName\u0027: objectName,\n\t\t\u0027tagPath\u0027: tagPath,\n\t\t\u0027modal\u0027: False,\n\t\t\u0027resizable\u0027: True,\n\t\t\u0027draggable\u0027: True,\n\t\t\u0027position\u0027: {\n\t#\t\t\t\u0027left\u0027:\u00270\u0027,\n\t#\t\t\t\u0027top\u0027:\u00270\u0027,\n\t\t\u0027width\u0027: \u00271000px\u0027,\n\t\t\u0027height\u0027: \u0027800px\u0027\n\t\t}\n\t}\n\tutils.nav.eqPopupMsg(self, payload)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Button" }, "position": { "basis": "34px" }, "props": { "primary": false, "text": "VAV Global parameters" }, "type": "ia.input.button" } ], "meta": { "name": "root" }, "props": { "direction": "column", "justify": "space-evenly", "style": { "backgroundColor": "var(--containerRoot)", "padding": 15 } }, "scripts": { "customMethods": [], "extensionFunctions": null, "messageHandlers": [ { "messageType": "roomUpdate", "pageScope": true, "script": "\t# implement your handler here\n\tself.view.custom.selectedRoom \u003d payload[\"Room\"]", "sessionScope": false, "viewScope": false } ] }, "type": "ia.container.flex" } }