Use GET /eso/<job_ID>/<file name>
or GET /eso/<job_ID>/<case_name>/<file name>
to retrieve the list of report variables in an ESO or a MTR file
A successful /eso
transaction returns an object containing all the variables in the ESO/MTR file in a tree structure containing three different sorting orders. An abbreviated example is shown below.
{ "inProgress": true, "varTrees": [ { "state": null, "id": null, "li_attr": null, "a_attr": null, "type": "ESORoot", "text": "All output variables", "data": null, "children": [ { "state": null, "id": null, "li_attr": null, "a_attr": null, "type": "Frequency", "text": "Monthly", "data": null, "children": [ { "state": null, "id": null, "li_attr": null, "a_attr": null, "type": "Domain", "text": "Meter", "data": null, "children": [ { "state": null, "id": null, "li_attr": null, "a_attr": null, "type": "Variable", "text": "Electricity:Facility", "data": { "varId": "12", "unit": "J", "freq": "Monthly" }, "children": [] }, { "state": null, "id": null, "li_attr": null, "a_attr": null, "type": "Variable", "text": "Electricity:Building", "data": { "varId": "24", "unit": "J", "freq": "Monthly" }, "children": [] }, ... ] } ] }, ... ] } ], "runPeriods": [ { "timeZone": 0.0, "values": [ "RUN PERIOD 1", "51.15", "-0.18", "0.00", "62.00" ], "title": "RUN PERIOD 1", "elevation": 62.0, "latitude": 51.15, "longitude": -0.18, "dictItemID": 1 } ], "treeNames": [ "Frequency->Domain->Variable", "Frequency->Variable->Domain", "Domain->Variable->Frequency" ], "annualData": null }
Send the /eso
command using curl:
curl -b cookies https://api.ensims.com/jess_web/api/eso/12251/eplusout.mtr
or if it is a jEPlus project,
curl -b cookies https://api.ensims.com/jess_web/api/eso/12264/EP_0-T_0-W_0-P1_5-P2_0-P3_0-P4_0/eplusout.mtr
On success, the variable trees will be returned in a JSON object. If the requested file does not exist, an HTTP 404 Not Found error will be returned. If the job is not accessible to the current user, or the existing JWT is invalid, an HTTP 401 Unauthorized code will be returned.
Make sure Requests is correctly installed in your Python environment, and run the following lines:
import requests # Existing cookies are expected to be stored in the variable 'cookies' r = requests.get('https://api.ensims.com/jess_web/api/eso/12251/eplusout.mtr', cookies=cookies) # Or if it is a jEPlus project r = requests.get('https://api.ensims.com/jess_web/api/eso/12264/EP_0-T_0-W_0-P1_5-P2_0-P3_0-P4_0/eplusout.mtr', cookies=cookies) # Show returned object r.json()