API - Получение данных для графика — различия между версиями
(Новая страница: «Для получения данных из лога графиков необходимо выполнить GET-запрос на URL вида '''http://192.168…») |
|||
(не показано 7 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
+ | <languages/> | ||
+ | <translate> | ||
+ | <!--T:1--> | ||
Для получения данных из лога графиков необходимо выполнить GET-запрос на URL вида '''http://192.168.1.1/api/graph-data/2'''. Здесь 2 - это ID нужного графика. | Для получения данных из лога графиков необходимо выполнить GET-запрос на URL вида '''http://192.168.1.1/api/graph-data/2'''. Здесь 2 - это ID нужного графика. | ||
+ | <!--T:2--> | ||
+ | Также, вместо указания ID графика можно передать заголовок X-WH-REGS. В нем указываются через запятую ID регистров, данные для которых необходимо извлечь. Пример: | ||
+ | <pre> | ||
+ | X-WH-REGS: 23,12,4 | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | '''Начиная с прошивки версии 3.3 вместо заголовка X-WH-REGS следует использовать заголовок X-WH-REGISTERS.''' | ||
+ | |||
+ | <!--T:3--> | ||
В заголовках запроса необходимо передать API key, границы интересуещего временного интервала (X-WH-START, X-WH-END) и количество значений (X-WH-SLICES). X-WH-START и X-WH-END передаются в формате UnixTime. Например: | В заголовках запроса необходимо передать API key, границы интересуещего временного интервала (X-WH-START, X-WH-END) и количество значений (X-WH-SLICES). X-WH-START и X-WH-END передаются в формате UnixTime. Например: | ||
<pre> | <pre> | ||
Строка 9: | Строка 22: | ||
</pre> | </pre> | ||
+ | <!--T:4--> | ||
X-WH-SLICES - это количество значений. Временной интервал X-WH-START - X-WH-END будет разбит на X-WH-SLICES одинаковых промежутков и система возьмет наиболее детализированные значения для каждого из них.<br> | X-WH-SLICES - это количество значений. Временной интервал X-WH-START - X-WH-END будет разбит на X-WH-SLICES одинаковых промежутков и система возьмет наиболее детализированные значения для каждого из них.<br> | ||
X-WH-SLICES нужно выбирать исходя из необходимой детализации графика. Так, если необходимо построить график шириной 800 пикселов то нет смысла выбирать более 800 значений из лога. А иногда будет достаточно и 200-400 значений в зависимости от ширины линии на графике. | X-WH-SLICES нужно выбирать исходя из необходимой детализации графика. Так, если необходимо построить график шириной 800 пикселов то нет смысла выбирать более 800 значений из лога. А иногда будет достаточно и 200-400 значений в зависимости от ширины линии на графике. | ||
+ | <!--T:5--> | ||
+ | Для ускорения работы система может хранить предварительно усредненные значения регистров для различных интервалов (1 минута, 2 минуты, 5 минут, 15 минут, 1 час). В настройке каждого регистра можно указать необходимую детализацию хранимых данных. | ||
+ | В зависимости от выбранного интервала времени и количества значений система будет пытаться взять данные из максимально подходящей таблицы усредненных значений. или же из лога регистров (если он включен для заданного регистра) | ||
+ | |||
+ | <!--T:6--> | ||
Также в заголовках необходимо указать желаемый формат обмена данными. Сейчас поддерживатеся работа только с форматом [https://ru.wikipedia.org/wiki/JSON JSON]. | Также в заголовках необходимо указать желаемый формат обмена данными. Сейчас поддерживатеся работа только с форматом [https://ru.wikipedia.org/wiki/JSON JSON]. | ||
<pre> | <pre> | ||
Строка 19: | Строка 38: | ||
---- | ---- | ||
+ | <!--T:7--> | ||
Пример запроса данных о графике номер 1: | Пример запроса данных о графике номер 1: | ||
+ | <!--T:8--> | ||
'''URL''': http://192.168.1.1/api/graph-data/1<br> | '''URL''': http://192.168.1.1/api/graph-data/1<br> | ||
'''Method''': GET | '''Method''': GET | ||
+ | <!--T:9--> | ||
Заголовки: | Заголовки: | ||
<pre> | <pre> | ||
Строка 35: | Строка 57: | ||
</pre> | </pre> | ||
+ | <!--T:10--> | ||
Пример ответа: | Пример ответа: | ||
<pre> | <pre> | ||
Строка 186: | Строка 209: | ||
---- | ---- | ||
+ | <!--T:11--> | ||
Структура возвращаемых данный следующая. Возвращается массив объектов. В каждом объекте есть атрибут "x" - это временная метка данной записи. Формат времени - UnixTime умноженный на 1000 (размерность - миллисекудны).<br> | Структура возвращаемых данный следующая. Возвращается массив объектов. В каждом объекте есть атрибут "x" - это временная метка данной записи. Формат времени - UnixTime умноженный на 1000 (размерность - миллисекудны).<br> | ||
− | Также в этом объекте есть атрибуты со | + | Также в этом объекте есть атрибуты со значениями для каждого регистра. Имя атрибута - это ID регистра. Значение атрибута - это строка где через точку с запятой объединены минимальное, среднее и максимальное значение регистра на этом интервале. Например, "0.000000;0.755068;1.176932" означает что регистр принимал значения от 0 до 1.176932, при этом его среднее арифметическое было 0.755068. Если же в данном промежутке нет данных о значении данного регистра то система будет возвращать "NaN;NaN;NaN". |
+ | </translate> |
Текущая версия на 11:49, 3 декабря 2018
Для получения данных из лога графиков необходимо выполнить GET-запрос на URL вида http://192.168.1.1/api/graph-data/2. Здесь 2 - это ID нужного графика.
Также, вместо указания ID графика можно передать заголовок X-WH-REGS. В нем указываются через запятую ID регистров, данные для которых необходимо извлечь. Пример:
X-WH-REGS: 23,12,4
Начиная с прошивки версии 3.3 вместо заголовка X-WH-REGS следует использовать заголовок X-WH-REGISTERS.
В заголовках запроса необходимо передать API key, границы интересуещего временного интервала (X-WH-START, X-WH-END) и количество значений (X-WH-SLICES). X-WH-START и X-WH-END передаются в формате UnixTime. Например:
X-WH-APIKEY: F3C74230818DA487BB2017CE5D0290F4DABCAFD7 X-WH-START: 1422797440 X-WH-END: 1422997405 X-WH-SLICES: 300
X-WH-SLICES - это количество значений. Временной интервал X-WH-START - X-WH-END будет разбит на X-WH-SLICES одинаковых промежутков и система возьмет наиболее детализированные значения для каждого из них.
X-WH-SLICES нужно выбирать исходя из необходимой детализации графика. Так, если необходимо построить график шириной 800 пикселов то нет смысла выбирать более 800 значений из лога. А иногда будет достаточно и 200-400 значений в зависимости от ширины линии на графике.
Для ускорения работы система может хранить предварительно усредненные значения регистров для различных интервалов (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".