API - Список событий — различия между версиями
Строка 1: | Строка 1: | ||
+ | <languages/> | ||
Для получения списка всех событий необходимо выполнить GET-запрос на URL вида '''http://192.168.1.1/api/events'''. | Для получения списка всех событий необходимо выполнить GET-запрос на URL вида '''http://192.168.1.1/api/events'''. | ||
Текущая версия на 10:01, 18 апреля 2018
Для получения списка всех событий необходимо выполнить GET-запрос на URL вида http://192.168.1.1/api/events.
Для получения информации о конкретном событии необходимо выполнить GET-запрос на URL вида http://192.168.1.1/api/events/1. Здесь 1 - это ID нужного события.
В заголовках запроса необходимо передать API key. Например:
X-WH-APIKEY: F3C74230818DA487BB2017CE5D0290F4DABCAFD7
Также в заголовках необходимо указать желаемый формат обмена данными. Сейчас поддерживатеся работа только с форматом JSON.
Accept: application/json Content-Type: application/json
Пример запроса списка всех событий:
URL: http://192.168.1.1/api/events
Method: GET
Заголовки:
Accept: application/json Content-Type: application/json Accept-Encoding: gzip, deflate, sdch X-WH-APIKEY: F3C74230818DA487BB2017CE5D0290F4DABCAFD7
Пример ответа:
[ { "id": "2", "title": "Интервал", "hasDuration": "1", "start": "<xml xmlns=\"http://www.w3.org/1999/xhtml\"><block type=\"wh_rules\" id=\"1\" inline=\"false\" deletable=\"false\" x=\"-499\" y=\"14\"><value name=\"IF\"><block type=\"logic_compare\" id=\"2\" inline=\"true\"><field name=\"OP\">EQ</field><value name=\"A\"><block type=\"wh_reg\" id=\"3\"><field name=\"REG\">8</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"4\"><field name=\"NUM\">5</field></block></value></block></value></block></xml>", "end": "<xml xmlns=\"http://www.w3.org/1999/xhtml\"><block type=\"wh_rules\" id=\"1\" inline=\"false\" deletable=\"false\" x=\"-596\" y=\"16\"><value name=\"IF\"><block type=\"logic_compare\" id=\"2\" inline=\"true\"><field name=\"OP\">EQ</field><value name=\"A\"><block type=\"wh_reg\" id=\"3\"><field name=\"REG\">8</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"4\"><field name=\"NUM\">10</field></block></value></block></value></block></xml>", "hasEndCondition": "1", "saveToLog": "1", "report_title": "Отчет \"интервал\"", "report_menu_title": "Интервал", "extra_regs": "-1^last^^Y-m-d H:i:s|2^last^^Y-m-d H:i:s", "color": "#ff0000", "savetologtype": "0", "loginterval": "", "parentid": "0", "showontimeline": "0", "description": "" }, { "id": "3", "title": "Нажата кнопка А", "hasDuration": "1", "start": "<xml xmlns=\"http://www.w3.org/1999/xhtml\"><block type=\"wh_rules\" id=\"1\" inline=\"false\" deletable=\"false\" x=\"-613\" y=\"10\"><value name=\"IF\"><block type=\"logic_compare\" id=\"2\" inline=\"true\"><field name=\"OP\">EQ</field><value name=\"A\"><block type=\"wh_reg\" id=\"4\"><field name=\"REG\">2</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"11\"><field name=\"NUM\">1</field></block></value></block></value></block></xml>", "end": "<xml xmlns=\"http://www.w3.org/1999/xhtml\"><block type=\"wh_rules\" id=\"1\" inline=\"false\" deletable=\"false\" x=\"10\" y=\"10\"><value name=\"IF\"><block type=\"logic_compare\" id=\"2\" inline=\"true\"><field name=\"OP\">EQ</field></block></value></block></xml>", "hasEndCondition": "0", "saveToLog": "1", "report_title": "Нажатие кнопки А", "report_menu_title": "Кнопка А", "extra_regs": "-1^last^^Y-m-d H:i:s|-2^last^^Y-m-d H:i:s", "color": "#0084ff", "savetologtype": "0", "loginterval": "", "parentid": "0", "showontimeline": "1", "description": "Событие срабатывает при нажатии на кнопку А" } ]
Пример запроса информации о событии номер 2:
URL: http://192.168.1.1/api/events/2
Method: GET
Заголовки:
Accept: application/json Content-Type: application/json Accept-Encoding: gzip, deflate, sdch X-WH-APIKEY: F3C74230818DA487BB2017CE5D0290F4DABCAFD7
Пример ответа:
{ "id": "2", "title": "Интервал", "hasDuration": "1", "start": "<xml xmlns=\"http://www.w3.org/1999/xhtml\"><block type=\"wh_rules\" id=\"1\" inline=\"false\" deletable=\"false\" x=\"-499\" y=\"14\"><value name=\"IF\"><block type=\"logic_compare\" id=\"2\" inline=\"true\"><field name=\"OP\">EQ</field><value name=\"A\"><block type=\"wh_reg\" id=\"3\"><field name=\"REG\">8</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"4\"><field name=\"NUM\">5</field></block></value></block></value></block></xml>", "end": "<xml xmlns=\"http://www.w3.org/1999/xhtml\"><block type=\"wh_rules\" id=\"1\" inline=\"false\" deletable=\"false\" x=\"-596\" y=\"16\"><value name=\"IF\"><block type=\"logic_compare\" id=\"2\" inline=\"true\"><field name=\"OP\">EQ</field><value name=\"A\"><block type=\"wh_reg\" id=\"3\"><field name=\"REG\">8</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"4\"><field name=\"NUM\">10</field></block></value></block></value></block></xml>", "hasEndCondition": "1", "saveToLog": "1", "report_title": "Отчет \"интервал\"", "report_menu_title": "Интервал", "extra_regs": "-1^last^^Y-m-d H:i:s|2^last^^Y-m-d H:i:s", "color": "#ff0000", "savetologtype": "0", "loginterval": "", "parentid": "0", "showontimeline": "0", "description": "" }
Атрибуты события:
id | int | Уникальный идентификатор события |
title | string | Название события |
hasDuration | string | 0 = событие срабатывает при каждом выполнении условия, 1 = событие имеет продолжительность во времени |
start | string | Условие начала события |
end | string | Условие окончания события |
hasEndCondition | int | 0 = у события нет условия его окончания, 1 = у события есть условие его окончания |
saveToLog | int | 0 = не сохранять событие в лог, 1 = сохранять событие в лог |
report_title | string | Заголовок отчета о событии |
report_menu_title | string | Заголов пункта меню для отчета о событии |
extra_regs | string | Список дополнительных регистров для сохранения в лог события. |
color | string | Цвет для отображения события на TimeLine |
savetologtype | int | 0 = сохранять данные в лог один раз для события, 1 = сохранять данные в лог каждые Х секунд |
loginterval | int | Интервал сохранения данных в лог, секунды |
parentid | int | Идентификатор родительского события. Дочернее событие может выполнятся только когда выполняется родительское событие. |
showontimeline | int | 0 = не отображать событие на TimeLine, 1 = отображать событие на TimeLine |
description | string | Комментарии с описание события. Предназначены для операторов и пользователей системы. |
Формат поля extra_regs:
Информация о дополнительных регистрах собрана в одну строку. Запись о каждом регистре разделена символом водопровода "|".
Запись о каждом регистре состоит из 4-х полей, разделенных символом "^". Поля в записи о регистре такие: идентификатор регистра, тип записываемого значения, название регистра, формат времени и даты.
Идентификатор регистра может быть положительным и отрицательным. Положительные идентификаторы означают ID регистров. Отрицательные идентифкаторы - это специальные значения которые относятся к самому событию.
-1 = Start time - время когда началось событие
-2 = End time - время когда событие закончилось
-3 = Last update time - последнее время когда событие было обновлено в базе данных. Длинные события система перезаписывает в базу данных каждые 5 секунд что бы в случае любого сбоя или выключения питания информация о событии не пропала.
Тип записываемого значения:
first = первое значение регистра за время выполнения события
last = последнее значение регистра за время выполнения события
min = минимальное значение регистра за время выполнения события
max = максимальное значение регистра за время выполнения события
avg = среднее значение регистра за время выполнения события
Название регистра по умолчанию берется из информации о регистре. Если же в записи указано не пустое название то именно оно и будет отбражаться в качестве названия этого сохраненного регистра в событии.
Формат времени и даты имеет смысл только для регистров со временем. Формат указывается в формате [функции date] языка PHP.
Пример:
-1^last^^Y-m-d H:i:s|2^last^Рецепт^Y-m-d H:i:s
Здесь описаны 2 дополнительные регистра:
-1^last^^Y-m-d H:i:s
и
2^last^^Y-m-d H:i:s
-1^last^^Y-m-d H:i:s означает:
Сохранять время начала события, отображать его в формате Y-m-d H:i:s
2^last^Рецепт^Y-m-d H:i:s означает:
Сохранять последнее значение регистра с ID=2, его название в отчете будет Рецепт, и если это регистр не типа unixtime то формат времени и даты не будет использован