We are making a call to an Nhaystack service which is running on Niagara 4.8 workbench. We have sites, equipment(AHU) created on a Demo station
API Call: https://tridium.dev.iot.synchronoss.net/haystack/read?filter=equipRef
Following is JSON Payload from the response: I have 2 questions:
How can I exclude/filter out the cols field from the API response
I have a column name "name": "dischargeAirFanCmd". I need to have a value assigned to this column "dischargeAirFanCmd" as the value of the column "curVal".
For your first question I have reviewed the REST API specifications as documented on this website and I couldn't see any reference to the server response being able to exclude specific columns. Therefore this will not be supported in nhaystack. If you wish to do this you would need to do some processing of the response grid in your client before presenting the grid to the user or the next step of your process.
For your second question I'm not sure how to achieve what you want. When using the control points in a Niagara station the value of the out slot is automatically applied to the curVal tag via implicit tagging. In nhaystack there isn't a configurable option to change where the value of the out slot is set.
Again, you could achieve this with some processing of the response on your client.
Justin ScottMon 16 Dec 2019
For the exclusion here is a Javascript example of how I process the payload responses:
Most languages should allow you to point to a path on the DICT/Object/etc. JS you get a good bit of flexibility as it treats JSON like a JS Object with certain operations. Object.Keys() and Object.Values() are good to parse with if you just want the keys and/or values as well as doing some iterations over arrays from an object.
Ramamurthi Iyer Tue 10 Dec 2019
Hi,
We are making a call to an Nhaystack service which is running on Niagara 4.8 workbench. We have sites, equipment(AHU) created on a Demo station
API Call: https://tridium.dev.iot.synchronoss.net/haystack/read?filter=equipRef
Following is JSON Payload from the response: I have 2 questions:
colsfield from the API response"name": "dischargeAirFanCmd". I need to have a value assigned to this column "dischargeAirFanCmd" as the value of the column "curVal".Is that possible as per API specifications?
{
"meta": { "ver": "2.0" }, "cols": [ { "name": "cur" }, { "name": "tz" }, { "name": "air" }, { "name": "curStatus" }, { "name": "point" }, { "name": "dischargeAirFanCmd" }, { "name": "writable" }, { "name": "dis" }, { "name": "curErr" }, { "name": "fan" }, { "name": "curVal" }, { "name": "writeStatus" }, { "name": "discharge" }, { "name": "axType" }, { "name": "navName" }, { "name": "equipRef" }, { "name": "id" }, { "name": "kind" }, { "name": "writeLevel" }, { "name": "axSlotPath" }, { "name": "siteRef" }, { "name": "enum" }, { "name": "writeVal" }, { "name": "writeErr" }, { "name": "axStatus" }, { "name": "cmd" }, { "name": "actions" }, { "name": "axAnnotated" }, { "name": "precision" }, { "name": "maxVal" }, { "name": "minVal" }, { "name": "unit" }, { "name": "hisErr" }, { "name": "his" }, { "name": "hisStatus" }, { "name": "hisInterpolate" } ], "rows": [ { "cur": "m:", "tz": "UTC", "air": "m:", "curStatus": "ok", "point": "m:", "dischargeAirFanCmd": "m:", "writable": "m:", "dis": "Rackspace AHU_01 SFanCmd", "curErr": "", "fan": "m:", "curVal": false, "writeStatus": "ok", "discharge": "m:", "axType": "s:control:BooleanWritable", "navName": "SFanCmd", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.SFanCmd", "kind": "Bool", "writeLevel": "n:10", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/SFanCmd", "siteRef": "r:S.Rackspace", "enum": "CmdOff,CmdOn", "writeVal": false, "writeErr": "", "axStatus": "ok", "cmd": "m:", "actions": "s:ver:\"3.0\"\ndis,expr\n\"HandOn\",\"pointOverride($self, true, $duration)\"\n\"HandOff\",\"pointOverride($self, false, $duration)\"\n\"BasCtrl\",\"pointAuto($self)\"\n", "axAnnotated": "m:" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 SFanSts", "curErr": "", "curVal": false, "writeStatus": "ok", "axType": "s:control:BooleanWritable", "navName": "SFanSts", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.SFanSts", "kind": "Bool", "writeLevel": "n:10", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/SFanSts", "siteRef": "r:S.Rackspace", "enum": "Off,On", "writeVal": false, "writeErr": "", "axStatus": "unackedAlarm" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 ClgCmd", "curErr": "", "curVal": "n:0.0 %", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "ClgCmd", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.ClgCmd", "kind": "Number", "writeLevel": "n:10", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/ClgCmd", "siteRef": "r:S.Rackspace", "writeVal": "n:0.0", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"ClgOverride\",\"pointOverride($self, $val, $duration)\"\n\"BasCtrl\",\"pointAuto($self)\"\n", "precision": "n:1.0", "maxVal": "n:100", "minVal": "n:0.0", "unit": "%" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 RFanSts", "curErr": "", "curVal": false, "writeStatus": "ok", "axType": "s:control:BooleanWritable", "navName": "RFanSts", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.RFanSts", "kind": "Bool", "writeLevel": "n:10", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/RFanSts", "siteRef": "r:S.Rackspace", "enum": "Off,On", "writeVal": false, "writeErr": "", "axStatus": "unackedAlarm" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 RFanCmd", "curErr": "", "curVal": false, "writeStatus": "ok", "axType": "s:control:BooleanWritable", "navName": "RFanCmd", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.RFanCmd", "kind": "Bool", "writeLevel": "n:10", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/RFanCmd", "siteRef": "r:S.Rackspace", "enum": "CmdOff,CmdOn", "writeVal": false, "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"HandOn\",\"pointOverride($self, true, $duration)\"\n\"HandOff\",\"pointOverride($self, false, $duration)\"\n\"BasCtrl\",\"pointAuto($self)\"\n" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 HtgCmd", "curErr": "", "curVal": "n:0.0 %", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "HtgCmd", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.HtgCmd", "kind": "Number", "writeLevel": "n:10", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/HtgCmd", "siteRef": "r:S.Rackspace", "writeVal": "n:0.0", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"HtgOverride\",\"pointOverride($self, $val, $duration)\"\n\"BasCtrl\",\"pointAuto($self)\"\n", "precision": "n:1.0", "maxVal": "n:100", "minVal": "n:0.0", "unit": "%" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 OaDmp", "curErr": "", "curVal": "n:60 %", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "OaDmp", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.OaDmp", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/OaDmp", "siteRef": "r:S.Rackspace", "writeVal": "n:60", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"DmpOverride\",\"pointOverride($self, $val, $duration)\"\n\"BasCtrl\",\"pointAuto($self)\"\n", "precision": "n:1.0", "maxVal": "n:100", "minVal": "n:0.0", "unit": "%" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 EaDmp", "curErr": "", "curVal": "n:60 %", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "EaDmp", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.EaDmp", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/EaDmp", "siteRef": "r:S.Rackspace", "writeVal": "n:60", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"DmpOverride\",\"pointOverride($self, $val, $duration)\"\n\"BasCtrl\",\"pointAuto($self)\"\n", "precision": "n:1.0", "maxVal": "n:100", "minVal": "n:0.0", "unit": "%" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 RaDmp", "curErr": "", "curVal": "n:60 %", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "RaDmp", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.RaDmp", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/RaDmp", "siteRef": "r:S.Rackspace", "writeVal": "n:60", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"DmpOverride\",\"pointOverride($self, $val, $duration)\"\n\"BasCtrl\",\"pointAuto($self)\"\n", "precision": "n:1.0", "maxVal": "n:100", "minVal": "n:0.0", "unit": "%" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 FilterAlm", "curErr": "", "curVal": "null", "writeStatus": "unknown", "axType": "s:control:BooleanWritable", "navName": "FilterAlm", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.FilterAlm", "kind": "Bool", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/FilterAlm", "siteRef": "r:S.Rackspace", "enum": "Normal,InAlarm", "writeVal": "null", "writeErr": "", "axStatus": "null" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 RaTemp", "curErr": "", "curVal": "n:150 °F", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "RaTemp", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.RaTemp", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/RaTemp", "siteRef": "r:S.Rackspace", "writeVal": "n:150", "writeErr": "", "axStatus": "alarm,unackedAlarm", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n", "precision": "n:2", "maxVal": "n:INF", "minVal": "n:-INF", "unit": "°F", "hisErr": "", "his": "m:", "hisStatus": "ok", "hisInterpolate": "linear" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 RaCo2", "curErr": "", "curVal": "n:600 ppm", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "RaCo2", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.RaCo2", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/RaCo2", "siteRef": "r:S.Rackspace", "writeVal": "n:600", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n", "precision": "n:2", "maxVal": "n:INF", "minVal": "n:-INF", "unit": "ppm", "hisErr": "", "his": "m:", "hisStatus": "ok", "hisInterpolate": "linear" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 RaFlow", "curErr": "", "curVal": "n:50 cfm", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "RaFlow", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.RaFlow", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/RaFlow", "siteRef": "r:S.Rackspace", "writeVal": "n:50", "writeErr": "", "axStatus": "alarm,unackedAlarm", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n", "precision": "n:1.0", "maxVal": "n:INF", "minVal": "n:-INF", "unit": "cfm", "hisErr": "", "his": "m:", "hisStatus": "ok", "hisInterpolate": "linear" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 RFanSpeed", "curErr": "", "curVal": "n:0.0 %", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "RFanSpeed", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.RFanSpeed", "kind": "Number", "writeLevel": "n:10", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/RFanSpeed", "siteRef": "r:S.Rackspace", "writeVal": "n:0.0", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"FanOverride\",\"pointOverride($self, $val, $duration)\"\n\"BasCtrl\",\"pointAuto($self)\"\n", "precision": "n:1.0", "maxVal": "n:100", "minVal": "n:0.0", "unit": "%" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 SFanSpeed", "curErr": "", "curVal": "n:0.0 %", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "SFanSpeed", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.SFanSpeed", "kind": "Number", "writeLevel": "n:10", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/SFanSpeed", "siteRef": "r:S.Rackspace", "writeVal": "n:0.0", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"FanOverride\",\"pointOverride($self, $val, $duration)\"\n\"BasCtrl\",\"pointAuto($self)\"\n", "precision": "n:1.0", "maxVal": "n:100", "minVal": "n:0.0", "unit": "%" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 OaTemp", "curErr": "", "curVal": "n:70 °F", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "OaTemp", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.OaTemp", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/OaTemp", "siteRef": "r:S.Rackspace", "writeVal": "n:70", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n", "precision": "n:2", "maxVal": "n:INF", "minVal": "n:-INF", "unit": "°F", "hisErr": "", "his": "m:", "hisStatus": "ok", "hisInterpolate": "linear" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 OaCo2", "curErr": "", "curVal": "n:300 ppm", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "OaCo2", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.OaCo2", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/OaCo2", "siteRef": "r:S.Rackspace", "writeVal": "n:300", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n", "precision": "n:2", "maxVal": "n:INF", "minVal": "n:-INF", "unit": "ppm", "hisErr": "", "his": "m:", "hisStatus": "ok", "hisInterpolate": "linear" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 OaFlow", "curErr": "", "curVal": "n:1500 cfm", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "OaFlow", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.OaFlow", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/OaFlow", "siteRef": "r:S.Rackspace", "writeVal": "n:1500", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n", "precision": "n:1.0", "maxVal": "n:INF", "minVal": "n:-INF", "unit": "cfm", "hisErr": "", "his": "m:", "hisStatus": "ok", "hisInterpolate": "linear" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 SaTemp", "curErr": "", "curVal": "n:70 °F", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "SaTemp", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.SaTemp", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/SaTemp", "siteRef": "r:S.Rackspace", "writeVal": "n:70", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n", "precision": "n:2", "maxVal": "n:INF", "minVal": "n:-INF", "unit": "°F", "hisErr": "", "his": "m:", "hisStatus": "ok", "hisInterpolate": "linear" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 SaFlow", "curErr": "", "curVal": "n:1500 cfm", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "SaFlow", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.SaFlow", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/SaFlow", "siteRef": "r:S.Rackspace", "writeVal": "n:1500", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n", "precision": "n:1.0", "maxVal": "n:INF", "minVal": "n:-INF", "unit": "cfm", "hisErr": "", "his": "m:", "hisStatus": "ok", "hisInterpolate": "linear" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 SaStatic", "curErr": "", "curVal": "n:3 in/wc", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "SaStatic", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.SaStatic", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/SaStatic", "siteRef": "r:S.Rackspace", "writeVal": "n:3", "writeErr": "", "axStatus": "alarm,unackedAlarm", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n", "precision": "n:1.0", "maxVal": "n:5", "minVal": "n:0.0", "unit": "in/wc", "hisErr": "", "his": "m:", "hisStatus": "ok", "hisInterpolate": "linear" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 SaStaticSp", "curErr": "", "curVal": "n:1.5 in/wc", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "SaStaticSp", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.SaStaticSp", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/SaStaticSp", "siteRef": "r:S.Rackspace", "writeVal": "n:1.5", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n", "precision": "n:1.0", "maxVal": "n:5", "minVal": "n:0.0", "unit": "in/wc" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 SFanMinSp", "curErr": "", "curVal": "n:30 %", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "SFanMinSp", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.SFanMinSp", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/SFanMinSp", "siteRef": "r:S.Rackspace", "writeVal": "n:30", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n", "precision": "n:1.0", "maxVal": "n:100", "minVal": "n:0.0", "unit": "%" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 SFanMaxSp", "curErr": "", "curVal": "n:100 %", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "SFanMaxSp", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.SFanMaxSp", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/SFanMaxSp", "siteRef": "r:S.Rackspace", "writeVal": "n:100", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n", "precision": "n:1.0", "maxVal": "n:100", "minVal": "n:0.0", "unit": "%" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 SaSp", "curErr": "", "curVal": "n:75 °F", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "SaSp", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.SaSp", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/SaSp", "siteRef": "r:S.Rackspace", "writeVal": "n:75", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n", "precision": "n:2", "maxVal": "n:INF", "minVal": "n:-INF", "unit": "°F" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 SpChangeover", "curErr": "", "curVal": false, "writeStatus": "ok", "axType": "s:control:BooleanWritable", "navName": "SpChangeover", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.SpChangeover", "kind": "Bool", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/SpChangeover", "siteRef": "r:S.Rackspace", "enum": "Hide,Show", "writeVal": false, "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 Schedule", "curErr": "", "curVal": false, "writeStatus": "ok", "axType": "s:control:BooleanWritable", "navName": "Schedule", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.Schedule", "kind": "Bool", "writeLevel": "n:10", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/Schedule", "siteRef": "r:S.Rackspace", "enum": "ScheduleOff,ScheduleOn", "writeVal": false, "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Active\",\"pointOverride($self, true, $duration)\"\n\"Inactive\",\"pointOverride($self, false, $duration)\"\n\"Auto\",\"pointAuto($self)\"\n\"Set\",\"pointSetDef($self, $val)\"\n" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 HvacMode", "curErr": "", "curVal": "Fans", "writeStatus": "ok", "axType": "s:control:EnumWritable", "navName": "HvacMode", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.HvacMode", "kind": "Str", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/HvacMode", "siteRef": "r:S.Rackspace", "enum": "Cool,Heat,Fans", "writeVal": "Fans", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n" }, { "cur": "m:", "tz": "UTC", "curStatus": "ok", "point": "m:", "writable": "m:", "dis": "Rackspace AHU_01 OaHum", "curErr": "", "curVal": "n:54 %RH", "writeStatus": "ok", "axType": "s:control:NumericWritable", "navName": "OaHum", "equipRef": "r:S.Rackspace.AHU_01", "id": "r:S.Rackspace.AHU_01.OaHum", "kind": "Number", "writeLevel": "n:17", "axSlotPath": "s:slot:/Drivers/BacnetNetwork/AHU_01/OaHum", "siteRef": "r:S.Rackspace", "writeVal": "n:54", "writeErr": "", "axStatus": "ok", "actions": "s:ver:\"3.0\"\ndis,expr\n\"Set\",\"pointSetDef($self, $val)\"\n", "precision": "n:2", "maxVal": "n:INF", "minVal": "n:-INF", "unit": "%RH", "hisErr": "", "his": "m:", "hisStatus": "ok", "hisInterpolate": "linear" } ]}
Richard McElhinney Thu 12 Dec 2019
Hi Ramamurthi,
For your first question I have reviewed the REST API specifications as documented on this website and I couldn't see any reference to the server response being able to exclude specific columns. Therefore this will not be supported in nhaystack. If you wish to do this you would need to do some processing of the response grid in your client before presenting the grid to the user or the next step of your process.
For your second question I'm not sure how to achieve what you want. When using the control points in a Niagara station the value of the
outslot is automatically applied to thecurValtag via implicit tagging. In nhaystack there isn't a configurable option to change where the value of theoutslot is set.Again, you could achieve this with some processing of the response on your client.
Justin Scott Mon 16 Dec 2019
For the exclusion here is a Javascript example of how I process the payload responses:
let data = { meta: { ver: "2.0" }, cols: [ { name: "cur" }, { name: "tz" }, { name: "air" } ], rows: [ { cur: "m:", tz: "UTC", air: "m:", curStatus: "ok", point: "m:", dischargeAirFanCmd: "m:", writable: "m:", dis: "Rackspace AHU_01 SFanCmd", curErr: "", fan: "m:", curVal: false, writeStatus: "ok", discharge: "m:", axType: "s:control:BooleanWritable", navName: "SFanCmd", equipRef: "r:S.Rackspace.AHU_01", id: "r:S.Rackspace.AHU_01.SFanCmd", kind: "Bool", writeLevel: "n:10", axSlotPath: "s:slot:/Drivers/BacnetNetwork/AHU_01/SFanCmd", siteRef: "r:S.Rackspace", enum: "CmdOff,CmdOn", writeVal: false, writeErr: "", axStatus: "ok", cmd: "m:", actions: 's:ver:"3.0"\ndis,expr\n"HandOn","pointOverride($self, true, $duration)"\n"HandOff","pointOverride($self, false, $duration)"\n"BasCtrl","pointAuto($self)"\n', axAnnotated: "m:" } ] }; let dataTrim = data.rows; // Synchronous dataTrim.forEach( row => { // Log a row console.log(row); delete row.curVal; let displayName = row.dis; console.log(displayName); });Most languages should allow you to point to a path on the DICT/Object/etc. JS you get a good bit of flexibility as it treats JSON like a JS Object with certain operations. Object.Keys() and Object.Values() are good to parse with if you just want the keys and/or values as well as doing some iterations over arrays from an object.