Files
Stream_PHX_A7/Gateways/FE/projects/.resources/fbfdabde74f0ec8798c2797fd26a982697d1668bc392e09c00967b98541b077c

1053 lines
34 KiB
Plaintext

{
"custom": {
"RTU_tagPath": "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU02",
"auth": {
"almAck": false,
"almShelve": false,
"config": false,
"control": false
},
"data": [
"[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU01",
"[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU02"
],
"room": "SATB1_RF_RTU02",
"tagPath": "[Ignition_Common_IO_Gtwy]Roof"
},
"params": {},
"propConfig": {
"custom.RTU_tagPath": {
"binding": {
"config": {
"path": "view.custom.room"
},
"transforms": [
{
"code": "\treturn self.custom.tagPath + \"/\"+ value",
"type": "script"
}
],
"type": "property"
},
"persistent": true
},
"custom.auth": {
"binding": {
"config": {
"path": "session.props.auth.user.roles"
},
"transforms": [
{
"code": "\treturn utils.roles.validate(value)",
"type": "script"
}
],
"type": "property"
},
"persistent": true
},
"custom.data": {
"binding": {
"config": {
"struct": {
"tagPath": "{view.custom.tagPath}",
"time": "now(3000)"
},
"waitOnAll": true
},
"enabled": false,
"transforms": [
{
"code": "\toutput \u003d []\n\ttags \u003d system.tag.browse(value[\"tagPath\"],{\"typeId\":\"Objects/Air/RTU-1\", \"recursive\":True ,\"tagType\":\"UdtInstance\"})\n\tfor item in tags:\n\t\ttagPath \u003d str(item[\"fullPath\"])\n\t\toutput.append(tagPath)\n\t\ttags \u003d system.tag.browse(value[\"tagPath\"],{\"typeId\":\"Objects/Air/RTU-2\", \"recursive\":True ,\"tagType\":\"UdtInstance\"})\n\tfor item in tags:\n\t\ttagPath \u003d str(item[\"fullPath\"])\n\t\toutput.append(tagPath)\n\treturn output",
"type": "script"
}
],
"type": "expr-struct"
},
"persistent": true
},
"custom.room": {
"persistent": true
},
"custom.tagPath": {
"persistent": true
}
},
"props": {
"defaultSize": {
"width": 1200
}
},
"root": {
"children": [
{
"children": [
{
"meta": {
"name": "RTU Diagram"
},
"propConfig": {
"props.params.objectName": {
"binding": {
"config": {
"path": "view.custom.room"
},
"transforms": [
{
"code": "\toutput \u003d value.split(\"_\")\n\treturn output[2]",
"type": "script"
}
],
"type": "property"
}
},
"props.params.tagPath": {
"binding": {
"config": {
"path": "view.custom.RTU_tagPath"
},
"type": "property"
}
},
"props.path": {
"binding": {
"config": {
"path": "view.custom.room"
},
"enabled": false,
"transforms": [
{
"code": "\tsplit \u003d value.split(\"_\")\n\treturn \"Pages/Dev/C_AirSystem/Diagrams/\" + split[2]",
"type": "script"
}
],
"type": "property"
}
}
},
"props": {
"params": {
"embedded": false
},
"path": "Library/Diagrams/HVAC/Dgrm_RTU",
"style": {
"overflow": "visible"
}
},
"type": "ia.display.view"
}
],
"meta": {
"name": "Diagram"
},
"position": {
"basis": "70%",
"grow": 1
},
"props": {
"alignContent": "center",
"alignItems": "center",
"direction": "column",
"justify": "center",
"style": {
"backgroundColor": "var(--containerRoot)",
"overflow": "visible"
},
"wrap": "wrap"
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Label"
},
"props": {
"text": "Roof"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "FirstFloor Percent"
},
"position": {
"grow": 1
},
"props": {
"path": "Library/Widgets/Layouts/RTU_Roof",
"style": {
"overflow": "visible"
},
"useDefaultViewHeight": true
},
"type": "ia.display.view"
},
{
"meta": {
"name": "Label_0"
},
"props": {
"text": "Second Floor"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "FirstFloor Percent_0"
},
"position": {
"grow": 1
},
"props": {
"path": "Library/Widgets/Layouts/RTU_SecondFloor",
"style": {
"overflow": "visible"
},
"useDefaultViewHeight": true
},
"type": "ia.display.view"
},
{
"meta": {
"name": "Label_2"
},
"props": {
"text": "First Floor"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "FirstFloor Percent_1"
},
"position": {
"grow": 1
},
"props": {
"path": "Library/Widgets/Layouts/RTU_FirstFloor",
"style": {
"overflow": "visible"
},
"useDefaultViewHeight": true,
"useDefaultViewWidth": true
},
"type": "ia.display.view"
},
{
"meta": {
"name": "Label_1"
},
"props": {
"text": "List of devices"
},
"type": "ia.display.label"
},
{
"events": {
"component": {
"onRowClick": {
"config": {
"script": "\tpayload \u003d {\"Room\":self.props.selection.data[0].Tag}\n\tmessageType \u003d \"roomUpdate\"\n\tsystem.perspective.sendMessage(messageType, payload)\n\tmessageType \u003d \"layout_01_Update\"\n\tsystem.perspective.sendMessage(messageType, payload)\n\tmessageType \u003d \"layout_02_Update\"\n\tsystem.perspective.sendMessage(messageType, payload)\n\tmessageType \u003d \"layout_03_Update\"\n\tsystem.perspective.sendMessage(messageType, payload)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Table"
},
"position": {
"grow": 1
},
"propConfig": {
"props.data": {
"binding": {
"config": {
"struct": {
"paths": "{view.custom.data}",
"time": "now(5000)"
},
"waitOnAll": true
},
"enabled": false,
"transforms": [
{
"code": "\toutput \u003d []\n\tdata \u003d value[\"paths\"]\n\tfor item in data:\n\t\tAlmS \u003d alarm.summary.calcMaxPriority(item)\n\t\tif(AlmS \u003d\u003d 1):\n\t\t\tAlarmSeverity \u003d \"Controller\"\n\t\telif(AlmS \u003d\u003d 2):\n\t\t\tAlarmSeverity \u003d \"Info\"\n\t\telif(AlmS \u003d\u003d 3):\n\t\t\tAlarmSeverity \u003d \"Warning\"\n\t\telif(AlmS \u003d\u003d 4):\n\t\t\tAlarmSeverity \u003d \"Critical\"\n\t\telse:\n\t\t\tAlarmSeverity \u003d \" \"\n\t\tRAD \u003d system.tag.readBlocking(item + \"/Return Air Damper\")[0].value\n\t\tSAT \u003d system.tag.readBlocking(item + \"/Supply Air Temperature\")[0].value\n\t\tName \u003d system.tag.readBlocking(item + \"/Meta/EqName\")[0].value\n\t\ttag \u003d system.tag.readBlocking(item + \"/Meta/Ignition Tag Name\")[0].value\n\t\toutput.append({ \"RAD\": str(RAD) + \u0027 %\u0027,\n\t\t\t\t\t\t\"SAT\": str(round(SAT,3)) + \u0027 F\u0027,\n\t\t\t\t\t\t\"Tag\": tag,\n\t\t\t\t\t\t\"AlarmSeverity\": AlarmSeverity,\n\t\t\t\t\t\t\"Name\": Name})\n\treturn output",
"type": "script"
}
],
"type": "expr-struct"
}
}
},
"props": {
"columns": [
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY",
"editable": false,
"field": "Name",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": false,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "",
"value": ""
},
"visible": "on-hover"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": "Device"
},
"justify": "auto",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "0,0.##",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "string",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": true,
"width": 75
},
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY",
"editable": false,
"field": "SAT",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": false,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "",
"value": ""
},
"visible": "on-hover"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": "Supply Air Temp"
},
"justify": "auto",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "0,0.##",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "auto",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": true,
"width": ""
},
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY",
"editable": false,
"field": "RAD",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": false,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "",
"value": ""
},
"visible": "on-hover"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": "Return Air Damper Position"
},
"justify": "auto",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "0,0.##",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "auto",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": true,
"width": ""
},
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY",
"editable": false,
"field": "AlarmSeverity",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": false,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "",
"value": ""
},
"visible": "on-hover"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": "Alarm Severity"
},
"justify": "auto",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "0,0.##",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "auto",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": true,
"width": ""
},
{
"align": "center",
"boolean": "checkbox",
"dateFormat": "MM/DD/YYYY",
"editable": false,
"field": "Tag",
"filter": {
"boolean": {
"condition": ""
},
"date": {
"condition": "",
"value": ""
},
"enabled": false,
"number": {
"condition": "",
"value": ""
},
"string": {
"condition": "",
"value": ""
},
"visible": "on-hover"
},
"footer": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"header": {
"align": "center",
"justify": "left",
"style": {
"classes": ""
},
"title": ""
},
"justify": "auto",
"nullFormat": {
"includeNullStrings": false,
"nullFormatValue": "",
"strict": false
},
"number": "value",
"numberFormat": "0,0.##",
"progressBar": {
"bar": {
"color": "",
"style": {
"classes": ""
}
},
"max": 100,
"min": 0,
"track": {
"color": "",
"style": {
"classes": ""
}
},
"value": {
"enabled": true,
"format": "0,0.##",
"justify": "center",
"style": {
"classes": ""
}
}
},
"render": "auto",
"resizable": true,
"sort": "none",
"sortable": true,
"strictWidth": false,
"style": {
"classes": ""
},
"toggleSwitch": {
"color": {
"selected": "",
"unselected": ""
}
},
"viewParams": {},
"viewPath": "",
"visible": false,
"width": ""
}
],
"data": [
{
"AlarmSeverity": "Info",
"Name": "RTU_01",
"RAD": "48.0 %",
"SAT": "57.1 F",
"Tag": "SATB1_RF_RTU01"
},
{
"AlarmSeverity": " ",
"Name": "RTU_02",
"RAD": "68.0 %",
"SAT": "69.8 F",
"Tag": "SATB1_RF_RTU02"
},
{
"AlarmSeverity": " ",
"Name": "RTU_03",
"RAD": "68.0 %",
"SAT": "69.8 F",
"Tag": "SATB1_RF_RTU02"
},
{
"AlarmSeverity": " ",
"Name": "RTU_04",
"RAD": "66.0 %",
"SAT": "70.1 F",
"Tag": "SATB1_RF_RTU02"
},
{
"AlarmSeverity": " ",
"Name": "RTU_05",
"RAD": "69.0 %",
"SAT": "68.8 F",
"Tag": "SATB1_RF_RTU02"
}
],
"style": {
"overflow": "auto"
}
},
"type": "ia.display.table"
},
{
"children": [
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tClosed \u003d True\n\tself.custom.RTU1_Emergency_Override \u003d Closed\n\tself.custom.RTU2_Emergency_Override \u003d Closed"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Button"
},
"position": {
"grow": 1
},
"propConfig": {
"custom.RTU1_Emergency_Override": {
"binding": {
"config": {
"bidirectional": true,
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.custom.data[0]}"
},
"tagPath": "{0}/Control/Emergency Override"
},
"type": "tag"
}
},
"custom.RTU2_Emergency_Override": {
"binding": {
"config": {
"bidirectional": true,
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.custom.data[1]}"
},
"tagPath": "{0}/Control/Emergency Override"
},
"type": "tag"
}
},
"props.enabled": {
"binding": {
"config": {
"path": "view.custom.auth.control"
},
"type": "property"
}
},
"props.primary": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "direct",
"tagPath": "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU01/Control/Emergency Override"
},
"enabled": false,
"type": "tag"
}
}
},
"props": {
"image": {
"style": {
"backgroundColor": "#D5D5D5",
"color": "#2B2B2B"
}
},
"style": {
"borderColor": "#AAAAAA",
"borderStyle": "solid",
"borderWidth": 1,
"margin": 2
},
"text": "Close Outside Dampers",
"textStyle": {
"color": "#2B2B2B"
}
},
"type": "ia.input.button"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tAuto \u003d False\n\tself.custom.RTU1_Emergency_Override \u003d Auto\n\tself.custom.RTU2_Emergency_Override \u003d Auto\n\t"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Button_0"
},
"position": {
"grow": 1
},
"propConfig": {
"custom.RTU1_Emergency_Override": {
"binding": {
"config": {
"bidirectional": true,
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.custom.data[0]}"
},
"tagPath": "{0}/Control/Emergency Override"
},
"type": "tag"
}
},
"custom.RTU2_Emergency_Override": {
"binding": {
"config": {
"bidirectional": true,
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.custom.data[1]}"
},
"tagPath": "{0}/Control/Emergency Override"
},
"type": "tag"
}
},
"props.enabled": {
"binding": {
"config": {
"path": "view.custom.auth.control"
},
"type": "property"
}
},
"props.primary": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "direct",
"tagPath": "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU01/Control/Emergency Override"
},
"enabled": false,
"transforms": [
{
"fallback": false,
"inputType": "scalar",
"mappings": [
{
"input": false,
"output": true
},
{
"input": true,
"output": false
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "tag"
}
}
},
"props": {
"image": {
"style": {
"backgroundColor": "#D5D5D5",
"color": "#2B2B2B"
}
},
"style": {
"borderColor": "#AAAAAA",
"borderStyle": "solid",
"borderWidth": 1,
"margin": 2
},
"text": "Set Dampers In Auto",
"textStyle": {
"color": "#2B2B2B"
}
},
"type": "ia.input.button"
}
],
"meta": {
"name": "FlexContainer"
},
"position": {
"basis": "50px",
"grow": 1
},
"props": {
"style": {
"gap": "var(--space-sm)",
"margin": 5,
"overflow": "visible"
}
},
"type": "ia.container.flex"
}
],
"meta": {
"name": "Location"
},
"position": {
"basis": "450px",
"grow": 1
},
"props": {
"direction": "column",
"style": {
"backgroundColor": "var(--container)",
"borderBottomLeftRadius": "var(--borderRadius)",
"borderBottomRightRadius": "var(--borderRadius)",
"borderTopLeftRadius": "var(--borderRadius)",
"borderTopRightRadius": "var(--borderRadius)",
"boxShadow": "var(--boxShadow2)",
"overflow": "visible",
"padding": 10
}
},
"type": "ia.container.flex"
}
],
"meta": {
"name": "root"
},
"props": {
"justify": "space-evenly",
"style": {
"backgroundColor": "var(--containerRoot)",
"overflow": "visible",
"padding": 15
}
},
"scripts": {
"customMethods": [],
"extensionFunctions": null,
"messageHandlers": [
{
"messageType": "roomUpdate",
"pageScope": true,
"script": "\t# implement your handler here\n\tself.view.custom.room \u003d payload[\"Room\"]",
"sessionScope": false,
"viewScope": false
}
]
},
"type": "ia.container.flex"
}
}