Как узнать что произошел сеанс опроса

Раздел для разработчиков по взаимодействию с ЛЭРС УЧЕТ, созданию собственных внешних модулей, экспорту/импорту данных и т.д.

Модератор: Модераторы

Ответить
abv
Сообщения: 12
Зарегистрирован: 11 янв 2019, 10:07

Как узнать что произошел сеанс опроса

Сообщение abv » 17 июн 2020, 07:47

Добрый день. Нужен совет как узнать что за период времени, например 1час произошел сеанс опроса ?
Запросить GET /rest/v1/measurepoints/lastdata? Но у нас более 3000 ТУ и время от времени запрос вылетает по таймауту.
Как сделать чтобы возвращались данные lastdata полученные скажем за последний час?
Иван Славный
Инженер техподдержки
Инженер техподдержки
Сообщения: 6941
Зарегистрирован: 02 мар 2016, 05:45

Re: Как узнать что произошел сеанс опроса

Сообщение Иван Славный » 17 июн 2020, 14:59

Явного способа узнать через REST API Веб-интерфейса происходил ли сеанс опроса не существует. Косвенно это можно узнать как раз через предложенный вами запрос последних данных GET /rest/v1/measurepoints/lastdata. Например, запрашивать раз в час последние данные и сравнивать результаты с результатами предыдущего запроса. При проверке необходимо обязательно учитывать что данные не являются рассчитанными (их признак хранится в поле calculatedValuesInt).
Если при запросе последних данных по всем точкам учета Сервер отвечает дольше времени ожидания ответа, можно либо увеличить время ожидания ответа в настройках Веб-интерфейса (параметр OperationTimeout), либо запрашивать последние данные отдельно по точке учета при помощи запроса GET /rest/v1/measurepoints/{id}/lastdata, предварительно запросив список всех точек через GET /rest/v1/MeasurePoints.

Также хочу отметить, что начиная с версии 3.34 у Сервера ЛЭРС УЧЕТ появился собственный REST API. Пока что большинство запросов данного API являются закрытыми, в том числе и запрос списка сеансов, но периодически наши разработчики пополняют описание запросов в swagger REST API Сервера. Он доступен по адресу http://<АдресСервераЛЭРСУЧЕТ>:<ПортСервераЛЭРСУЧЕТ>/api/swagger (например http://localhost:10000/api/swagger).
Ответить