Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alryaz/hass-lkcomu-interrao
Интеграция Home Assistant с ЛК "Интер РАО"
https://github.com/alryaz/hass-lkcomu-interrao
altaienergosbyt bashelektrosbyt custom-components energosbyt esbvolga home-assistant mosenergosbyt sevesk tambovenergosbyt tomskenergosbyt
Last synced: 2 days ago
JSON representation
Интеграция Home Assistant с ЛК "Интер РАО"
- Host: GitHub
- URL: https://github.com/alryaz/hass-lkcomu-interrao
- Owner: alryaz
- License: other
- Created: 2021-06-15T06:32:42.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-08-13T06:17:01.000Z (6 months ago)
- Last Synced: 2024-11-24T19:18:38.311Z (2 months ago)
- Topics: altaienergosbyt, bashelektrosbyt, custom-components, energosbyt, esbvolga, home-assistant, mosenergosbyt, sevesk, tambovenergosbyt, tomskenergosbyt
- Language: Python
- Homepage:
- Size: 3.9 MB
- Stars: 45
- Watchers: 3
- Forks: 6
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
_ЕЛК ЖКХ «Интер РАО»_ для _Home Assistant_
==================================================> Предоставление информации о текущем состоянии ваших аккаунтов в ЕЛК ЖКХ.
>
> Information retrieval from Inter RAO personal cabinets.
>
>[![hacs_badge](https://img.shields.io/badge/HACS-Default-green.svg)](https://github.com/custom-components/hacs)
> [![Лицензия](https://img.shields.io/badge/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
> [![Поддержка](https://img.shields.io/badge/%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F%3F-%D0%B4%D0%B0-green.svg)](https://github.com/alryaz/hass-lkcomu-interrao/graphs/commit-activity)
>
>[![Пожертвование Yandex](https://img.shields.io/badge/%D0%9F%D0%BE%D0%B6%D0%B5%D1%80%D1%82%D0%B2%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-Yandex-red.svg)](https://money.yandex.ru/to/410012369233217)
> [![Пожертвование PayPal](https://img.shields.io/badge/%D0%9F%D0%BE%D0%B6%D0%B5%D1%80%D1%82%D0%B2%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-Paypal-blueviolet.svg)](https://www.paypal.me/alryaz)## Установка
### Посредством HACS
> **✔️️ Рекомендуемый метод**
1. Установите
HACS ([инструкция по установке на оф. сайте](https://hacs.xyz/docs/setup/prerequisites/))
2. Найдите `lkcomu_interrao` (или `Интер РАО`) в поиске по интеграциям 1
3. Установите последнюю версию компонента, нажав на кнопку `Установить` (`Install`)
4. Перезапустите Home Assistant### Вручную
> **⚠️ Не рекомендуется**
1. Скачайте архив с исходным кодом дополнения
2. Извлеките папку `lkcomu_interrao` из архива в папку `custom_components` внутри папки с
конфигурацией Home Assistant (создайте её, если она отсутствует)
3. Перезапустите Home Assistant## Настройка
### Через раздел интеграции
1. Перейдите в подраздел _"[Интеграции](https://my.home-assistant.io/redirect/integrations)"_ в разделе _"Настройки"_
2. Нажмите кнопку _"Добавить интеграцию"_
3. Введите в поисковую строку: **_Личный кабинет Интер РАО (Энергосбыт)_** (англ. **_Inter RAO Personal Cabinet (Energosbyt)_**)
4. Выберите найденную интеграцию
5. Следуйте инструкциям мастера по добавлению_Примечание:_ Поле **_Заголовок User-Agent_** (англ. **_User-Agent header_**) генерируется автоматически.
### Описание конфигурационной схемы
```yaml
# Файл `configuration.yaml`
lkcomu_interrao:# Тип выбранного ЛК
# Значение по умолчанию: moscow
# Перечень возможных значений:
# - altai (ЛК Алтай (АО «АлтайЭнергосбыт»))
# - bashkortostan (ЛКК ЭСКБ (Башэлектросбыт))
# - moscow (ЕЛК ЖКХ (АО «Мосэнергосбыт», МосОблЕИРЦ, ПАО «Россети Московский регион»))
# - oryol (ЛКК Орел (ООО «Орловский энергосбыт»))
# - saratov (ЛК Саратов (ПАО «Саратовэнерго»))
# - sevesk (ЕЛК Вологда (Северная сбытовая компания))
# - tambov (ЛК ТЭСК (Тамбовская энергосбытовая компания))
# - tomsk (ЕЛК Томск (Томскэнергосбыт / Томск РТС))
# - volga (ЛКК ЭСВ (Энергосбыт Волга))
type: "..."# Имя пользователя
# Обязательный параметр
username: "..."# Пароль
# Обязательный параметр
password: "..."# Конфигурация по умолчанию для лицевых счетов
# Необязательный параметр
# # Данная конфигурация применяется, если отсутствует # конкретизация, указанная в разделе `accounts`.
default:# Получать ли ссылки на логотипы
# Значение по умолчанию: истина (true)
logos: true | false# Добавлять ли объект(-ы): Информация о лицевом счёте
# Значение по умолчанию: истина (true)
accounts: true | false# Добавлять ли объект(-ы): Счётчик коммунальных услуг
# Значение по умолчанию: истина (true)
meters: true | false# Добавлять ли объект(-ы): Последний зарегистрированный платёж
# Значение по умолчанию: истина (true)
last_payment: true | false# Добавлять ли объект(-ы): Последняя выпущенная квитанция
# Значение по умолчанию: истина (true)
last_invoice: true | false# Настройки для отдельных лицевых счетов
# Необязательный параметр
accounts:# Номер лицевого счёта
"...":# Конфигурация по конкретным лицевым счетам выполняется аналогично
# конфигурации по умолчанию для лицевых счетов (раздел `default`).
...
```### Вариант конфигурации "Чёрный список"
Для реализации белого списка, конфигурация выполняется следующим образом:
```yaml
...
lkcomu_interrao:
...
# Выборочное исключение лицевых счетов
accounts:
# Все указанные ниже лицевые счета будут добавлены
"12345-678-90": false
"98765-432-10": false
"111000111000": false
```### Вариант конфигурации "Белый список"
Для реализации белого списка, конфигурация выполняется следующим образом:
```yaml
...
lkcomu_interrao:
...
# Отключение добавление лицевых счетов по умолчанию
default: false# Выборочное включение лицевых сченов
accounts:
# Все указанные ниже лицевые счета будут добавлены
"12345-678-90": true
"98765-432-10": true
"111000111000": true
```Также возможно использовать укороченную запись:
```yaml
...
lkcomu_interrao:
...
# Данный пример функционально эквивалентен предыдущему примеру
default: false
accounts: ["12345-678-90", "98765-432-10", "111000111000"]
```## Доступные объекты
Все объекты гарантируют наличие и полноту следующих атрибутов:
- `account_code: str` - Номер лицевого счёта
- `account_id: int` - Внутренний идентификатор лицевого счёта### Лицевые счета — `lkcomu_interrao_account`
> **Домен объектов:** `sensor`
Объект лицевого счёта отображает основную информацию о лицевом счёте, а также его баланс
(положительное значение) или имеющуюся задолженность (отрицательное значение) 1.Состояние объекта может принимать следующие значения:
- `unknown` - Информация о состоянии баланса не была предоставлена
- _число_ - Текущее состояние баланса_1 ... в том случае, если лицевой счёт предоставляет информацию о балансе_
#### Сопутствующие службы
> Данные службы применимы только к объектам лицевых счетов
##### `set_description` — Установить описание лицевого счёта
Устанавливает описание для лицевого счёта и провоцирует его обновление.
###### Параметры
- `description: str | None` - _(опционально)_ Новое описание для лицевого счёта
###### Результат
Событие с идентификатором `lkcomu_interrao_set_description` и следующими значениями:
- `success: bool` - Если установка описания была выполнена успешно
- `description: str | None` - Описание, с которым была вызвана служба
- `previous: str | None` - Описание, которым обладал (или, в случае ошибки, обладает) лицевой счёт
- `account_id: int` - Внутренний идентификатор лицевого счёта
- `account_code: str` - Номер лицевого счёта##### `get_invoices` — Получение квитанций по периодам
> Только для объектов, поддерживающих данный функционал
###### Параметры
- `start: str | None` - _(опционально)_ Дата начала периода
- `end: str | None` - _(опционально)_ Дата окончания периода###### Результат
Событие с идентификатором `lkcomu_interrao_get_invoices` и следующими значениями:
- `sum: float` - сумма всех квитанций за указанный период
- `period: str` - период квитанции
- `invoice_id: str` - идентификатор квитанции
- `total: float` - сумма к оплате по квитанции
- `paid: float | None` - сумма оплат, учтённых к квитанции
- `initial: float | None` - задолженность/избыток на начало периода
- `charged: float | None` - начислено за период
- `insurance: float | None` - добровольное страхование
- `benefits: float | None` - льготы
- `penalty: float | None` - штрафы
- `service: float | None` - тех. обслуживание##### `get_payments` — Получение платежей по периодам
> Только для объектов, поддерживающих данный функционал
###### Параметры
- `start: str | None` - _(опционально)_ Дата начала периода
- `end: str | None` - _(опционально)_ Дата окончания периода###### Результат
Событие с идентификатором `lkcomu_interrao_get_payments` и следующими значениями:
- `sum: float` - сумма всех платежей за указанный период
- `amount: float` - объём платежа
- `paid_at: str` - дата/время платежа
- `period: str` - период, за который платёж был выполнен
- `status: str | None` - состояние платежа
- `agent: str | None` - банк-обработчик платежа
- `group: str | None` - группа платежа (для лицевых счетов с несколькими типами платежей)
### Счётчики — `lkcomu_interrao_meter`
> **Домен объектов:** `sensor`
Объект счётчика отображает информацию о счётчике, а также сведения о последних переданных показаниях
и диапазоне периода передачи показаний1.Состояние объекта может принимать следующие значения:
- `ok` - Текстовое описание состояния отсутствует
- _текст_ - Текстовое описание состояние счётчика (может быть любой длины, и содержать в себе любой
набор символов, в т.ч. HTML-теги)Объект гарантирует наличие и полноту следующих атрибутов:
- `meter_code` - Номер счётчика
- `install_date` - Дата установки
- `submit_period_start` - Дата начала периода передачи показаний (в текущем месяце) 1
- `submit_period_end` - Дата окончания периода передачи показаний (в текущем месяце) 1
- `submit_period_active` - Флаг активности периода передачи показаний 1
- `zone_t[N]_name` - Наименование тарифной зоны / тарифа
- `zone_t[N]_last_indication` - Последнее показание по тарифной зоне 2Объект гарантирует наличие, но не полноту следующих атрибутов:
- `model` - Модель счётчика
- `last_indications_date` - Дата последней передачи показаний
- `zone_t[N]_description` - Описание тарифной зоны / тарифа
- `zone_t[N]_today_indication` - Значение переданного сегодня показания по тарифной зоне
- `zone_t[N]_invoice_indication` - Значение последнего показания по тарифной зоне, учтённому в
квитанции
- `zone_t[N]_period_indication` - Значение переданного за период показания по тарифной зоне
1
- `zone_t[N]_invoice_name` - Наименование тарифной зоны, указанное в последней квитанции_1 ... в том случае, если счётчик поддерживает передачу показаний_
_2 При отсутствии фактического значения атрибут примет значение `0.0`_#### Сопутствующие службы
> Данные службы применимы только к объектам счётчиков
##### `push_indications` — Передача показаний
> Только для объектов, поддерживающих данный функционал
Служба передачи показаний позволяет отправлять показания по счётчикам в личный кабинет, и
имеет следующий набор параметров:| Название | Описание |
| --- | --- |
| `target` | Выборка целевых объектов, для которых требуется передавать показания |
| `data`.`indications` | Список / именованный массив показаний, передаваемых в ЛК |
| `data`.`incremental` | Суммирование текущих показаний с передаваемыми |
| `data`.`ignore_period` | Игнорировать период передачи показаний |
| `data`.`ignore_indications` | Игнорировать ограничения по значениям |###### 1. Обычная передача показаний
- Например, если передача показаний активна с 15 по 25 число, а сегодня 11, то показания
**не будут** отправлены1.
- Например, если текущие, последние или принятые значения по счётчику – 321, 654 и 987 по зонам
_Т1_, _Т2_ и _Т3_ соответственно, то показания **не будут**
отправлены1.
```yaml
service: lkcomu_interrao.push_indications
data:
indications: "123, 456, 789"
target:
entity_id: sensor.1243145122_meter_123456789
```... или, с помощью именованного массива:
```yaml
service: lkcomu_interrao.calculate_indications
data:
indications:
t1: 123
t2: 456
t3: 789
target:
entity_id: sensor.1243145122_meter_123456789
```... или, с помощью списка:
```yaml
service: lkcomu_interrao.calculate_indications
data:
indications: [123, 456, 789]
target:
entity_id: sensor.1243145122_meter_123456789
```###### 2. Форсированная передача показаний
Отключение всех ограничений по показаниям.
- Например, если передача показаний активна с 15 по 25 число, а сегодня 11, то показания
**будут** отправлены1.
- Например, если текущие, последние или принятые значения по счётчику – 321, 654 и 987 по зонам
_Т1_, _Т2_ и _Т3_ соответственно, то показания **будут**
отправлены1.
```yaml
service: lkcomu_interrao.calculate_indications
data_template:
indications: [123, 456, 789]
ignore_indications: true
ignore_periods: true
target:
entity_id: sensor.1243145122_meter_123456789
```###### 3. Сложение показаний
- Например, если передача показаний активна с 15 по 25 число, а сегодня 11, то показания
**не будут** отправлены1.
- Например, если текущие, последние или принятые значения по счётчику – 321, 654 и 987 по зонам
_Т1_, _Т2_ и _Т3_ соответственно, то показания **будут**
отправлены1.
**Внимание:** в данном примере будут отправлены показания _444_, _1110_ и _1776_,
а не _123_, _456_ и _789_.
```yaml
service: lkcomu_interrao.calculate_indications
data_template:
indications: [123, 456, 789]
incremental: true
target:
entity_id: sensor.1243145122_meter_123456789
```##### `calculate_indications` — Подсчёт показаний
> Только для объектов, поддерживающих данный функционал
### Последние платежи — `lkcomu_interrao_last_payment`
> **Домен объектов:** `binary_sensor`
Объект последнего платежа отображает информацию о последнем зарегистрированном платеже, связанном с
лицевым счётом.Состояние объекта может принимать следующие значения:
- `on` - Платёж был обработан
- `off` - Платёж ещё не обработан
- `unknown` - Последний платёж не был найденОбъект гарантирует наличие и полноту следующих атрибутов:
- `amount: float` - Сумма платежа
- `paid_at: str` - Дата и время платежа
- `period: str` - Период, за который был выполнен платёжОбъект гарантирует наличие, но не полноту, следующих атрибутов:
- `status: str | None` - Состояние платежа
- `agent: str | None` - Банк, проводящий платёж
- `group: str | None` - Группа платежа (для лицевых счетов с несколькими источниками платежей)
### Последние квитанции — `lkcomu_interrao_last_invoice`
> **Домен объектов:** `sensor`
> @ TODO @
## Поддерживаемые ЛК
Ниже предъявлен перечень поддерживаемых ЛК с их внутренними идентификаторами.
Данные идентификаторы используются как значение для поля `type`.> **Внимание:** Поддерживаются только ЛК физических лиц. Поддержка ЛК юридических лиц не планируется.
### ЕЛК ЖКХ (АО «Мосэнергосбыт», МосОблЕИРЦ, ПАО «Россети Московский регион») - `moscow`
[![Ссылка на личный кабинет "ЕЛК ЖКХ (АО «Мосэнергосбыт», МосОблЕИРЦ, ПАО «Россети Московский регион»)"](https://raw.githubusercontent.com/alryaz/hass-lkcomu-interrao/main/images/headers/moscow.png)](https://my.mosenergosbyt.ru)#### Пример конфигурации:
```yaml
...
lkcomu_interrao:
type: moscow
username: username1
password: password1
```#### Поставщик `MES` — Электричество
Для поставщика реализована поддержка следующих объектов:Информация о лицевом счёте
Последний зарегистрированный платёж
Последняя выпущенная квитанция
Счётчик коммунальных услуг
#### Поставщик `KSG` — Электричество
Для поставщика реализована поддержка следующих объектов:Информация о лицевом счёте
Последний зарегистрированный платёж
Последняя выпущенная квитанция
Счётчик коммунальных услуг
#### Поставщик `MOE` — ЕПД
Для поставщика реализована поддержка следующих объектов:Информация о лицевом счёте
Последний зарегистрированный платёж
Последняя выпущенная квитанция
Счётчик коммунальных услуг
#### Поставщик `TKO` — ТКО
Для поставщика реализована поддержка следующих объектов:Информация о лицевом счёте
Последний зарегистрированный платёж
Снимок экрана отсутствуетПоследняя выпущенная квитанция
Счётчик коммунальных услуг
Снимок экрана отсутствует### ЛКК Орел (ООО «Орловский энергосбыт») - `oryol`
[![Ссылка на личный кабинет "ЛКК Орел (ООО «Орловский энергосбыт»)"](https://raw.githubusercontent.com/alryaz/hass-lkcomu-interrao/main/images/headers/oryol.png)](https://my.interrao-orel.ru)#### Пример конфигурации:
```yaml
...
lkcomu_interrao:
type: oryol
username: username1
password: password1
```#### Поставщик `ORL_EPD` — ЕПД
Для поставщика реализована поддержка следующих объектов:Информация о лицевом счёте
Последняя выпущенная квитанция
#### Поставщик `ORL` — Электричество
Для поставщика реализована поддержка следующих объектов:Информация о лицевом счёте
Последний зарегистрированный платёж
Последняя выпущенная квитанция
Счётчик коммунальных услуг
### ЛКК ЭСВ (Энергосбыт Волга) - `volga`
[![Ссылка на личный кабинет "ЛКК ЭСВ (Энергосбыт Волга)"](https://raw.githubusercontent.com/alryaz/hass-lkcomu-interrao/main/images/headers/volga.png)](https://my.esbvolga.ru)#### Пример конфигурации:
```yaml
...
lkcomu_interrao:
type: volga
username: username1
password: password1
```#### Поставщик `VLD` — Электричество
Для поставщика реализована поддержка следующих объектов:Информация о лицевом счёте
Последний зарегистрированный платёж
Последняя выпущенная квитанция
Счётчик коммунальных услуг
### ЕЛК Томск (Томскэнергосбыт / Томск РТС) - `tomsk`
[![Ссылка на личный кабинет "ЕЛК Томск (Томскэнергосбыт / Томск РТС)"](https://raw.githubusercontent.com/alryaz/hass-lkcomu-interrao/main/images/headers/tomsk.png)](https://my.tomskenergosbyt.ru)#### Пример конфигурации:
```yaml
...
lkcomu_interrao:
type: tomsk
username: username1
password: password1
```#### Поставщик `TMK_NRG` — generic
Для поставщика реализована поддержка следующих объектов:Информация о лицевом счёте
Последний зарегистрированный платёж
Последняя выпущенная квитанция
Счётчик коммунальных услуг
### ЛК ТЭСК (Тамбовская энергосбытовая компания) - `tambov`
[![Ссылка на личный кабинет "ЛК ТЭСК (Тамбовская энергосбытовая компания)"](https://raw.githubusercontent.com/alryaz/hass-lkcomu-interrao/main/images/headers/tambov.png)](https://my.tesk.su)#### Пример конфигурации:
```yaml
...
lkcomu_interrao:
type: tambov
username: username1
password: password1
```#### Поставщик `TMB` — Электричество
Для поставщика реализована поддержка следующих объектов:Информация о лицевом счёте
Последний зарегистрированный платёж
Последняя выпущенная квитанция
Счётчик коммунальных услуг
### ЕЛК Вологда (Северная сбытовая компания) - `sevesk`
[![Ссылка на личный кабинет "ЕЛК Вологда (Северная сбытовая компания)"](https://raw.githubusercontent.com/alryaz/hass-lkcomu-interrao/main/images/headers/sevesk.png)](https://lk.sevesk.ru)#### Пример конфигурации:
```yaml
...
lkcomu_interrao:
type: sevesk
username: username1
password: password1
```#### Поставщик `VLG` — Электричество
Для поставщика реализована поддержка следующих объектов:Информация о лицевом счёте
Последний зарегистрированный платёж
Последняя выпущенная квитанция
Счётчик коммунальных услуг
### ЛК Саратов (ПАО «Саратовэнерго») - `saratov`
[![Ссылка на личный кабинет "ЛК Саратов (ПАО «Саратовэнерго»)"](https://raw.githubusercontent.com/alryaz/hass-lkcomu-interrao/main/images/headers/saratov.png)](https://my.saratovenergo.ru)#### Пример конфигурации:
```yaml
...
lkcomu_interrao:
type: saratov
username: username1
password: password1
```#### Поставщик `SAR` — Электричество
Для поставщика реализована поддержка следующих объектов:Информация о лицевом счёте
Последний зарегистрированный платёж
Последняя выпущенная квитанция
Счётчик коммунальных услуг
### ЛКК ЭСКБ (Башэлектросбыт) - `bashkortostan`
[![Ссылка на личный кабинет "ЛКК ЭСКБ (Башэлектросбыт)"](https://raw.githubusercontent.com/alryaz/hass-lkcomu-interrao/main/images/headers/bashkortostan.png)](https://lkk.bashesk.ru)#### Пример конфигурации:
```yaml
...
lkcomu_interrao:
type: bashkortostan
username: username1
password: password1
```#### Поставщик `UFA` — Электричество
Для поставщика реализована поддержка следующих объектов:Информация о лицевом счёте
Последний зарегистрированный платёж
Последняя выпущенная квитанция
Счётчик коммунальных услуг
### ЛК Алтай (АО «АлтайЭнергосбыт») - `altai`
[![Ссылка на личный кабинет "ЛК Алтай (АО «АлтайЭнергосбыт»)"](https://raw.githubusercontent.com/alryaz/hass-lkcomu-interrao/main/images/headers/altai.png)](https://lkfl.altaiensb.com)#### Пример конфигурации:
```yaml
...
lkcomu_interrao:
type: altai
username: username1
password: password1
```#### Поставщик `ALT` — Электричество
Для поставщика реализована поддержка следующих объектов:Информация о лицевом счёте
Последний зарегистрированный платёж
Последняя выпущенная квитанция
Счётчик коммунальных услуг
## Дополнительная информация
Компонент находится в активной разработке. Примерная дорожная карта и план развития:
- `[0.0.1; 0.1.0)` — первичная обкатка компонента на поддерживаемых поставщиках;
- `[0.1.0; 0.2.0)` — разработка визуального конфигуратора для интеграции;
- `[0.2.0; 1.0.0)` — выполнение задач по оптимизации и чистке кода;
- `[1.0.0; .....)` — финальный выпуск компонента и исправление ошибок.Увеличение старшей версии сопутствует:
- изменениям в конфигурационной схеме;
- удалению функционала;
- расширению сферы применения интеграции.Увеличение младшей версии сопутствует:
- добавлению нового функционала;
- исправлению значительных ошибок.Увеличение номера сборки сопутствует:
- исправлению мелких ошибок / выпуску хотфиксов;
- изменениям во взаимодействии с основополагающей библиотекой (или её версии).