Files
Stream_PHX_A7/Gateways/FE/projects/.resources/060f4ba28c0fd361ac14107b504c4166feef27d116de40eb2efd88f82ae142c6

956 lines
32 KiB
Plaintext

{
"custom": {
"airOvr": false,
"allTags": [
{
"dataType": "Float4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"name": "Dehumidifier High Setpoint"
},
{
"dataType": "Float4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"name": "Dehumidifier Low Setpoint"
},
{
"dataType": "Float4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"name": "Economizer Enthalpy Enable SP"
},
{
"dataType": "Float4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"name": "Economizer Control Setpoint"
},
{
"dataType": "Float4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"name": "Supply Air Temp Override"
},
{
"dataType": "",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"name": "Emergency Override Alarm Delay Minutes"
},
{
"dataType": "Int4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"name": "Day of Week Enable"
},
{
"dataType": "Int4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"name": "Occupancy Mode Start Time"
},
{
"dataType": "Boolean",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"name": "Supply Air Temp Override En"
},
{
"dataType": "Int4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"name": "Unoccupancy Mode Start Time"
},
{
"dataType": "Int8",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"name": "Emergency Override Alarm Delay"
},
{
"dataType": "Float4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"name": "Space Temperature Setpoint"
}
],
"weekDay": 254
},
"params": {
"auth": {
"almAck": true,
"almShelve": true,
"config": true,
"control": true
},
"tagPath": "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU02"
},
"propConfig": {
"custom.airOvr": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/Config/Supply Air Temp Override En"
},
"type": "tag"
},
"persistent": true
},
"custom.allTags": {
"binding": {
"config": {
"struct": {
"tagPath": "{view.params.tagPath} + \"/Config\""
},
"waitOnAll": true
},
"enabled": false,
"transforms": [
{
"code": "\toutput \u003d []\n\ttry:\n\t\t# Simulate fetching tag configurations and sorting by name\n\t\tnodes \u003d system.tag.getConfiguration(value[\u0027tagPath\u0027], True)\n\t\tfor item in nodes:\n\t\t if \u0027tags\u0027 in item:\n\t\t \tsortedTags \u003d sorted(item[\u0027tags\u0027], key\u003dlambda x: x[\u0027name\u0027])\n\t\t \tsortedTags \u003d sorted(sortedTags, key\u003dlambda x: x.get(\u0027engUnit\u0027, \u0027misc\u0027) if x.get(\u0027engUnit\u0027, \u0027misc\u0027) !\u003d \"\" else \u0027misc\u0027)\n\t\t \t\n\t for tagConfig in sortedTags:\n\t if str(tagConfig[\u0027tagType\u0027]) \u003d\u003d \u0027AtomicTag\u0027:\n\t name \u003d tagConfig.get(\"name\", \"\")\n\t dataType \u003d tagConfig.get(\"dataType\", \"\")\n\t tagPath \u003d value[\u0027tagPath\u0027] + \u0027/\u0027 + name\n\t instance \u003d {\n\t \"instanceStyle\": {\n\t \"classes\": \"\"\n\t },\n\t \"instancePosition\": {},\n\t \"name\": name,\n\t \"dataType\": dataType\n\t }\n\t # Group based on name containing \u0027Power\u0027, \u0027Current\u0027, or \u0027Voltage\u0027\n\t output.append(instance)\n\t\t\n\t\t# Return or process the sorted output\n\t\treturn output\n\texcept:\n\t\treturn output",
"type": "script"
}
],
"type": "expr-struct"
},
"persistent": true
},
"custom.weekDay": {
"binding": {
"config": {
"bidirectional": true,
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/Config/Day of Week Enable"
},
"type": "tag"
},
"persistent": true
},
"params.auth": {
"paramDirection": "input",
"persistent": true
},
"params.tagPath": {
"paramDirection": "input",
"persistent": true
}
},
"props": {},
"root": {
"children": [
{
"children": [
{
"meta": {
"name": "FlexRepeater"
},
"position": {
"grow": 1
},
"propConfig": {
"custom.SA_Ovr": {
"binding": {
"config": {
"bidirectional": true,
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/Config/Supply Air Temp Override"
},
"type": "tag"
}
},
"custom.SA_Ovr_En": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/Config/Supply Air Temp Override EN"
},
"transforms": [
{
"code": "\tif value \u003d\u003d False:\n\t\tself.custom.SA_Ovr \u003d 0\n\treturn value",
"type": "script"
}
],
"type": "tag"
}
},
"props.instances": {
"binding": {
"config": {
"struct": {
"allTags": "{view.custom.allTags}",
"auth": "{view.params.auth.config}",
"tagPath": "{view.params.tagPath} + \"/Config\""
},
"waitOnAll": true
},
"enabled": false,
"transforms": [
{
"code": "\toutput \u003d []\n\tallTags \u003d system.util.jsonDecode(system.util.jsonEncode(value[\u0027allTags\u0027]))\n\t\n\tfor tag in allTags:\n\t\ttagName \u003d tag[\"name\"]\n\t\ttag[\"tagPath\"] \u003d value[\"tagPath\"] + \"/\" +tagName\n\t\ttag[\u0027enabled\u0027] \u003d value[\u0027auth\u0027]\n\t\toutput.append(tag)\n\t\t\n\treturn output",
"type": "script"
}
],
"type": "expr-struct"
}
},
"props.instances[0].enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
},
"props.instances[10].enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
},
"props.instances[1].enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
},
"props.instances[2].enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
},
"props.instances[3].enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
},
"props.instances[4].enabled": {
"binding": {
"config": {
"struct": {
"airOv": "{view.custom.airOvr}",
"auth": "{view.params.auth.config}"
},
"waitOnAll": true
},
"transforms": [
{
"expression": "{value}[\"airOv\"] \u0026\u0026 {value}[\"auth\"]",
"type": "expression"
}
],
"type": "expr-struct"
}
},
"props.instances[5].enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
},
"props.instances[6].enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"enabled": false,
"type": "property"
}
},
"props.instances[7].enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
},
"props.instances[8].enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
},
"props.instances[9].enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
}
},
"props": {
"alignContent": "flex-start",
"elementPosition": {
"basis": "50%",
"grow": 0
},
"instances": [
{
"dataType": "Float4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"max": 100,
"min": 0,
"name": "Dehumidifier High Setpoint",
"tagPath": "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU02/Config/Dehumidifier High Setpoint"
},
{
"dataType": "Float4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"max": 100,
"min": 0,
"name": "Dehumidifier Low Setpoint",
"tagPath": "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU02/Config/Dehumidifier Low Setpoint"
},
{
"dataType": "Float4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"max": 35,
"min": 25,
"name": "Economizer Enthalpy Enable SP",
"tagPath": "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU02/Config/Economizer Enthalpy Enable SP"
},
{
"dataType": "Float4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"max": 80,
"min": -30,
"name": "Economizer Enable Setpoint",
"tagPath": "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU02/Config/Economizer Enable Setpoint"
},
{
"dataType": "Float4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"max": 200,
"min": 0,
"name": "Supply Air Temp Override",
"tagPath": "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU02/Config/Supply Air Temp Override"
},
{
"dataType": "Int4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"max": 9999,
"min": 0,
"name": "Emergency Override Alarm Delay Minutes",
"tagPath": "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU02/Config/Emergency Override Alarm Delay Minutes",
"visible": true
},
{
"dataType": "Int4",
"enabled": true,
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"max": 120,
"min": 0,
"name": "Space Temperature Setpoint",
"tagPath": "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU02/Config/Space Temperature Setpoint"
},
{
"dataType": "Int4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"max": 9999,
"min": 0,
"name": "Occupancy Mode Start Time",
"tagPath": "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU02/Config/Occupancy Mode Start Time"
},
{
"dataType": "Boolean",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"max": 9999,
"min": -9999,
"name": "Supply Air Temp Override En",
"tagPath": "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU02/Config/Supply Air Temp Override En"
},
{
"dataType": "Int4",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"min": 0,
"name": "Unoccupancy Mode Start Time",
"tagPath": "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU02/Config/Unoccupancy Mode Start Time"
},
{
"dataType": "Int8",
"instancePosition": {},
"instanceStyle": {
"classes": ""
},
"min": 0,
"name": "Emergency Override Alarm Delay",
"tagPath": "[Ignition_Common_IO_Gtwy]Roof/SATB1_RF_RTU02/Config/Emergency Override Alarm Delay"
}
],
"loading": {
"order": "with-parent"
},
"path": "Library/Framework/Tag ConfigV2",
"style": {
"gap": "10px 0",
"padding": "10px"
},
"useDefaultViewHeight": false,
"useDefaultViewWidth": false,
"wrap": "wrap"
},
"type": "ia.display.flex-repeater"
},
{
"meta": {
"name": "Label"
},
"props": {
"text": "Day of the Week Enable"
},
"type": "ia.display.label"
},
{
"children": [
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tposition \u003d 1\n\tself.view.custom.weekDay \u003d self.view.custom.weekDay ^ (int(1) \u003c\u003c position)\n\t\n\t"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Monday Chbox"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
},
"props.selected": {
"binding": {
"config": {
"path": "view.custom.weekDay"
},
"transforms": [
{
"expression": "getBit({value},1)",
"type": "expression"
},
{
"fallback": false,
"inputType": "scalar",
"mappings": [
{
"input": 0,
"output": false
},
{
"input": 1,
"output": true
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"text": "Monday"
},
"type": "ia.input.checkbox"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tposition \u003d 2\n\tself.view.custom.weekDay \u003d self.view.custom.weekDay ^ (int(1) \u003c\u003c position)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Tuesday Chbox"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
},
"props.selected": {
"binding": {
"config": {
"path": "view.custom.weekDay"
},
"transforms": [
{
"expression": "getBit({value},2)",
"type": "expression"
},
{
"fallback": false,
"inputType": "scalar",
"mappings": [
{
"input": 0,
"output": false
},
{
"input": 1,
"output": true
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"text": "Tuesday"
},
"type": "ia.input.checkbox"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tposition \u003d 3\n\tself.view.custom.weekDay \u003d self.view.custom.weekDay ^ (int(1) \u003c\u003c position)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Wednesday Chbox"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
},
"props.selected": {
"binding": {
"config": {
"path": "view.custom.weekDay"
},
"transforms": [
{
"expression": "getBit({value},3)",
"type": "expression"
},
{
"fallback": false,
"inputType": "scalar",
"mappings": [
{
"input": 0,
"output": false
},
{
"input": 1,
"output": true
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"text": "Wednesday"
},
"type": "ia.input.checkbox"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tposition \u003d 4\n\tself.view.custom.weekDay \u003d self.view.custom.weekDay ^ (int(1) \u003c\u003c position)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Thursday Chbox"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
},
"props.selected": {
"binding": {
"config": {
"path": "view.custom.weekDay"
},
"transforms": [
{
"expression": "getBit({value},4)",
"type": "expression"
},
{
"fallback": false,
"inputType": "scalar",
"mappings": [
{
"input": 0,
"output": false
},
{
"input": 1,
"output": true
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"text": "Thursday"
},
"type": "ia.input.checkbox"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tposition \u003d 5\n\tself.view.custom.weekDay \u003d self.view.custom.weekDay ^ (int(1) \u003c\u003c position)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Friday Chbox"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
},
"props.selected": {
"binding": {
"config": {
"path": "view.custom.weekDay"
},
"transforms": [
{
"expression": "getBit({value},5)",
"type": "expression"
},
{
"fallback": false,
"inputType": "scalar",
"mappings": [
{
"input": 0,
"output": false
},
{
"input": 1,
"output": true
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"text": "Friday"
},
"type": "ia.input.checkbox"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tposition \u003d 6\n\tself.view.custom.weekDay \u003d self.view.custom.weekDay ^ (int(1) \u003c\u003c position)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Saturday Chbox"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
},
"props.selected": {
"binding": {
"config": {
"path": "view.custom.weekDay"
},
"transforms": [
{
"expression": "getBit({value},6)",
"type": "expression"
},
{
"fallback": false,
"inputType": "scalar",
"mappings": [
{
"input": 0,
"output": false
},
{
"input": 1,
"output": true
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"text": "Saturday"
},
"type": "ia.input.checkbox"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tposition \u003d 7\n\tself.view.custom.weekDay \u003d self.view.custom.weekDay ^ (int(1) \u003c\u003c position)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Sunday Chbox"
},
"propConfig": {
"props.enabled": {
"binding": {
"config": {
"path": "view.params.auth.config"
},
"type": "property"
}
},
"props.selected": {
"binding": {
"config": {
"path": "view.custom.weekDay"
},
"transforms": [
{
"expression": "getBit({value},7)",
"type": "expression"
},
{
"fallback": false,
"inputType": "scalar",
"mappings": [
{
"input": 0,
"output": false
},
{
"input": 1,
"output": true
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"text": "Sunday"
},
"type": "ia.input.checkbox"
}
],
"meta": {
"name": "FlexContainer"
},
"props": {
"alignContent": "center",
"alignItems": "center",
"justify": "space-evenly",
"style": {
"gap": "5px",
"padding": "5px"
},
"wrap": "wrap"
},
"type": "ia.container.flex"
}
],
"meta": {
"name": "FlexContainer_0"
},
"position": {
"basis": "100%"
},
"props": {
"direction": "column",
"style": {
"border": "1px solid var(--border)",
"gap": "10px 0",
"padding": "10px"
}
},
"type": "ia.container.flex"
}
],
"meta": {
"name": "root"
},
"props": {
"direction": "column",
"style": {
"classes": "containers/padded-container"
}
},
"type": "ia.container.flex"
}
}