/energostat

Небольшой инструмент, который переводит показания счетчиков из html в xml 80020.

Primary LanguageHTMLMIT LicenseMIT

Energostat

Небольшой инструмент, который переводит показания счетчиков из html в xml 80020.

Ограничения

Атрибут летнего времени (daylightsavingtime) всегда установлен в летнее время, в связи с федеральным законом "Об исчислении времени" от 03.06.2011 N 107-ФЗ.

Запуск

Основные команды для создания инфраструктуры. Сгруппировано по сущностям, порядок запуска может отличаться.

mkdir -p tmp
# service account
yc iam service-account create --name=energostat

# resources
yc container registry b7w-me
yc container repository lifecycle-policy create \
  --repository-name=$CONTAINER_REGISTRY_ID/energostat \
  --name=default \
  --description "Energostat lifecycle-policy for tests" \
  --rules=.ci/registry-lifecycle-policy.json \
  --active
yc serverless container create --name=energostat
inv api-gateway-render
yc serverless api-gateway create --name=energostat-b7w-me --spec=tmp/api-gateway.yml

# vars
export SERVICE_ACCOUNT_ID="$(yc iam service-account get --name=energostat --format=json | jq -r .id)"
export CONTAINER_REGISTRY_ID="$(yc container registry get b7w-me --format=json | jq -r .id)"
export CONTAINER_ID="$(yc serverless container get --name=energostat --format=json | jq -r .id)"

# permissions
yc container repository list-access-bindings --name=crpmvvnemddgrv6da22p/energostat
yc container repository add-access-binding --name=crpmvvnemddgrv6da22p/energostat --service-account-id=$SERVICE_ACCOUNT_ID --role=container-registry.images.puller
#yc serverless api-gateway list-access-bindings --name=energostat-b7w-me
#yc serverless api-gateway add-access-binding --name=energostat-b7w-me --service-account-id=$SERVICE_ACCOUNT_ID --role=serverless-containers.containerInvoker
yc resource-manager folder add-access-binding $(yc config get folder-id) --subject=serviceAccount:$SERVICE_ACCOUNT_ID --role=serverless-containers.containerInvoker

Формат XML макета 80020

