Tag Table RESTful API

Overview

Machbase provides a RESTful API for accessing the Tag Table.
If you run Machbase Web Analytics (MWA) using $MACHBASE_HOME/webadmin/flask/MWAserver start, you can use the Tag Table Restful API.


[mach@localhost]$ cd $MACHBASE_HOME/bin [mach@localhost]$ MWAserver start

Unless otherwise noted, all use the GET method.

Check Working Status

Usage

{MWA URL}/machiot-rest-api/      --> 최신버전 api
{MWA URL}/machiot-rest-api/v1/   --> Version 1

Example

http://192.168.0.31:5003/machiot-rest-api/
http://192.168.0.31:5003/machiot-rest-api/v1/

Result

{
 "status": "Working",
 "version": "1.0"
}

curl example

curl -G 'http://192.168.0.31:5003/machiot-rest-api/'

get Calculated Data

Usage

{MWA URL}/machiot-rest-api/datapoints/calculated/{TagName}/{Start}/{End}/{CalculationMode}/{Count}/{IntervalType}/{IntervalValue}/
 
TagName         : Tag Name. Supports multiple tags (separated by ,) -> Passes multiple Tag results to a single Series
Start, End      : Period, YYYY-MM-DD HH24:MI:SS or YYYY-MM-DD
CalculationMode : min, max, total(sum), count(cnt), average(avg)
Count           : LIMIT, all if 0
IntervalType    : sec(second), min(minute), hour, day
IntervalValue   : Unit of IntervalType (5 sec, 3 min, etc.) Default 1

Can also be passed to Get method parameter (duplicate URL takes precedence)

If TagName is separated by, and multiple tags are specified, it is returned as one Series. 
Use this when you want to combine several tags that have data only in a certain time zone and get results in one series. 
If the data is duplicated, the data of the quick tag is selected in the order by order of TagName.

예제

http://192.168.0.31:5003/machiot-rest-api/v1/datapoints/calculated/TAG_193,TAG_194/2018-01-16T14:40:00/2018-01-16T14:50:00/cnt/0/sec
http://192.168.0.31:5003/machiot-rest-api/v1/datapoints/calculated?TagNames=TAG_193,TAG_194&Start=2018-01-16T14:40:00&End=2018-01-16T14:50:00&CalculationMode=cnt&count=0&IntervalType=sec

결과

{
 "ErrorCode": 0,
 "ErrorMessage": "",
 "Data": [
     {"DataType": "LONG",
      "ErrorCode": 0,
      "TagName": "TAG_193,TAG_194",
      "CalculationMode": "cnt",
      "Samples": [
          {"TimeStamp": "2018-01-16 14:40:05 000:000:000", "Value": 6, "Quality": 0},
          {"TimeStamp": "2018-01-16 14:40:06 000:000:000", "Value": 25, "Quality": 0}, ....
      ]
     }
 ]
}

curl example

curl -G 'http://192.168.0.31:5003/machiot-rest-api/datapoints/calculated/TAG_193,TAG_194/2018-01-16T14:40:00/2018-01-16T14:50:00/cnt/0/sec'

get Raw Data

Usage

{MWA URL}/machiot-rest-api/datapoints/raw/{TagName}/{Start}/{End}/{Direction}/{Count}/{Offset}/
 
TagName    : Tag Name. Supports multiple tags (separated by ,) -> Passes multiple Tag results to a single Series
Start, End : Period, YYYY-MM-DD HH24:MI:SS or YYYY-MM-DD or YYYY-MM-DD HH24:MI:SS,mmm (mmm: millisecond, if omitted, start is 000, End is 999)
Direction  : 0(not use= default value), 1(descend), 2(ascend)
Count      : LIMIT, all if 0
Offset     : offset (default value = 0)

Can also be passed to Get method parameter (duplicate URL takes precedence)

If TagName is separated by, and multiple tags are specified, it is returned as one Series. 
Use this when you want to combine several tags that have data only in a certain time zone and get results in one series. 
If the data is duplicated, the data of the quick tag is selected in the order by order of TagName.

Example

http://192.168.0.31:5003/machiot-rest-api/v1/datapoints/raw/TAG_193,TAG_194/2018-01-16T14:40:00,500/2018-01-16T14:40:10,800
http://192.168.0.31:5003/machiot-rest-api/v1/datapoints/raw?TagNames=TAG_193,TAG_194&Start=2018-01-16T14:40:00,500&End=2018-01-16T14:40:10,800

