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/'