Взято из случайного документа в интернете.

  1. Элемент message является корневым элементом. Потомками элемента message являются элементы comment, datetime, sender, area. В документе допускается наличие только одного корневого элемента message.
  2. Атрибут class элемента message является обязательным и содержит данные о типе электронного документа. Значение атрибута class должно быть равно 80020.
  3. Атрибут version корневого элемента message является обязательным и содержит данные о версии формата. Данный документ определяет версию документа 2.
  4. Атрибут number элемента message является обязательным и содержит порядковый номер сообщения. (Номера сообщений присваиваются отправителем, начинаются с 1 и увеличиваются на 1 с каждым новым сообщением). Совпадает с номером документа в пункте 4.1.3.
  5. Элемент datetime является потомком корневого элемента message.В документе допускается наличие только одного элемента datetime.Элемент datetime содержит информацию о времени создания документа. Потомками элемента datetime являются элементы timestamp, day, daylightsavingtime.
  6. Элемент timestamp является потомком элемента datetime.Содержимым элемента timestamp является дата и время формирования данного документа в формате “ГГГГММДДччммсс”, где: ГГГГ – год, ММ – порядковый номер месяца, ДД – день, чч – час, мм – минуты, сс – секунды.
  7. Элемент daylightsavingtime является обязательным и содержит 1 если используется летнее время, 0, если используется зимнее время, и 2, если документ сформирован для суток, в которые осуществлялся перевод часов с зимнего на летнее время и обратно. Значение элемента daylightsavingtime применяется ко всем значениям времени в данном документе.
  8. Элемент day является обязательным и содержит дату, определяющую операционный период, за который предоставляется информация, в формате ГГГГММДД где: ГГГГ – год, ММ – порядковый номер месяца, ДД – день. В случае предоставления информации за операционный период месяц, поле день (ДД) принимает значение 00.
  9. Элемент sender является потомком корневого элемента message.В документе допускается наличие только одного элемента sender. Элемент sender описывает организацию, предоставляющую информацию. Потомками элемента sender являются элементы inn,name.
  10. Элемент inn является обязательным и содержит ИНН организации, предоставляющей информацию.
  11. Элемент name элемента sender содержит название организации, предоставляющей информацию. Длина названия до 250 символов.
  12. Элемент area содержит информацию о результатах измерений по точкам измерения, точкам учета и датчикам ТИ одной организации субъекта ОРЭ (Если субъект ОРЭ представляет на рынке несколько организаций, то каждой организации в документе должно соответствовать своя секция area.). Потомками элемента area могут являться элементы inn, name, measuringpoint, accountpoint, deliverypoint, deliverygroup.
  13. Элемент inn является обязательным и содержит ИНН организации субъекта ОРЭ.
  14. Элемент name является обязательным и содержит название организации субъекта ОРЭ. Длина названия до 250 символов.
  15. Элемент measuringpoint содержит сведения о точке измерения и результатах измерения по ней. Атрибутами элемента measuringpoint являются code, name. Потомками элемента measuringpoint являются элементы measuringchannel. содержимым атрибута name элемента measuringpoint является наименование данной точки измерения. Длина наименования до 250 символов. атрибут code элемента measuringpoint содержит уникальный код, присвоенный НП «АТС» данной точке измерения.
  16. Элемент accountpoint содержит сведения о точке учета и результатах измерения по ней. Атрибутами элемента accountpoint являются code и name. Потомками элемента accountpoint являются элементы measuringchannel. содержимым атрибута name является наименование данной точки учета. Длина наименования до 250 символов. атрибут code содержит уникальный код, присвоенный НП «АТС» точке учета.
  17. Элемент deliverypoint содержит сведения о точке поставки и результатах измерения в ней. Атрибутами элемента deliverypoint являются code и name. Потомками элемента deliverypoint являются элементы measuringchannel. содержимым атрибута name является наименование данной точки поставки. Длина наименования до 250 символов. атрибут code содержит уникальный код, присвоенный НП «АТС» точке поставки.
  18. Элемент deliverygroup содержит сведения о группе точек поставки и результатах измерения в ней. Атрибутами элемента deliverypoint являются code и name. Потомками элемента deliverygroup являются элементы measuringchannel. содержимым атрибута name является наименование данной группе точек поставки. Длина наименования до 250 символов. атрибут code содержит уникальный код, присвоенный НП «АТС» группе точек поставки.
  19. Элемент measuringchannel содержит информацию результатах измерений по точкам учета, точкам измерений, точкам поставки и группам точек поставки. Потомками элемента measuringchannel являются элементы period. атрибут code элемента measuringchannel содержит код измерительного канала, присвоенный НП «АТС» данному измерительному каналу ИС. В коде измерительного канала содержится информация о направлении передачи электроэнергии и типе измерительного канала. атрибут desc содержит описание измерительного канала ИС.
  20. Элемент period содержит временной диапазон вычисления и значения измерительных каналов точки учета и точки измерения. Потомками элемента period являются элемент value. В зависимости от интервала измерений в элементах measuringchannel должно присутствовать определенное количество элементов period. То есть для точки измерения с интервалом измерения 30 минут должно быть 48 элементов период, с интервалом измерения 15 минут - 96. Несовпадение числа элементов period считается ошибкой формата и является основанием в отказе приема файла целиком. В сутки, когда осуществляется переход с зимнего на летнее время число периодов должно оставаться неизменным, а в сутки, когда осуществляется переход с летнего на зимнее время, число периодов должно быть увеличено с учетом появления лишнего часа. При этом элемент daylightsavingtime (п4.2.7) принимает значение 2, а у периодов, относящиеся к летнему времени, устанавливается атрибут “summer” равный 1.
  21. Атрибуты start и end элемента period являются обязательными и содержат дату и время начала и конца измерения соответственно, в формате “ччмм”, где: чч – часы, мм - минуты. Последний интервал в операционных сутках записывается в виде start=время начала периода, end=0000.
  22. Содержимым элемента value является значение результата измерения. Атрибутами элемента value являются status, errofmeasuring, exstendedstatus, param1, param2, param3. содержимое атрибута status элемента value показывает статус передаваемой информации. Статус 0 означает, что передаваемая информация имеет статус коммерческой. В этом случае атрибут статус может отсутствовать. Значение поля status 1 означает, что данную информацию нельзя использовать в коммерческих расчетах. Содержимое атрибута errofmeasuring элемента value содержит абсолютную погрешность результатов измерений. Обязательность передачи атрибута определяется Актом соответствия АИСС техническим требованиям ОРЭ. Атрибуты param1, param2, param3 содержат дополнительную информацию, содержание которой определяется значением атрибута extendedstatus. Атрибут extendedstatus содержит расширенный статус передаваемой информации. В частности, в случае замещения результатов измерений в точке измерения на значение результатов измерений в группе точек измерений (в случае включения присоединения через обходной выключатель), значение атрибута exstendedstatus равно 1114, а значение атрибута param1 принимает значение равное коду, присвоенному НП «АТС» группе точек измерений.

Look, feel, be happy :-)