Files
Stream_PHX_A7/Gateways/FE/projects/.resources/0a2cc97056fa83d1bf3bdea5e2960d5ebe7e1afaccd4edb080b8f041222474a3

544 lines
18 KiB
Plaintext

{
"custom": {
"OCmd": {
"Occupied": null,
"sEND": null
},
"tagPaths": [
"[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"
]
},
"params": {
"auth": {
"almAck": true,
"almShelve": true,
"config": true,
"control": true
},
"tagPath": "[Ignition_Common_IO_Gtwy]VAV/SATB1_VAV_Master"
},
"propConfig": {
"custom.OCmd": {
"persistent": true
},
"custom.OCmd.Send": {
"binding": {
"config": {
"bidirectional": true,
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/Control/OCmd_SendALL"
},
"type": "tag"
}
},
"custom.tagPaths": {
"binding": {
"config": {
"struct": {
"hb": "now(3000)"
},
"waitOnAll": true
},
"enabled": false,
"transforms": [
{
"code": "\tIO_Gateways \u003d [\"[Ignition_Common_IO_Gtwy]\"]\n\t\t\t\t\n\t#Change manually the gateway to search through\n\tpath \u003d IO_Gateways[0]\n\t\n\ttagType \u003d {\"tagType\":\"UdtInstance\"}\n\t#Look for this udt type\n\ttypeId \u003d \"Objects/Air/VAV v2\"\n\tdef recursive_browser(base_path, type_id):\n\t\tfound_udt_paths \u003d []\n\t\tbrowse_results \u003d system.tag.browse(base_path)\n\t\tfor item in browse_results:\n\t\t\titem_fullPath \u003d item.get(\u0027fullPath\u0027, \u0027N/A\u0027)\n\t\t\titem_tag_type \u003d item.get(\u0027tagType\u0027, \u0027N/A\u0027)\n\t\t\titem_type_id \u003d item.get(\u0027typeId\u0027, \u0027N/A\u0027)\n\t\t\t\n\t\t\tif str(item_type_id) \u003d\u003d type_id:\n\t\t\t\tfound_udt_paths.append(item_fullPath)\n\t\t\tif str(item_tag_type) \u003d\u003d \"Folder\":\n\t\t\t\tfound_udt_paths.extend(recursive_browser(item_fullPath, type_id))\n\t\treturn found_udt_paths\n\treturn recursive_browser(path, typeId)\n",
"type": "script"
}
],
"type": "expr-struct"
},
"persistent": true
},
"params.auth": {
"paramDirection": "input",
"persistent": true
},
"params.tagPath": {
"paramDirection": "input",
"persistent": true
}
},
"props": {},
"root": {
"children": [
{
"children": [
{
"children": [
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tself.view.custom.OCmd.Send \u003d True"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "AutoBtn"
},
"position": {
"basis": "100%"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"path": "view.params.auth.control"
},
"type": "property"
}
}
},
"props": {
"primary": false,
"text": "Send to all VAV"
},
"type": "ia.input.button"
}
],
"meta": {
"name": "Row1"
},
"position": {
"basis": "50px"
},
"props": {
"style": {
"gap": "10px",
"overflow": "visible"
}
},
"type": "ia.container.flex"
}
],
"meta": {
"name": "Left control Container"
},
"position": {
"basis": "50%"
},
"props": {
"direction": "column",
"style": {
"gap": "10px",
"overflow": "visible"
}
},
"type": "ia.container.flex"
},
{
"children": [
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "50%"
},
"props": {
"text": "Occupied Temperature Setpoint",
"textStyle": {
"textAlign": "right"
}
},
"type": "ia.display.label"
},
{
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tpaths \u003d self.view.custom.tagPaths\n\ttags \u003d []\n\tvalues \u003d []\n\tfor path in paths:\n\t\ttags.append(\"{}/Control/Occupied Temp Setpoint\".format(path))\n\t\tvalues.append(self.props.value)\n\tsystem.tag.writeBlocking(tags, values) "
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "NumericEntryField"
},
"position": {
"basis": "50%",
"grow": 1
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"path": "view.params.auth.control"
},
"type": "property"
}
},
"props.style.color": {
"binding": {
"config": {
"expression": "if({this.props.enabled}, \u0027var(--tagvalue-color)\u0027, \u0027\u0027)"
},
"type": "expr"
}
},
"props.value": {
"binding": {
"config": {
"bidirectional": true,
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/Control/OCmd_OccTempSP"
},
"type": "tag"
}
}
},
"props": {
"inputBounds": {
"maximum": 104,
"minimum": 50
},
"style": {
"fontWeight": "bold",
"min-height": "30px"
}
},
"type": "ia.input.numeric-entry-field"
}
],
"meta": {
"name": "Row2"
},
"position": {
"basis": "58px"
},
"props": {
"style": {
"gap": "10px"
}
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "50%"
},
"props": {
"text": "Unoccupied Temperature Setpoint",
"textStyle": {
"textAlign": "right"
}
},
"type": "ia.display.label"
},
{
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tpaths \u003d self.view.custom.tagPaths\n\ttags \u003d []\n\tvalues \u003d []\n\tfor path in paths:\n\t\ttags.append(\"{}/Control/Unoccupied Temperature SP\".format(path))\n\t\tvalues.append(self.props.value)\n\tsystem.tag.writeBlocking(tags, values) "
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "NumericEntryField"
},
"position": {
"basis": "50%",
"grow": 1
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"path": "view.params.auth.control"
},
"type": "property"
}
},
"props.style.color": {
"binding": {
"config": {
"expression": "if({this.props.enabled}, \u0027var(--tagvalue-color)\u0027, \u0027\u0027)"
},
"type": "expr"
}
},
"props.value": {
"binding": {
"config": {
"bidirectional": true,
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/Control/OCmd_UnOccModeTempSP"
},
"type": "tag"
}
}
},
"props": {
"inputBounds": {
"maximum": 82,
"minimum": 65
},
"style": {
"fontWeight": "bold",
"min-height": "30px"
}
},
"type": "ia.input.numeric-entry-field"
}
],
"meta": {
"name": "Row3"
},
"position": {
"basis": "58px"
},
"props": {
"style": {
"gap": "10px"
}
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "50%"
},
"props": {
"text": "Occupied Mode Start Hour",
"textStyle": {
"textAlign": "right"
}
},
"type": "ia.display.label"
},
{
"meta": {
"name": "NumericEntryField"
},
"position": {
"basis": "50%",
"grow": 1
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"path": "view.params.auth.control"
},
"type": "property"
}
},
"props.style.color": {
"binding": {
"config": {
"expression": "if({this.props.enabled}, \u0027var(--tagvalue-color)\u0027, \u0027\u0027)"
},
"type": "expr"
}
},
"props.value": {
"binding": {
"config": {
"bidirectional": true,
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/Control/OCmd_OccModeStartHR"
},
"type": "tag"
}
}
},
"props": {
"style": {
"fontWeight": "bold",
"min-height": "30px"
}
},
"type": "ia.input.numeric-entry-field"
}
],
"meta": {
"name": "Row5"
},
"position": {
"basis": "58px"
},
"props": {
"style": {
"gap": "10px"
}
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "50%"
},
"props": {
"text": "Unoccupied Mode Start Hour",
"textStyle": {
"textAlign": "right"
}
},
"type": "ia.display.label"
},
{
"meta": {
"name": "NumericEntryField"
},
"position": {
"basis": "50%",
"grow": 1
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"path": "view.params.auth.control"
},
"type": "property"
}
},
"props.style.color": {
"binding": {
"config": {
"expression": "if({this.props.enabled}, \u0027var(--tagvalue-color)\u0027, \u0027\u0027)"
},
"type": "expr"
}
},
"props.value": {
"binding": {
"config": {
"bidirectional": true,
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/Control/OCmd_UnOccModeStartHR"
},
"type": "tag"
}
}
},
"props": {
"style": {
"fontWeight": "bold",
"min-height": "30px"
}
},
"type": "ia.input.numeric-entry-field"
}
],
"meta": {
"name": "Row6"
},
"position": {
"basis": "58px"
},
"props": {
"style": {
"gap": "10px"
}
},
"type": "ia.container.flex"
}
],
"meta": {
"name": "Right control Container"
},
"position": {
"basis": "50%"
},
"props": {
"direction": "column",
"style": {
"gap": "10px"
}
},
"type": "ia.container.flex"
}
],
"meta": {
"name": "root"
},
"props": {
"style": {
"classes": "containers/padded-container",
"gap": "10px"
}
},
"type": "ia.container.flex"
}
}