API методы модуля driver_electro5
Модуль driver_electro5 реализует поддержку приборов учета электроэнергии Вавиот Фобос.
Данные методы доступны на API – сервере http://api.waviot.ru , а также при подключении непосредственно к сетевому интерфейсу УСПД.
Для доступа к методам модуля необходимо использовать URL-преффикс /driver_electro5/
- Получение показаний приборов учета
Значение | Описание | |
Запрос | ||
Протокол | http(s) | |
Тип запроса | GET или POST | |
Путь | /api/report/history | |
Параметры | modem | Десятичный уникальный идентификатор модема прибора учета. Допускается массив значений через «,» |
profile | Профиль из которого получены данные. Допускается массив значений через «,». Перечень вариантов см. ниже. Если параметр не задан – принимает все допустимые значения | |
timefrom | unix timestamp начального времени выборки, при отсутствии выдается единственное значение с наибольшим временем | |
timeto | unix timestamp конечного времени выборки, при отсутствии принимается равным текущему времени + сутки. | |
Значения параметра profile | 1.0.94.7.0.255 | профиль мгновенных значений |
1.0.99.1.0.255 | профиль мощности(часовой) | |
1.0.98.2.0.255 | профиль суточных | |
1.0.98.1.0.255 | профиль месячных | |
1.0.94.7.8.255 | профиль годовых | |
1.0.94.7.5.255 | настраиваемый профиль | |
Ответ | ||
Формат | json | […] - Массив объектов json |
Ключи объекта | modem | Десятичный уникальный идентификатор модема прибора учета |
timefrom | unix timestamp начального времени выборки. Может отсутствовать | |
timeto | unix timestamp конечного времени выборки | |
meterings | Массив объектов записей профиля | |
Ключи записи профиля | profile | Указывает из какого профиля получена запись, см. «Значения параметра profile» |
ts_get | unix timestamp время получения сообщения УСПД / сервером | |
OBIS код в формате: | Описание параметров OBIS и единиц измерения приводится ниже |
Полное описание OBIS приводится в (МЭК) IEC 62056-6-1-2013 Object Identification System (OBIS).
1.0.0 – дата-время записи [timestamp]
1.8.0 – Активная энергия к потребителю по сумме фаз и тарифов с момента сброса [Вт ч]
1.8.1 – Активная энергия к потребителю по сумме фаз тариф 1 с момента сброса [Вт ч]
1.8.2 – Активная энергия к потребителю по сумме фаз тариф 2 с момента сброса [Вт ч]
1.8.3 – Активная энергия к потребителю по сумме фаз тариф 3 с момента сброса [Вт ч]
1.8.4 – Активная энергия к потребителю по сумме фаз тариф 4 с момента сброса [Вт ч]
2.8.0 – Активная энергия от потребителя по сумме фаз и тарифов с момента сброса [Вт ч]
2.8.1 – Активная энергия от потребителя по сумме фаз тариф 1 с момента сброса [Вт ч]
2.8.2 – Активная энергия от потребителя по сумме фаз тариф 2 с момента сброса [Вт ч]
2.8.3 – Активная энергия от потребителя по сумме фаз тариф 3 с момента сброса [Вт ч]
2.8.4 – Активная энергия от потребителя по сумме фаз тариф 4 с момента сброса [Вт ч]
3.8.0 – Реактивная энергия к потребителю по сумме фаз и тарифов с момента сброса[Варч]
3.8.1 – Реактивная энергия к потребителю по сумме фаз тариф 1 с момента сброса [Вар ч]
3.8.2 – Реактивная энергия к потребителю по сумме фаз тариф 2 с момента сброса [Вар ч]
3.8.3 – Реактивная энергия к потребителю по сумме фаз тариф 3 с момента сброса [Вар ч]
3.8.4 – Реактивная энергия к потребителю по сумме фаз тариф 4 с момента сброса [Вар ч]
4.8.0 – Реактивная энергия от потребителя по сумме фаз и тариф. с момента сброса[Варч]
4.8.1 – Реактивная энергия от потребителя по сумме фаз тариф 1 с момента сброса [Вар ч]
4.8.2 – Реактивная энергия от потребителя по сумме фаз тариф 2 с момента сброса [Вар ч]
4.8.3 – Реактивная энергия от потребителя по сумме фаз тариф 3 с момента сброса [Вар ч]
4.8.4 – Реактивная энергия от потребителя по сумме фаз тариф 4 с момента сброса [Вар ч]
9.8.0 – Полная энергия к потребителю по сумме фаз и тарифов с момента сброса [ВА ч]
9.8.1 – Полная энергия к потребителю по сумме фаз тариф 1 с момента сброса [ВА ч]
9.8.2 – Полная энергия к потребителю по сумме фаз тариф 2 с момента сброса [ВА ч]
9.8.3 – Полная энергия к потребителю по сумме фаз тариф 3 с момента сброса [ВА ч]
9.8.4 – Полная энергия к потребителю по сумме фаз тариф 4 с момента сброса [ВА ч]
1.6.0 – Максимум мощности по сумме фаз за период учета [Вт]
1.7.0 – Активная мощность по сумме фаз [Вт]
21.7.0 – Активная мощность по фазе А [Вт]
41.7.0 – Активная мощность по фазе В [Вт]
61.7.0 – Активная мощность по фазе С [Вт]
3.7.0 – Реактивная мощность по сумме фаз [Вар]
23.7.0 – Реактивная мощность по фазе А [Вар]
43.7.0 – Реактивная мощность по фазе В [Вар]
63.7.0 – Реактивная мощность по фазе С [Вар]
9.7.0 – Полная мощность по сумме фаз [ВА]
29.7.0 – Полная мощность по фазе А [ВА]
49.7.0 – Полная мощность по фазе В [ВА]
69.7.0 – Полная мощность по фазе С [ВА]
11.7.0 – Ток по сумме фаз [А]
31.7.0 – Ток по фазе А [А]
51.7.0 – Ток по фазе В [А]
71.7.0 – Ток по фазе С [А]
91.7.0 – Ток нейтрали [А]
32.7.0 – Напряжение фазы А [В]
52.7.0 – Напряжение фазы В [В]
72.7.0 – Напряжение фазы С [В]
14.7.0 – Частота [Гц]
13.7.0 – cosFi суммы фаз
33.7.0 – cosFi фазы А
53.7.0 – cosFi фазы В
73.7.0 – cosFi фазы С
81.7.10 – угол между фазами А-В [градусы]
81.7.21 – угол между фазами В-С [градусы]
81.7.2 – угол между фазами А-С [градусы]
Пример получения данных двух приборов учета из двух профилей
запрос:
http://.../api/report/history?modem=7390186,7390187&profile=1.0.98.2.0.255,1.0.94.7.5.255&timefrom=1517439600&timeto=1517446800
ответ:
[
{ // первый прибор учета
"meterings": [
{
"1.0.0": 1517446800, // запись сформирована прибором учета в Thu, 01 Feb 2018 01:00:00
"1.8": 4411644, // А+ сумма тарифов
"1.8.1": 4411644, // A+ тариф 1
"1.8.2": 0, // A+ тариф 2
"1.8.3": 0, // A+ тариф 3
"profile": "1.0.94.7.5.255", // настраиваемый профиль
"ts_get": 1517448021 // получено сервером Thu, 01 Feb 2018 01:20:21 GMT
},
{
"1.0.0": 1517443200, // запись сформирована прибором учета в Thu, 01 Feb 2018 00:00:00
"1.8": 4409854, …
"profile": "1.0.94.7.5.255",…
},
{
"1.0.0": 1517443200, // запись сформирована прибором учета в Thu, 01 Feb 2018 00:00:00
"1.8.1": 4409854,
"1.8.2": 0,
"1.8.3": 0,
"1.8.4": 0,
"2.8.1": 3,
"2.8.2": 0,
"2.8.3": 0,
"2.8.4": 0,
"3.8.1": 131008.99999999999,
"3.8.2": 0,
"3.8.3": 0,
"3.8.4": 0,
"4.8.1": 73817,
"4.8.2": 0,
"4.8.3": 0,
"4.8.4": 0,
"profile": "1.0.98.2.0.255",
"ts_get": 1517443905 // получено сервером Thu, 01 Feb 2018 00:11:45
},
{
"1.0.0": 1517439600,
"1.8": 4408045,…
"profile": "1.0.94.7.5.255",…
}
],
"modem": 7390186, // номер модема счетчика
"timefrom": 1517439600, // начало запроса данных
"timeto": 1517446800 // конец запроса данных
},
{ // второй прибор учета
"meterings": [
{
"1.0.0": 1517446800,
"1.8": 192490,
"1.8.1": 192484,
"1.8.2": 6,
"1.8.3": 0,
"profile": "1.0.94.7.5.255",
"ts_get": 1517447958
},
{
"1.0.0": 1517443200,…
},
{
"1.0.0": 1517443200,
"1.8.1": 192484,
"1.8.2": 6,
"1.8.3": 0,
"1.8.4": 0,…
"profile": "1.0.98.2.0.255",
"ts_get": 1517434720
},
{
"1.0.0": 1517439600,…
}
],
"modem": 7390187,
"timefrom": 1517439600,
"timeto": 1517446800
}
]
дополнение в ответе при запросе профиля нагрузки и суточного профиля:
при возможности однозначного определения периода записей профиля появляется поле "period", значение поля соответствует периоду записей в профиле в секундах
[
{
"meterings": [...],
"modem": 7хххххх,
"period": 3600,
"timefrom": 156ххххххх,
"timeto": 157ххххххх
}
]
возможные причины отсутствия поля "period":
1. в базе слишком малое количество записей профилей - может происходить при недавнем включении ПУ / привязке к УСПД - следует дождаться большего количества записей профиля
2. выборка записей совпадает с изменением периода профиля - следует изменить одну из границ (timefrom / timeto), увеличив или уменьшив диапазон выборки не менее чем в 2 раза
3. большое количество пропусков записей профилей - следует восстановить связь с ПУ и повторить запрос после восстановления записей профиля
- Получение событий приборов учета
Значение | Описание | |
Запрос | ||
Протокол | http(s) | |
Тип запроса | GET или POST | |
Путь | /api/report/events | |
Параметры | modem | Десятичный уникальный идентификатор модема прибора учета. Допускается массив значений через «,». |
profile | Профиль из которого получены события. Допускается массив значений через «,». Перечень вариантов см. ниже. Если параметр не задан – принимает все допустимые значения | |
timefrom | unix timestamp начального времени выборки, при отсутствии выдается единственное значение с наибольшим временем | |
timeto | unix timestamp конечного времени выборки, при отсутствии принимается равным текущему времени + сутки. | |
Значения параметра profile | 0.0.99.98.0.255 | профиль событий, связанных с напряжением |
0.0.99.98.1.255 | профиль событий, связанных с токами | |
0.0.99.98.2.255 | профиль событий, связанных с вкл./выкл. счетчика, коммутации реле нагрузки | |
0.0.99.98.3.255 | профиль событий программирования параметров счетчика | |
0.0.99.98.4.255 | профиль событий внешних воздействий | |
0.0.99.98.5.255 | профиль коммуникационных событий | |
0.0.99.98.6.255 | профиль событий контроля доступа | |
0.0.99.98.7.255 | профиль событий – журнала самодиагностики | |
0.0.99.98.8.255 | профиль превышения реактивной мощности (тангенса сети) | |
0.0.99.98.9.255 | профиль параметров качества сети | |
0.0.99.98.10.255 | профиль состояний дискретных входов и выходов | |
Ответ | ||
Формат | json | […] - Массив объектов json |
Ключи объекта | modem | Десятичный уникальный идентификатор модема прибора учета |
timefrom | unix timestamp начального времени выборки. Может отсутствовать | |
timeto | unix timestamp конечного времени выборки | |
events | Массив объектов записей профиля | |
Ключи записи профиля | profile | Указывает из какого профиля получена запись, см. «Значения параметра profile» |
ts_get | unix timestamp время получения сообщения УСПД / сервером | |
1.0.0 | Описание параметров OBIS и единиц измерения приводится ниже | |
96.11.E | Код события, причем E – совпадает с аналогичным профиля. Значение кода приводится в СТО 34.01-5.1-006-2017 Приложение Д. Ссылочная таблица событий (http://www.rosseti.ru/investment/standart/corp_atandart/doc/CTO_%2034.01.5.1-006-2017.pdf) (прилагается к данному описанию) |
Пример получения последних событий двух приборов учета
запрос:
http://.../api/report/events/?modem=100,101
ответ:
[
{
"events": [
{
"1.0.0": 1516700997, // время, когда произошло событие
"96.11.1": 29, // события связанные с током : Фаза С - превышение макс. тока начало
"profile": "0.0.99.98.1.255", // профиль событий тока
"ts_get": 1516701997 // время получения сервером
}
],
"modem": 101,
"timeto": 1517591691
},
{
"events": [
{
"1.0.0": 1516634493,
"96.11.1": 29,
"profile": "0.0.99.98.1.255",
"ts_get": 1516634522
}
],
"modem": 100,
"timeto": 1517591691
}
]
- Отправка команд управления
Значение | Описание | |
Запрос | ||
Протокол | http(s) | |
Тип запроса | GET или POST | |
Путь | /api/cmd/send | |
Параметры | modem | Десятичный уникальный идентификатор модема прибора учета. Допускается массив значений через «,» |
code | Строковый идентификатор команды, список доступных команд приведен ниже, при отсутствии значения – чтение из прибора учета | |
value | Значение команды, может отсутствовать | |
Значения параметра code | 0.0.1.0.0.255_3 | Часовой пояс [мин] |
0.0.1.0.0.255_7 | Сдвиг летнего времени [мин] | |
0.0.1.0.0.255_8 | Разрешение перевода на летнее время | |
1.0.0.4.2.255_2 | Коэффициент трансформации по току | |
1.0.0.4.3.255_2 | Коэффициент трансформации по напряжению | |
1.0.0.8.4.255_2 | Период записи в профиль 1 [мин] | |
1.0.0.8.5.255_2 | Период записи в профиль 2 [мин] | |
1.0.0.10.2.255_2 | Активное сопротивление линии | |
1.0.12.39.0.255_2 | Пороговое напряжение для фиксации перерыва питания | |
1.0.12.35.0.255_2 | Пороговое напряжение для фиксации перерыва питания | |
1.0.12.35.0.255_2 | Порог для фиксации перенапряжения | |
1.0.12.31.0.255_2 | Порог для фиксации провала напряжения | |
1.0.12.43.0.255_2 | Время перехода напряжения через нижний порог | |
1.0.12.44.0.255_2 | Время перехода напряжения через нижний порог | |
1.0.12.45.0.255_2 | Время пропадания напряжения | |
1.0.131.35.0.255_2 | Порог для фиксации превышения тангенса нагрузки | |
1.0.133.35.0.255_2 | Порог для фиксации коэффициента несимметрии напряжений | |
1.0.0.6.4.255_2 | Согласованное напряжение электропитания / Опорное напряжение для измерения качества электроэнергии | |
0.0.17.0.0.255_3 | мощность для отключения // Активный порог | |
0.0.17.0.0.255_6 | мощность для отключения // Мин. длительность превышения порога | |
0.0.17.0.0.255_7 | мощность для отключения // Мин. длительность снижения ниже порога | |
0.0.17.0.1.255_3 | ток для отключения // Активный порог | |
0.0.17.0.1.255_6 | ток для отключения // Мин. длительность превышения порога | |
0.0.17.0.1.255_7 | ток для отключения // Мин. длительность снижения ниже порога | |
0.0.17.0.2.255_3 | напряжения для отключения // Активный порог | |
0.0.17.0.2.255_6 | напряжения для отключения // Мин. длительность превышения порога | |
0.0.17.0.2.255_7 | напряжения для отключения // Мин. длительность снижения ниже порога | |
0.0.17.0.3.255_3 | воздействия магн. поля для откл. // Активный порог | |
0.0.17.0.3.255_6 | воздействия магн. поля для откл. // Мин. длительность превышения порога | |
0.0.17.0.3.255_7 | воздействия магн. поля для откл. // Мин. длительность снижения ниже порога | |
0.0.17.0.4.255_3 | разбаланс токов для отключения // Активный порог | |
0.0.17.0.4.255_6 | разбаланс токов для отключения // Мин. длительность превышения порога | |
0.0.17.0.4.255_7 | разбаланс токов для отключения // Мин. длительность снижения ниже порога | |
0.0.17.0.5.255_3 | превышение температуры для откл. // Активный порог | |
0.0.17.0.5.255_6 | превышение температуры для откл. // Мин. длительность превышения порога | |
0.0.17.0.5.255_7 | превышение температуры для откл. // Мин. длительность снижения ниже порога | |
0.0.96.3.10.255_4 | Режим управления реле отключения абонента // режим работы | |
0.0.96.3.10.255_3 | Режим управления реле отключения абонента // состояние управления = 1 on / 2 off | |
0.0.96.3.10.255_2 | Режим управления реле отключения абонента // статус управления = 1 on / 0 off | |
1.0.0 | Синхронизация времени, без значения, производится сетью автоматически при каждом сеансе связи, отправка команды не требуется | |
94.7.0 | Опросить мгновенные показания, без значения. После выполнения команды появляется запись в профиле 1.0.94.7.0.255 | |
13.0.0 | Устанавливает тарифное расписание(при указании времени активации в будущем – устанавливается пассивное расписание, иначе – активное), при отсутствии значения – чтение из прибора учета. Значение должно проходить валидацию для успешной отправки. Описание тарифного расписания см. в приложении | |
Ответ | ||
Формат | json | {cmd_id:{…}} – Список идентификатор запросов |
Ключи объекта | Десятичный уникальный идентификатор модема прибора учета | |
Значение ключа | Числовой идентификатор запроса |
Пример установки максимума мощности для двух приборов учета
запрос:
http://.../api/cmd/send/?modem=7123456,7123457&code=17.0.0&value=100
ответ:
{
"cmd_id": {
"7123456": 100011,
"7123457": 100012
}
}
- Получение статуса команд управления
Значение | Описание | |
Запрос | ||
Протокол | http(s) | |
Тип запроса | GET или POST | |
Путь | /api/cmd/status | |
Параметры | cmd_id | Числовой идентификатор запроса. Допускается массив значений через «,». |
Ответ | ||
Формат | json | {…} – Список идентификатор запросов |
Ключи объекта | Числовой идентификатор запроса | |
Значение ключа | PENDING – в процессе отправки; WAIT_DATA – команда доставлена, ожидается передача данных от устройства на сервер; DONE – успешно выполнено; FAILED – не удалось подтвердить доставку; | |
Пример получения статуса выполнения двух команд
запрос:
http://.../api/cmd/status/?cmd_id=100011,100012
ответ:
{
"100011": "DONE",
"100012": "FAILED"
}
- Получение текущих настроек
Значение | Описание | |
Запрос | ||
Протокол | http(s) | |
Тип запроса | GET или POST | |
Путь | /api/setting | |
Параметры | modem | Десятичный уникальный идентификатор модема прибора учета. Допускается массив значений через «,» |
code | Строковый идентификатор команды. Для получения полного списка параметра настроек должен отсутствовать | |
Ответ | ||
Формат | json | {…} – Список идентификатор запросов |
Ключи объекта | Десятичный уникальный идентификатор модема прибора учета | |
Значение ключа | Двусвязный список: настройка - значение | |
Пример получения текущих настроек двух приборов учета
запрос:
http://.../api/setting/?modem=7123456,7123457
ответ:
{
"7123456": {
"17.0.0": "100"
},
"7123457": {}
}
Приложение А. Тарифное расписание
Структура тарифного расписания
{
active : timestamp ,
seasons : {
day_start : week_name ,
... },
weeks : {
week_name : [day_id_1 ... day_id_7],
... },
days : {
day_id: {
start_time : tariff ,
... },
... },
special_days : {
day_start : day_id,
... }
}
где
active – время активации расписания
seasons – объект содержащий описание сезонов
“day_start“ – дата в формате MMDD (месяц-день) – дата активации
“week_name“ – идентификатор недели (0..63)
weeks – объект содержание описание недель, в описании недели строго 7 дней
“day_id“ – идентификатор недели (0..63)
days – объект содержащий описание дней
“start_time“ – время в минутах с начала суток с которого действует тариф
“tariff“ – тариф (0..7)
special_days – объект содержание описание специальных дней
Пример минимального тарифного расписания:
{
"seasons":{
"101":0 // - 1янв начало сезона, действует неделя 0
},
"weeks":{
"0":[0,0,0,0,0,0,0] // для недели 0 все дни 0
},
"days":{
"0":{"0":0} // день 0 содержит 1 таймзону с началом в 00:00 и тарифом 0
}
}
Пример 2:
{
"activate":1515542400, // активировать расписание 10 Jan 2018 00:00:00 GMT
"seasons":{
"1003":5, // 3 окт начало недели 5
"1031":2, // 31 окт начало недели 2
"1230":5 // 30 декабря начало недели 5
},
"weeks":{
"2":[10,10,10,22,22,10,10], // в неделю 2 в пн,вт,ср,сб,вс день 10, а в чт,пт день 22
"5":[22,22,22,22,10,10,10]
},
"days":{
"10":{
"60":1, // с 01:00 действует тариф 1
"360":2, // с 06:00 – т2
"720":0 // с 12:00 – т0
},
"22":{
"1080":3,
"880":2,
"920":1
}
},
"special_days":{
"101":22,
"102":22,
"208":22 // 8 февраля действует день 22
}
}
Приложение Б. Управление нагрузкой
Состояние выключателя:
0 – отключено;
1 – включено.
Статус управления:
0 - отключено;
1 - включено;
2 - разрешено включение.
Режим управления:
Режим | отключение | включение | ||||||
удаленное | ручное | локальное | удаленное | ручное | локальное | |||
статус | 1->0 | 1->2 | 1->2 | 1->2 | 0->1 | 0->2 | 2->1 | 2->1 |
0 | нет | нет | нет | нет | нет | нет | нет | нет |
1 | да | да | да | да | нет | да | да | нет |
2 | да | да | да | да | да | нет | да | нет |
3 | да | да | нет | да | нет | да | да | нет |
4 | да | да | нет | да | да | нет | да | нет |
5 | да | да | да | да | нет | да | да | да |
6 | да | да | нет | да | нет | да | да | да |
7 | да | да | да | да | да | да | нет | да |