Result

{
 "ErrorCode": 0,
 "ErrorMessage": "",
 "Data": [
     {"DataType": "DOUBLE",
      "ErrorCode": 0,
      "TagName": "TAG_193,TAG_194",
      "Samples": [
          {"TimeStamp": "2018-01-16 14:40:05 538:012:000", "Value": 100.0, "Quality": 0},
          {"TimeStamp": "2018-01-16 14:40:05 798:813:000", "Value": 26.0, "Quality": 0}, ....
      ]
     }
 ]
}

curl example

curl -G 'http://192.168.0.31:5003/machiot-rest-api/datapoints/raw/TAG_193,TAG_194/2018-01-16T14:40:00,500/2018-01-16T14:40:10,800'

INSERT

When called with the POST method, it is appended to the TAG table.
parameter는 RESTful API의 POST method parameter에서 name(=Table Name)이 없는 것을 제외하고는 같다.

Parameter

{
 "values":[
     [TAG_NAME, TAG_TIME, VALUE],
     [ .... ]....
 ],
 "date_format":"Date Format"
}
 
Note: If date_format is omitted, set to 'YYYY-MM-DD HH24: MI: SS mmm: uuu: nnn'

예제 : 호출 URL

http://192.168.0.31:5003/machiot-rest-api/

예제 : POST data

{
 "values":[
     ["TAG_0","2018-01-11 01:16:37",100],
     ["TAG_1","2018-01-11 01:16:37",100],
     ["TAG_2","2018-01-11 01:16:37",100],
     ["TAG_3","2018-01-11 01:16:37",100],
     ["TAG_4","2018-01-11 01:16:37",100],
     ["TAG_5","2018-01-11 01:16:37",100],
     ["TAG_6","2018-01-11 01:16:37",100],
     ["TAG_7","2018-01-11 01:16:37",100],
     ["TAG_8","2018-01-11 01:16:37",100],
     ["TAG_9","2018-01-11 01:16:37",100]
 ],
 "date_format":"YYYY-MM-DD HH24:MI:SS"
}

curl example

curl -X POST -H "Content-Type: application/json" "http://127.0.0.1:5003/machiot-rest-api/" -d '{ "values":[["TAG_00","2018-01-11 01:16:37",100],["TAG_01","2018-01-11 01:16:37",100]], "date_format":"YYYY-MM-DD HH24:MI:SS" }'

Get Tag List

Obtain a list of tags.

Usage

{MWA URL}/machiot-rest-api/tags/list/

Example

http://192.168.0.31:5003/machiot-rest-api/tags/list/

Result

{
 "ErrorCode": 0,
 "ErrorMessage": "",
 "Data": [
     {"NAME": "TAG_00"},
     {"NAME": "TAG_01"},
     {"NAME": "TAG_02"},
     {"NAME": "TAG_03"}, ......
 ]
}

curl example

curl -G 'http://192.168.0.31:5003/machiot-rest-api/tags/list'

Get Time Range

Obtain the time range of the input data.

Usage

{MWA URL}/machiot-rest-api/tags/range/
{MWA URL}/machiot-rest-api/tags/range/{TagName}
 
TagName    : Tag Name (Currently, multiple Tag Names are not supported)
If there is no TagName, obtains the time range for all data.

Example

http://192.168.0.31:5003/machiot-rest-api/tags/range/TAG_00

Result

{
 "ErrorCode": 0,
 "ErrorMessage": "",
 "Data": [
     {"MIN": "2017-01-01 00:00:00 000:000:000", "MAX": "2017-02-02 19:02:13 000:000:000"}
 ]
}

curl example

curl -G 'http://192.168.0.31:5003/machiot-rest-api/tags/range/TAG_00'

Request Rollup

Force rollup. (Execute 'EXEC ROLLUP_FORCE' command, takes about 6 seconds)

Usage

{MWA URL}/machiot-rest-api/rollup/

Example

http://192.168.0.31:5003/machiot-rest-api/rollup/

Result

{
 "ErrorCode": 0,
 "ErrorMessage": "",
 "Data": [
     {"EXECUTE RESULT": "Execute Success"}
 ]
}

curl example

curl -G 'http://192.168.0.31:5003/machiot-rest-api/rollup/'