API модуля driver_electro5

Последние изменения: 29.08.2019

API методы модуля driver_electro5

Модуль driver_electro5 реализует поддержку приборов учета электроэнергии Вавиот Фобос.

Данные методы доступны на API – сервере http://api.waviot.ru , а также при подключении непосредственно к сетевому интерфейсу УСПД.

Для доступа к методам модуля необходимо использовать URL-преффикс /driver_electro5/

  1. Получение показаний приборов учета

Значение

Описание

Запрос

Протокол

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 код в формате:
C.D(.E)

Описание параметров 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. большое количество пропусков записей профилей - следует восстановить связь с ПУ и повторить запрос после восстановления записей профиля

  1. Получение событий приборов учета

Значение

Описание

Запрос

Протокол

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

}

]

  1. Отправка команд управления

Значение

Описание

Запрос

Протокол

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

}

}

  1. Получение статуса команд управления

Значение

Описание

Запрос

Протокол

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"

}

  1. Получение текущих настроек

Значение

Описание

Запрос

Протокол

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

да

да

да

да

да

да

нет

да

Помогла ли вам статья?