{ "custom": {}, "params": { "historianSettings": { "dateFormat": "YYYY/MM/DD", "endDate": { "$": [ "ts", 0, 1731972985305 ], "$ts": 1730879940000 }, "export": { "dateFormat": "None", "timeFormat": "x" }, "measureOfTime": "hours", "mode": "historical", "penNamePathDepth": 1, "pointCount": 300, "rangeEndDate": { "$": [ "ts", 0, 1731972985305 ], "$ts": 1730879452730 }, "rangeSelectorPen": "histprov:Ignition_Hist_SATB1_IO1_default:/tag:Datahall 1/Development/GEN 1/Amps A", "rangeStartDate": { "$": [ "ts", 0, 1731972985305 ], "$ts": 1730733759000 }, "refreshRate": 1000, "responsiveDesignWidth": 100, "startDate": { "$": [ "ts", 0, 1731972985305 ], "$ts": 1730733759000 }, "tagBrowserStartPath": "", "timeFormat": "h:mm A", "unitOfTime": 4, "visibility": { "buttons": { "showAnnotationButton": false, "showFullscreenButton": true, "showMoreButton": true, "showPanZoomButton": true, "showRangeBrushButton": true, "showSettingsButton": false, "showTagBrowserButton": false, "showXTraceButton": true }, "showDateRangeSelector": true, "showPenControlDisplay": true, "showTagBrowser": false } }, "selectedPens": [ { "axis": "% RH", "data": { "aggregateMode": "LastValue", "source": "histprov:Ignition_Hist:/drv:ignition-satb1-io6:default:/tag:mmr1188/satb1_hs1_mmr1188_crac1/return air humidity" }, "display": { "breakLine": true, "interpolation": "curveLinear", "radius": 3, "styles": { "highlighted": { "fill": { "color": "#e51919", "opacity": 1 }, "stroke": { "color": "#e51919", "dashArray": 0, "opacity": 1, "width": 1 } }, "muted": { "fill": { "color": "#e51919", "opacity": 0.4 }, "stroke": { "color": "#e51919", "dashArray": 0, "opacity": 0.4, "width": 1 } }, "normal": { "fill": { "color": "#e51919", "opacity": 0.8 }, "stroke": { "color": "#e51919", "dashArray": 0, "opacity": 0.8, "width": 1 } }, "selected": { "fill": { "color": "#e51919", "opacity": 1 }, "stroke": { "color": "#e51919", "dashArray": 0, "opacity": 1, "width": 1 } } }, "type": "line" }, "enabled": true, "name": "Return Air Humidity", "plot": 1, "selectable": false, "visible": true } ] }, "propConfig": { "params.historianSettings": { "paramDirection": "input", "persistent": true }, "params.selectedPens": { "paramDirection": "input", "persistent": true } }, "props": { "defaultSize": { "width": 1167 } }, "root": { "children": [ { "children": [ { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "32px" }, "props": { "text": "Mode" }, "type": "ia.display.label" }, { "meta": { "name": "Dropdown" }, "position": { "basis": "36px" }, "propConfig": { "props.value": { "binding": { "config": { "path": "view.params.historianSettings.mode" }, "type": "property" } } }, "props": { "options": [ { "label": "Historical", "value": "historical" }, { "label": "Realtime", "value": "realtime" } ] }, "type": "ia.input.dropdown" } ], "meta": { "name": "Mode" }, "position": { "basis": "125px" }, "props": { "direction": "column", "style": { "gap": "5px", "paddingRight": "3px" } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "32px" }, "props": { "text": "Start Date" }, "type": "ia.display.label" }, { "meta": { "name": "DateTimeInput" }, "position": { "basis": "36px" }, "propConfig": { "props.value": { "binding": { "config": { "path": "view.params.historianSettings.startDate" }, "type": "property" } } }, "props": { "formattedValue": "Nov 4, 2024 9:22 AM" }, "type": "ia.input.date-time-input" } ], "meta": { "name": "StartDate" }, "position": { "basis": "125px" }, "propConfig": { "position.display": { "binding": { "config": { "expression": "{../Mode/Dropdown.props.value} \u003d \"historical\"" }, "type": "expr" } } }, "props": { "direction": "column", "style": { "gap": "5px", "paddingRight": "3px" } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "32px" }, "props": { "text": "End Date" }, "type": "ia.display.label" }, { "meta": { "name": "DateTimeInput" }, "position": { "basis": "36px" }, "propConfig": { "props.value": { "binding": { "config": { "path": "view.params.historianSettings.endDate" }, "type": "property" } } }, "props": { "formattedValue": "Nov 6, 2024 1:59 AM", "inputProps": { "style": { "fontSize": 12 } } }, "type": "ia.input.date-time-input" } ], "meta": { "name": "EndDate" }, "position": { "basis": "125px" }, "propConfig": { "position.display": { "binding": { "config": { "expression": "{../Mode/Dropdown.props.value} \u003d \"historical\"" }, "type": "expr" } } }, "props": { "direction": "column", "style": { "gap": "5px", "paddingRight": "3px" } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "32px" }, "props": { "text": "Most Recent" }, "type": "ia.display.label" }, { "children": [ { "meta": { "name": "NumericEntryField" }, "position": { "basis": "40px", "shrink": 0 }, "propConfig": { "props.value": { "binding": { "config": { "path": "view.params.historianSettings.unitOfTime" }, "type": "property" } } }, "props": { "format": 0 }, "type": "ia.input.numeric-entry-field" }, { "meta": { "name": "Dropdown" }, "position": { "basis": "256px" }, "propConfig": { "props.value": { "binding": { "config": { "path": "view.params.historianSettings.measureOfTime" }, "type": "property" } } }, "props": { "options": [ { "label": "min", "value": "minutes" }, { "label": "hour", "value": "hours" }, { "label": "day", "value": "days" } ] }, "type": "ia.input.dropdown" } ], "meta": { "name": "FlexContainer" }, "position": { "basis": "37px" }, "props": { "style": { "gap": "1px" } }, "type": "ia.container.flex" } ], "meta": { "name": "RealTime" }, "position": { "basis": "145px", "shrink": 0 }, "propConfig": { "position.display": { "binding": { "config": { "expression": "{../Mode/Dropdown.props.value} \u003d \"realtime\"" }, "type": "expr" } } }, "props": { "direction": "column", "style": { "gap": "5px", "paddingRight": "3px" } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "32px" }, "props": { "text": "Interval" }, "type": "ia.display.label" }, { "children": [ { "meta": { "name": "NumericEntryField" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "format": 0, "value": 1 }, "type": "ia.input.numeric-entry-field" }, { "meta": { "name": "Dropdown" }, "position": { "basis": "256px" }, "props": { "options": [ { "label": "min", "value": "min" }, { "label": "hour", "value": "hour" }, { "label": "day", "value": "day" } ], "value": "min" }, "type": "ia.input.dropdown" } ], "meta": { "name": "FlexContainer" }, "position": { "basis": "37px" }, "props": { "style": { "gap": "1px" } }, "type": "ia.container.flex" } ], "meta": { "name": "Interval" }, "position": { "basis": "135px", "shrink": 0 }, "props": { "direction": "column", "style": { "gap": "5px", "paddingRight": "3px" } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "32px" }, "props": { "text": "Calculation" }, "type": "ia.display.label" }, { "meta": { "name": "Dropdown" }, "position": { "basis": "36px" }, "props": { "options": [ { "label": "Last Value", "value": "LastValue" }, { "label": "Average", "value": "SimpleAverage" }, { "label": "Time Weighted Avg", "value": "Average" }, { "label": "Minimum", "value": "Minimum" }, { "label": "Maximum", "value": "Maximum" }, { "label": "Sum", "value": "Sum" }, { "label": "Range", "value": "Range" }, { "label": "Variance", "value": "Variance" }, { "label": "Std Dev", "value": "StdDev" }, { "label": "Min Max", "value": "MinMax" } ], "value": "LastValue" }, "type": "ia.input.dropdown" } ], "meta": { "name": "Calculation" }, "position": { "basis": "175px" }, "props": { "direction": "column", "style": { "gap": "5px", "paddingRight": "3px" } }, "type": "ia.container.flex" }, { "children": [ { "events": { "component": { "onActionPerformed": { "config": { "script": "\tspp \u003d self.parent.parent\n\thistMode \u003d spp.getChild(\"Mode\").getChild(\"Dropdown\").props.value\n\tstartDate \u003d spp.getChild(\"StartDate\").getChild(\"DateTimeInput\").props.value\n\tendDate \u003d spp.getChild(\"EndDate\").getChild(\"DateTimeInput\").props.value\n\trecUnit \u003d spp.getChild(\"RealTime\").getChild(\"FlexContainer\").getChild(\"NumericEntryField\").props.value\n\trecMeasure \u003d spp.getChild(\"RealTime\").getChild(\"FlexContainer\").getChild(\"Dropdown\").props.value\n\tintervalUnit \u003d spp.getChild(\"Interval\").getChild(\"FlexContainer\").getChild(\"NumericEntryField\").props.value\n\tintervalMeasure \u003d spp.getChild(\"Interval\").getChild(\"FlexContainer\").getChild(\"Dropdown\").props.value\n\taggMethod \u003d spp.getChild(\"Calculation\").getChild(\"Dropdown\").props.value\n\t\n\tpaths \u003d[point[\"data\"][\"source\"] for point in self.view.params.selectedPens]\n\t\n\tif histMode \u003d\u003d \"realtime\":\n\t\tendDate \u003d system.date.now()\n\t\tif recMeasure \u003d\u003d \"hours\":\n\t\t\trecUnit \u003d 60 * recUnit\n\t\telif recMeasure \u003d\u003d \"days\":\n\t\t\trecUnit \u003d 1440 * recUnit\n\t\tstartDate \u003d system.date.addMinutes(endDate, -(recUnit))\n\telse:\n\t\tpass\n\t\n\tintervalMinutes \u003d intervalUnit\n\tif intervalMeasure\u003d\u003d \"hour\":\n\t\tintervalMinutes \u003d intervalUnit * 60\n\telif intervalMeasure \u003d\u003d \"day\":\n\t\tintervalMinutes \u003d intervalUnit * 1440\n#\tsystem.perspective.print(system.tag.queryTagHistory(paths, startDate, endDate, -1, aggMethod, intervalMinutes\u003dintervalMinutes))\n\tspp.parent.getChild(\"Table\").props.data \u003d system.tag.queryTagHistory(paths, startDate, endDate, -1, aggMethod, intervalMinutes\u003dintervalMinutes)" }, "scope": "G", "type": "script" } }, "dom": { "onClick": { "config": { "script": "\tspp \u003d self.parent.parent\n\thistMode \u003d spp.getChild(\"Mode\").getChild(\"Dropdown\").props.value\n\tstartDate \u003d spp.getChild(\"StartDate\").getChild(\"DateTimeInput\").props.value\n\tendDate \u003d spp.getChild(\"EndDate\").getChild(\"DateTimeInput\").props.value\n\trecUnit \u003d spp.getChild(\"RealTime\").getChild(\"FlexContainer\").getChild(\"NumericEntryField\").props.value\n\trecMeasure \u003d spp.getChild(\"RealTime\").getChild(\"FlexContainer\").getChild(\"Dropdown\").props.value\n\tintervalUnit \u003d spp.getChild(\"Interval\").getChild(\"FlexContainer\").getChild(\"NumericEntryField\").props.value\n\tintervalMeasure \u003d spp.getChild(\"Interval\").getChild(\"FlexContainer\").getChild(\"Dropdown\").props.value\n\taggMethod \u003d spp.getChild(\"Calculation\").getChild(\"Dropdown\").props.value\n\t\n\tpaths \u003d[point[\"data\"][\"source\"] for point in self.view.params.selectedPens]\n\t\n\tif histMode \u003d\u003d \"realtime\":\n\t\tendDate \u003d system.date.now()\n\t\tif recMeasure \u003d\u003d \"hours\":\n\t\t\trecUnit \u003d 60 * recUnit\n\t\telif recMeasure \u003d\u003d \"days\":\n\t\t\trecUnit \u003d 1440 * recUnit\n\t\tstartDate \u003d system.date.addMinutes(endDate, -(recUnit))\n\telse:\n\t\tpass\n\t\n\tintervalMinutes \u003d intervalUnit\n\tif intervalMeasure\u003d\u003d \"hour\":\n\t\tintervalMinutes \u003d intervalUnit * 60\n\telif intervalMeasure \u003d\u003d \"day\":\n\t\tintervalMinutes \u003d intervalUnit * 1440\n#\tsystem.perspective.print(system.tag.queryTagHistory(paths, startDate, endDate, -1, aggMethod, intervalMinutes\u003dintervalMinutes))\n\tspp.parent.getChild(\"Table\").props.data \u003d system.tag.queryTagHistory(paths, startDate, endDate, -1, aggMethod, intervalMinutes\u003dintervalMinutes)" }, "enabled": false, "scope": "G", "type": "script" } } }, "meta": { "name": "Set" }, "position": { "basis": "34px" }, "props": { "text": "Set" }, "type": "ia.input.button" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tds \u003d self.parent.parent.parent.getChild(\"Table\").props.data\n\tbyteData \u003d system.dataset.toExcel(True, [ds], [\"Trend\"])\n\tfName \u003d \"EQ Data Export.xls\"%()\n\tsystem.perspective.download(fName, byteData)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Export" }, "position": { "basis": "34px" }, "props": { "text": "Export" }, "type": "ia.input.button" } ], "meta": { "name": "Buttons" }, "position": { "basis": "125px" }, "props": { "direction": "column", "justify": "space-around" }, "type": "ia.container.flex" } ], "meta": { "name": "Settings" }, "position": { "basis": "85px", "shrink": 0 }, "type": "ia.container.flex" }, { "meta": { "name": "Table" }, "position": { "basis": "400px", "grow": 1, "shrink": 0 }, "propConfig": { "props.columns": { "binding": { "config": { "path": "this.props.data" }, "transforms": [ { "code": "\timport copy\n\tallCols \u003d []\n\ttry:\n\t\theaders \u003d system.dataset.getColumnHeaders(value)\n\t\ttemplate \u003d {\n\t\t\t \"field\": \"\",\n\t\t\t \"visible\": True,\n\t\t\t \"editable\": False,\n\t\t\t \"render\": \"auto\",\n\t\t\t \"justify\": \"auto\",\n\t\t\t \"align\": \"center\",\n\t\t\t \"resizable\": False,\n\t\t\t \"sortable\": False,\n\t\t\t \"sort\": \"none\",\n\t\t\t \"filter\": {\n\t\t\t \"enabled\": False,\n\t\t\t \"visible\": \"on-hover\",\n\t\t\t \"string\": {\n\t\t\t \"condition\": \"\",\n\t\t\t \"value\": \"\"\n\t\t\t },\n\t\t\t \"number\": {\n\t\t\t \"condition\": \"\",\n\t\t\t \"value\": \"\"\n\t\t\t },\n\t\t\t \"boolean\": {\n\t\t\t \"condition\": \"\"\n\t\t\t },\n\t\t\t \"date\": {\n\t\t\t \"condition\": \"\",\n\t\t\t \"value\": \"\"\n\t\t\t }\n\t\t\t },\n\t\t\t \"viewPath\": \"\",\n\t\t\t \"viewParams\": {},\n\t\t\t \"boolean\": \"checkbox\",\n\t\t\t \"number\": \"value\",\n\t\t\t \"toggleSwitch\": {\n\t\t\t \"color\": {\n\t\t\t \"selected\": \"\",\n\t\t\t \"unselected\": \"\"\n\t\t\t }\n\t\t\t },\n\t\t\t \"nullFormat\": {\n\t\t\t \"includeNullStrings\": False,\n\t\t\t \"strict\": False,\n\t\t\t \"nullFormatValue\": \"\"\n\t\t\t },\n\t\t\t \"numberFormat\": \"0,0.##\",\n\t\t\t \"dateFormat\": \"MM/DD/YYYY\",\n\t\t\t \"width\": \"\",\n\t\t\t \"strictWidth\": False,\n\t\t\t \"style\": {\n\t\t\t \"classes\": \"\"\n\t\t\t },\n\t\t\t \"header\": {\n\t\t\t \"title\": \"\",\n\t\t\t \"justify\": \"left\",\n\t\t\t \"align\": \"center\",\n\t\t\t \"style\": {\n\t\t\t \"classes\": \"\"\n\t\t\t }\n\t\t\t }\n\t\t\t}\n\t\t\n\t\tfor colname in headers:\n\t\t\tt1 \u003d copy.deepcopy(template)\n\t\t\tt1[\"field\"] \u003d colname\n\t\t\tif colname \u003d\u003d \"t_stamp\":\n\t\t\t\tt1[\"render\"] \u003d \"date\"\n\t\t\t\tt1[\"dateFormat\"] \u003d \"MM/DD/YYYY HH:mm:ss\"\n\t\t\t\tt1[\"header\"][\"title\"] \u003d \"Timestamp\"\n\t\t\tallCols.append(t1)\n\texcept:\n\t\tpass\n\treturn allCols\n\t", "type": "script" } ], "type": "property" } }, "props.data": { "persistent": false } }, "props": { "emptyMessage": { "noData": { "text": "No Data Found" } } }, "type": "ia.display.table" } ], "meta": { "name": "root" }, "props": { "direction": "column" }, "type": "ia.container.flex" } }