2026-04-24 FE Backup

This commit is contained in:
2026-04-24 12:37:16 +00:00
parent ace79b82f7
commit 0ba11a23b8
3705 changed files with 1240402 additions and 0 deletions

View File

@@ -0,0 +1,314 @@
{
"custom": {
"allTags": [
{
"dataType": "Float4",
"displaySelection": 0,
"format": 0,
"instancePosition": 10,
"instanceStyle": {
"classes": ""
},
"name": "CHW Valve Command",
"options": []
},
{
"dataType": "Float4",
"displaySelection": 0,
"format": "0.0",
"instancePosition": 1000,
"instanceStyle": {
"classes": ""
},
"name": "Fan Speed 1",
"options": []
},
{
"dataType": "Float4",
"displaySelection": 0,
"format": "0.0",
"instancePosition": 1005,
"instanceStyle": {
"classes": ""
},
"name": "Fan Speed 2",
"options": []
},
{
"dataType": "Float4",
"displaySelection": 0,
"format": 0,
"instancePosition": 1010,
"instanceStyle": {
"classes": ""
},
"name": "Fan Speed 3",
"options": []
},
{
"dataType": "Float4",
"displaySelection": 0,
"format": "0.0",
"instancePosition": 7,
"instanceStyle": {
"classes": ""
},
"name": "Supply Fan Speed Command",
"options": []
},
{
"dataType": "Float4",
"displaySelection": 0,
"format": "0.0",
"instancePosition": 8,
"instanceStyle": {
"classes": ""
},
"name": "Return Air Humidity",
"options": []
},
{
"dataType": "Boolean",
"displaySelection": 0,
"format": "0.0",
"heart": true,
"instancePosition": 999,
"instanceStyle": {
"classes": ""
},
"name": "BMS Heart Beat",
"options": []
},
{
"dataType": "Boolean",
"displaySelection": 1,
"format": "0.0",
"instancePosition": 999,
"instanceStyle": {
"classes": ""
},
"name": "Comms",
"options": [
"Disconnected",
"Connected"
]
},
{
"dataType": "Boolean",
"displaySelection": 1,
"format": "0.0",
"instancePosition": 1002,
"instanceStyle": {
"classes": ""
},
"name": "Fan 1 Status",
"options": [
"Off",
"Running"
]
},
{
"dataType": "Boolean",
"displaySelection": 1,
"format": "0.0",
"instancePosition": 1007,
"instanceStyle": {
"classes": ""
},
"name": "Fan 2 Status",
"options": [
"Off",
"Running"
]
},
{
"dataType": "Boolean",
"displaySelection": 1,
"format": "0.0",
"instancePosition": 1012,
"instanceStyle": {
"classes": ""
},
"name": "Fan 3 Status",
"options": [
"Off",
"Running"
]
},
{
"dataType": "Boolean",
"displaySelection": 1,
"format": "0.0",
"instancePosition": 900,
"instanceStyle": {
"classes": ""
},
"name": "Control Mode",
"options": [
"BMS",
"Hand"
]
},
{
"dataType": "Float4",
"displaySelection": 0,
"format": "0.0",
"instancePosition": 9,
"instanceStyle": {
"classes": ""
},
"name": "Return Air Temperature",
"options": []
},
{
"dataType": "Float4",
"displaySelection": 0,
"format": "0.0",
"instancePosition": 7,
"instanceStyle": {
"classes": ""
},
"name": "Supply Air Temperature",
"options": []
},
{
"dataType": "Boolean",
"displaySelection": 1,
"format": "0.0",
"instancePosition": 12,
"instanceStyle": {
"classes": ""
},
"name": "Dirty Filter",
"options": [
"OK",
"Dirty"
]
},
{
"dataType": "Float4",
"displaySelection": 0,
"format": "###.##",
"instancePosition": 999,
"instanceStyle": {
"classes": ""
},
"name": "Run Hours",
"options": []
}
],
"dictionary": {
"ER1242": 1,
"key_1": 2
},
"room": "ER1242"
},
"params": {
"tagPath": "[Ignition_SATB1_IO1_default]ER1242/SATB1_P1_1_ER1242_CRAH_01"
},
"propConfig": {
"custom.allTags": {
"binding": {
"config": {
"struct": {
"tagPath": "{view.params.tagPath}"
},
"waitOnAll": true
},
"enabled": false,
"transforms": [
{
"code": "\toutput \u003d []\n\t# Simulate fetching tag configurations and sorting by name\n\tnodes \u003d system.tag.getConfiguration(value[\u0027tagPath\u0027], True)\n\tfor item in nodes:\n\t if \u0027tags\u0027 in item:\n\t \tsortedTags \u003d sorted(item[\u0027tags\u0027], key\u003dlambda x: x[\u0027name\u0027])\n\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 for tagConfig in sortedTags:\n if str(tagConfig[\u0027tagType\u0027]) \u003d\u003d \u0027AtomicTag\u0027:\n name \u003d tagConfig.get(\"name\", \"\")\n dataType \u003d tagConfig.get(\"dataType\", \"\")\n tagPath \u003d value[\u0027tagPath\u0027] + \u0027/\u0027 + name\n if dataType \u003d\u003d \u0027Boolean\u0027:\n \tdisplaySel \u003d 1\n else:\n \tdisplaySel \u003d 0\n instance \u003d {\n \"instanceStyle\": {\n \"classes\": \"\"\n },\n \"instancePosition\": 999,\n \"name\": name,\n \"dataType\": dataType,\n \"displaySelection\": displaySel,\n \"format\": \"0.0\",\n \"options\": []\n }\n output.append(instance)\n\t# Return or process the sorted output\n\treturn output",
"type": "script"
}
],
"type": "expr-struct"
},
"persistent": true
},
"custom.dictionary": {
"persistent": true
},
"custom.room": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"tagPath": "{view.params.tagPath}"
},
"tagPath": "{tagPath}/Meta/Room"
},
"type": "tag"
},
"persistent": true
},
"params.tagPath": {
"paramDirection": "input",
"persistent": true
}
},
"props": {},
"root": {
"children": [
{
"meta": {
"name": "FlexRepeater"
},
"position": {
"basis": "100%"
},
"propConfig": {
"props.instances": {
"binding": {
"config": {
"struct": {
"allTags": "{view.custom.allTags}",
"tagPath": "{view.params.tagPath}"
},
"waitOnAll": true
},
"transforms": [
{
"code": "\toutput \u003d []\n\tallTags \u003d system.util.jsonDecode(system.util.jsonEncode(value[\u0027allTags\u0027]))\n\tfor tag in allTags:\n\t\ttagName \u003d tag[\"name\"]\n\t\ttag[\"tagPath\"] \u003d value[\"tagPath\"] + \"/\" +tagName\n\t\toutput.append(tag)\n\toutput_sorted \u003d sorted(output, key\u003dlambda item: item[\"instancePosition\"])\n\treturn output_sorted",
"type": "script"
}
],
"type": "expr-struct"
}
}
},
"props": {
"alignContent": "flex-start",
"elementPosition": {
"basis": "50%",
"grow": 0
},
"loading": {
"order": "with-parent"
},
"path": "Library/Framework/Tag Info",
"style": {
"border": "1px solid var(--border)",
"gap": "10px 0",
"padding": "10px"
},
"useDefaultViewHeight": false,
"useDefaultViewWidth": false,
"wrap": "wrap"
},
"type": "ia.display.flex-repeater"
}
],
"meta": {
"name": "root"
},
"props": {
"direction": "column",
"style": {
"classes": "containers/padded-container"
}
},
"type": "ia.container.flex"
}
}