Интеграция личного кабинета ЕИРЦ СПб (ikus.pesc.ru) для Home Assistant.
Домен интеграции — eirc_spb.
Интеграция предоставляет данные лицевых счетов:
- начисления по услугам за последний период;
- сумма текущего счёта (ЕПД), история счетов, последний платёж, пеня, дедлайн передачи показаний;
- текущие показания счётчиков (вода, многотарифная электроэнергия и др.);
- отправка показаний счётчиков через сервис.
Каждый лицевой счёт отображается как отдельное устройство. Для каждого счёта создаются сенсоры:
| Сенсор | Описание | Ед. | Атрибуты |
|---|---|---|---|
sensor.eirc_spb_<номер_ЕЛС>_accruals |
Начисления за последний период | ₽ | period — период; разбивка по услугам (отдельный атрибут на каждую услугу); area — общая площадь, rooms — кол-во комнат, owner — владелец, management_company — управляющая компания, tariffs — тарифные ставки по услугам (передаются, если доступны в личном кабинете) |
auto_payment, delivery |
Диагностические атрибуты сенсора начислений (автоплатёж включён, способ получения счёта) | — | — |
sensor.eirc_spb_<номер_ЕЛС>_bill |
Сумма текущего счёта (ЕПД) | ₽ | account_id, bill_id, timestamp, history — история счетов (список id/amount/timestamp, новые сверху; передаётся, если доступна) |
sensor.eirc_spb_<номер_ЕЛС>_last_payment |
Последний платёж | ₽ | payment_id, date, status |
sensor.eirc_spb_<номер_ЕЛС>_provider_<поставщик> |
Начисления за текущий период по поставщику (ЖКС, Ростелеком и т.д.; создаётся автоматически на каждого) | ₽ | — |
sensor.eirc_spb_<номер_ЕЛС>_fines |
Пеня | ₽ | — |
sensor.eirc_spb_<номер_ЕЛС>_reading_deadline |
Дедлайн передачи показаний (день месяца) | — | period — период, window — окно приёма показаний |
sensor.eirc_spb_<номер_ЕЛС>_<счётчик>_<тариф> |
Показания счётчика (счётчик total_increasing) |
м³ / кВт·ч | account_id, meter_id, scale_id, last_submit (дата последних переданных показаний), meter_serial (номер счётчика), verification_date (дата очередной поверки), model (модель), install_date (дата установки) — данные паспорта счётчика, передаются, если доступны в личном кабинете |
Для многотарифного электросчётчика создаётся отдельный сенсор на каждый тариф (Т1, Т2, …).
В таблице указан формат
unique_id; фактическийentity_idсенсора возьмите из интерфейса Home Assistant (Инструменты разработчика → Состояния). Идентификаторы сущностей английские:…_accruals,…_current_bill,…_last_payment,…_fines,…_reading_deadline,…_hot_water_<номер ПУ>,…_electricity_day_<номер ПУ>,…_accruals_<поставщик>.
Отдельный сенсор расхода не нужен: показания счётчиков уже total_increasing, поэтому расход за месяц строится штатными средствами Home Assistant — раздел Статистика или панель Энергия (энергия и вода): добавьте сенсор показаний, HA посчитает разницу сам.
Через HACS (пользовательский репозиторий):
- Откройте HACS в боковом меню Home Assistant.
- Справа вверху нажмите ⋮ (три точки) → Пользовательские репозитории.
- В поле «Репозиторий" введите:
MrYadro/ha-eirc, в поле "Категория" выберите Интеграция → Добавить. - Нажмите + Эксплорер и загрузка репозиториев, найдите ЕИРЦ Санкт-Петербурга → Скачать.
- Перезапустите Home Assistant.
Если HACS ещё не установлен — инструкция: hacs.xyz/docs/setup/download.
- Настройки → Устройства и службы → Добавить интеграцию → ЕИРЦ Санкт-Петербурга.
- Введите логин и пароль от личного кабинета. Логин — телефон в формате
+7…или e-mail. - Если сервер требует подтверждения входа, выберите способ получения кода: E-mail, SMS или Звонок — код придёт выбранным способом, введите его.
- Выберите лицевые счета, по которым нужны данные. Если счёт один, он подключается автоматически.
- Интервал обновления задаётся в параметрах интеграции: от 1 до 24 часов (по умолчанию 12).
При смене пароля в личном кабинете Home Assistant предложит повторную авторизацию (reauth).
Сервис eirc_spb.send_meter_reading передаёт показания на сервер ЕИРЦ (протокол проверен на реальном аккаунте):
action: eirc_spb.send_meter_reading
data:
entity_id: sensor.ivan_els_71000000001_hot_water_111111
readings:
- value: 234.854entity_id— сенсор счётчика;scale_idподставляется автоматически из атрибутов сенсора (0 — вода, 2 — день, 3 — ночь);- для многотарифного электросчётчика передайте несколько записей с явным
scale_idв одном вызове:
readings:
- scale_id: 2
value: 8673
- scale_id: 3
value: 3890- сервис возвращает ответ
{code, message, validated}— его можно использовать в автоматизациях (режим ответа включается опциейreturn_response);validated: trueозначает, что сервер проверил показания перед отправкой; - перед отправкой показания проверяются на сервере: если сервер отвечает ошибкой (например, новые показания меньше предыдущих), сервис завершится ошибкой с сообщением сервера и показания не отправятся;
- если сервер предупреждает о необычном расходе, отправка блокируется с подсказкой подтвердить намерение — передайте
confirm: true, чтобы отправить показания несмотря на предупреждение:
action: eirc_spb.send_meter_reading
data:
entity_id: sensor.ivan_els_71000000001_hot_water_111111
readings:
- value: 999.123
confirm: true- если сервер проверки недоступен, показания отправляются без предварительной проверки (
validated: false); - при отказе API во время отправки сервис завершится ошибкой с сообщением сервера.
После успешной отправки данные интеграции автоматически обновляются.
Сервис eirc_spb.download_bill скачивает счёт (ЕПД) в формате PDF:
action: eirc_spb.download_bill
data:
entity_id: sensor.ivan_els_71000000001_tekuschii_schetentity_id— сенсор текущего счёта (тот, у которого есть атрибутbill_id; фактическийentity_idвозьмите из интерфейса Home Assistant — Инструменты разработчика → Состояния); номер счёта берётся из его атрибутаbill_id;bill_id(необязательно) — скачать конкретный счёт из атрибутаhistory;path(необязательно) — куда сохранить файл; по умолчанию<каталог конфигурации>/www/eirc/<номер ЕЛС>_<bill_id>.pdf. Путь должен находиться внутри каталога конфигурации Home Assistant;- файлы в каталоге
www/eircдоступны по адресу/local/eirc/…; - сервис возвращает ответ
{path, url, bytes}— его можно использовать в автоматизациях (режим ответа включается опциейreturn_response).
Интеграция генерирует события и (по умолчанию) уведомления в интерфейсе Home Assistant (отключается в опциях):
| Событие | Когда | Данные |
|---|---|---|
eirc_spb_notification |
Новое уведомление из личного кабината («колокольчик» ЕИРЦ: новый счёт, оплата, важная информация) | title, message, timestamp, native_type |
eirc_spb_new_bill |
Появился новый счёт | bill_id, amount, timestamp, number |
eirc_spb_new_payment |
Новый платёж | payment_id, amount, date, status, number |
eirc_spb_reading_deadline |
Приближается дедлайн показаний (за N дней, N — в опциях) | days_left, period, deadline_day, number |
Пример автоматизации (Telegram):
alias: ЕИРЦ — уведомления
triggers:
- trigger: event
event_type: eirc_spb_notification
- trigger: event
event_type: eirc_spb_new_bill
- trigger: event
event_type: eirc_spb_new_payment
- trigger: event
event_type: eirc_spb_reading_deadline
actions:
- action: notify.telegram
data:
title: ЕИРЦ Санкт-Петербурга
message: >
{{ trigger.event.data.title | default('Новый счёт ' ~ trigger.event.data.bill_id,
true) }}
{{ trigger.event.data.message | default('на сумму ' ~ trigger.event.data.amount ~ ' ₽', true) }}Для мобильного приложения замените notify.telegram на ваш notify.mobile_app_*.
За сколько дней предупреждать о дедлайне и включены ли уведомления в интерфейсе — настраивается в опциях интеграции (изменения применяются сразу, без перезапуска).
Включите отладочный лог в configuration.yaml:
logger:
logs:
custom_components.eirc_spb: debugЛогин, пароль и токен подтверждения хранятся в config entry (конфигурации Home Assistant). Не публикуйте бэкапы конфигурации: они содержат ваши учётные данные.
- Поддерживается только портал ikus.pesc.ru; ВЦКП (lk.kvartplata.info) не поддерживается.
- Новые счётчики, появившиеся после настройки, отобразятся после перезагрузки интеграции (обновления записи конфигурации).
- Отправка показаний — только через ручные вызовы сервиса и автоматизации.
Требуется Python 3.14+.
pip install -r requirements_test.txt
pytestФикстуры тестов подготовлены sanitize-инструментами из scripts/ (очистка персональных данных).
Лицензия — MIT.