API - Получение данных для графика/en — различия между версиями
(Новая страница: «In the request headers, you must pass the API key, the boundaries of the time interval of interest (X-WH-START, X-WH-END) and the number of values (X-WH-SLI…») |
(Новая страница: «X-WH-SLICES is the number of values. The time interval X-WH-START-X-WH-END will be divided into X-WH-SLICES of equal intervals and the system will take the most d…») |
||
Строка 16: | Строка 16: | ||
</pre> | </pre> | ||
− | X-WH-SLICES | + | X-WH-SLICES is the number of values. The time interval X-WH-START-X-WH-END will be divided into X-WH-SLICES of equal intervals and the system will take the most detailed values for each of them. <br> |
− | X-WH-SLICES | + | X-WH-SLICES should be chosen based on the necessary detail of the graph. So, if you need to build a graph 800 pixels wide, then it makes no sense to choose more than 800 values from the log. And sometimes there will be enough 200-400 values depending on the width of the line on the graph. |
Для ускорения работы система может хранить предварительно усредненные значения регистров для различных интервалов (1 минута, 2 минуты, 5 минут, 15 минут, 1 час). В настройке каждого регистра можно указать необходимую детализацию хранимых данных. | Для ускорения работы система может хранить предварительно усредненные значения регистров для различных интервалов (1 минута, 2 минуты, 5 минут, 15 минут, 1 час). В настройке каждого регистра можно указать необходимую детализацию хранимых данных. |
Версия 09:40, 16 апреля 2018
To get data from graph log, it is necessary to run following GET-query for URL http://192.168.1.1/api/graph-data/2. Here 2 - is the ID of the graph of interest.
Also, instead of specifying the graph ID, you can send the X-WH-REGS header. It specifies, through the comma, the ID of the registers for which data is to be extracted. Example:
X-WH-REGS: 23,12,4
In the request headers, you must pass the API key, the boundaries of the time interval of interest (X-WH-START, X-WH-END) and the number of values (X-WH-SLICES). X-WH-START and X-WH-END are transmitted in UnixTime format. For example:
X-WH-APIKEY: F3C74230818DA487BB2017CE5D0290F4DABCAFD7 X-WH-START: 1422797440 X-WH-END: 1422997405 X-WH-SLICES: 300
X-WH-SLICES is the number of values. The time interval X-WH-START-X-WH-END will be divided into X-WH-SLICES of equal intervals and the system will take the most detailed values for each of them.
X-WH-SLICES should be chosen based on the necessary detail of the graph. So, if you need to build a graph 800 pixels wide, then it makes no sense to choose more than 800 values from the log. And sometimes there will be enough 200-400 values depending on the width of the line on the graph.
Для ускорения работы система может хранить предварительно усредненные значения регистров для различных интервалов (1 минута, 2 минуты, 5 минут, 15 минут, 1 час). В настройке каждого регистра можно указать необходимую детализацию хранимых данных. В зависимости от выбранного интервала времени и количества значений система будет пытаться взять данные из максимально подходящей таблицы усредненных значений. или же из лога регистров (если он включен для заданного регистра)
Также в заголовках необходимо указать желаемый формат обмена данными. Сейчас поддерживатеся работа только с форматом JSON.
Accept: application/json Content-Type: application/json
Пример запроса данных о графике номер 1:
URL: http://192.168.1.1/api/graph-data/1
Method: GET
Заголовки:
Accept: application/json Content-Type: application/json Accept-Encoding: gzip, deflate, sdch X-WH-APIKEY: F3C74230818DA487BB2017CE5D0290F4DABCAFD7 X-WH-START: 1422854081 X-WH-END: 1422856235 X-WH-SLICES: 20
Пример ответа:
[ { "8": "NaN;NaN;NaN", "10": "NaN;NaN;NaN", "16": "NaN;NaN;NaN", "x": 1422861065000 }, { "8": "NaN;NaN;NaN", "10": "NaN;NaN;NaN", "16": "NaN;NaN;NaN", "x": 1422861173000 }, { "8": "NaN;NaN;NaN", "10": "NaN;NaN;NaN", "16": "NaN;NaN;NaN", "x": 1422861281000 }, { "8": "NaN;NaN;NaN", "10": "NaN;NaN;NaN", "16": "NaN;NaN;NaN", "x": 1422861388000 }, { "8": "0.000000;9.292714;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.674894;1.000000", "x": 1422861496000 }, { "8": "0.000000;9.489933;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.742101;1.000000", "x": 1422861604000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.747650;1.176471", "x": 1422861711000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.748471;1.176471", "x": 1422861819000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.746659;1.176701", "x": 1422861927000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.755068;1.176932", "x": 1422862034000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.741844;1.000000", "x": 1422862142000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.740291;1.000000", "x": 1422862250000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.756320;1.176701", "x": 1422862358000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.746004;1.176471", "x": 1422862465000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.754233;1.176932", "x": 1422862573000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.740343;1.000000", "x": 1422862681000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.751393;1.176932", "x": 1422862788000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.750868;1.176932", "x": 1422862896000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.745956;1.176701", "x": 1422863004000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.758306;1.176932", "x": 1422863111000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.741780;1.000000", "x": 1422863219000 }, { "8": "0.000000;9.500000;19.000000", "10": "NaN;NaN;NaN", "16": "0.000000;0.741780;1.000000", "x": 1422863327000 }, { "8": "NaN;NaN;NaN", "10": "NaN;NaN;NaN", "16": "NaN;NaN;NaN", "x": 1422863435000 }, { "8": "NaN;NaN;NaN", "10": "NaN;NaN;NaN", "16": "NaN;NaN;NaN", "x": 1422863542000 } ]
Структура возвращаемых данный следующая. Возвращается массив объектов. В каждом объекте есть атрибут "x" - это временная метка данной записи. Формат времени - UnixTime умноженный на 1000 (размерность - миллисекудны).
Также в этом объекте есть атрибуты со значениями для каждого регистра. Имя атрибута - это ID регистра. Значение атрибута - это строка где через точку с запятой объединены минимальное, среднее и максимальное значение регистра на этом интервале. Например, "0.000000;0.755068;1.176932" означает что регистр принимал значения от 0 до 1.176932, при этом его среднее арифметическое было 0.755068. Если же в данном промежутке нет данных о значении данного регистра то система будет возвращать "NaN;NaN;NaN".