Интеграция Home Assistant с ЛК "Интер РАО"

Overview

ЕЛК ЖКХ «Интер РАО» для Home Assistant

Логотип интеграции

Предоставление информации о текущем состоянии ваших аккаунтов в ЕЛК ЖКХ.

hacs_badge Лицензия Поддержка

Пожертвование Yandex Пожертвование PayPal

Введение

@ TODO @

Установка

Посредством HACS

✔️ ️ Рекомендуемый метод

  1. Установите HACS (инструкция по установке на оф. сайте)
  2. Добавьте репозиторий в список дополнительных
  3. Найдите energosbyt в поиске по интеграциям 1
  4. Установите последнюю версию компонента, нажав на кнопку Установить (Install)
  5. Перезапустите Home Assistant

1 При поиске может появиться компонент Мосэнергосбыт. Это предшествующая данному проекту интеграция, и будет в скором времени упразднена.

Вручную

⚠️ Не рекомендуется

  1. Скачайте архив с исходным кодом дополнения
  2. Извлеките папку lkcomu_interrao из архива в папку custom_components внутри папки с конфигурацией Home Assistant (создайте её, если она отсутствует)
  3. Перезапустите Home Assistant

Настройка

Через раздел интеграции

  1. Перейдите в подраздел "Интеграции" в разделе "Настройки"
  2. Нажмите кнопку "Добавить интеграцию"
  3. Введите в поисковую строку: Личный кабинет Интер РАО (Энергосбыт) (англ. Inter RAO Personal Cabinet (Energosbyt))
  4. Выберите найденную интеграцию
  5. Следуйте инструкциям мастера по добавлению

Примечание: Поле Заголовок User-Agent (англ. User-Agent header) генерируется автоматически.

Описание конфигурационной схемы

# Файл `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`).
      ...

Вариант конфигурации "Чёрный список"

Для реализации белого списка, конфигурация выполняется следующим образом:

...
lkcomu_interrao:
  ...
  # Выборочное исключение лицевых счетов
  accounts:
    # Все указанные ниже лицевые счета будут добавлены
    "12345-678-90": false
    "98765-432-10": false
    "111000111000": false

Вариант конфигурации "Белый список"

Для реализации белого списка, конфигурация выполняется следующим образом:

...
lkcomu_interrao:
  ...
  # Отключение добавление лицевых счетов по умолчанию
  default: false

  # Выборочное включение лицевых сченов
  accounts:
    # Все указанные ниже лицевые счета будут добавлены
    "12345-678-90": true
    "98765-432-10": true
    "111000111000": true

Также возможно использовать укороченную запись:

...
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 — Передача показаний

Только для объектов, поддерживающих данный функционал

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

Ссылка на личный кабинет "ЕЛК ЖКХ (АО «Мосэнергосбыт», МосОблЕИРЦ, ПАО «Россети Московский регион»)"

Пример конфигурации:

...
lkcomu_interrao:
  type: moscow
  username: username1
  password: password1

Поставщик MES — Электричество

Для поставщика реализована поддержка следующих объектов:

Информация о лицевом счёте Скриншот
Последний зарегистрированный платёж Скриншот
Последняя выпущенная квитанция Скриншот
Счётчик коммунальных услуг Скриншот

Поставщик KSG — Электричество

Для поставщика реализована поддержка следующих объектов:

Информация о лицевом счёте Скриншот
Последний зарегистрированный платёж Скриншот
Последняя выпущенная квитанция Скриншот
Счётчик коммунальных услуг Скриншот

Поставщик MOE — ЕПД

Для поставщика реализована поддержка следующих объектов:

Информация о лицевом счёте Скриншот
Последний зарегистрированный платёж Скриншот
Последняя выпущенная квитанция Скриншот
Счётчик коммунальных услуг Скриншот

Поставщик TKO — ТКО

Для поставщика реализована поддержка следующих объектов:

Информация о лицевом счёте Скриншот
Последний зарегистрированный платёж Снимок экрана отсутствует
Последняя выпущенная квитанция Скриншот
Счётчик коммунальных услуг Снимок экрана отсутствует

ЛКК Орел (ООО «Орловский энергосбыт») - oryol

Ссылка на личный кабинет "ЛКК Орел (ООО «Орловский энергосбыт»)"

Пример конфигурации:

...
lkcomu_interrao:
  type: oryol
  username: username1
  password: password1

Поставщик ORL_EPD — ЕПД

Для поставщика реализована поддержка следующих объектов:

Информация о лицевом счёте Скриншот
Последняя выпущенная квитанция Скриншот

Поставщик ORL — Электричество

Для поставщика реализована поддержка следующих объектов:

Информация о лицевом счёте Скриншот
Последний зарегистрированный платёж Скриншот
Последняя выпущенная квитанция Скриншот
Счётчик коммунальных услуг Скриншот

ЛКК ЭСВ (Энергосбыт Волга) - volga

Ссылка на личный кабинет "ЛКК ЭСВ (Энергосбыт Волга)"

Пример конфигурации:

...
lkcomu_interrao:
  type: volga
  username: username1
  password: password1

Поставщик VLD — Электричество

Для поставщика реализована поддержка следующих объектов:

Информация о лицевом счёте Скриншот
Последний зарегистрированный платёж Скриншот
Последняя выпущенная квитанция Скриншот
Счётчик коммунальных услуг Скриншот

ЕЛК Томск (Томскэнергосбыт / Томск РТС) - tomsk

Ссылка на личный кабинет "ЕЛК Томск (Томскэнергосбыт / Томск РТС)"

Пример конфигурации:

...
lkcomu_interrao:
  type: tomsk
  username: username1
  password: password1

Поставщик TMK_NRG — generic

Для поставщика реализована поддержка следующих объектов:

Информация о лицевом счёте Скриншот
Последний зарегистрированный платёж Скриншот
Последняя выпущенная квитанция Скриншот
Счётчик коммунальных услуг Скриншот

ЛК ТЭСК (Тамбовская энергосбытовая компания) - tambov

Ссылка на личный кабинет "ЛК ТЭСК (Тамбовская энергосбытовая компания)"

Пример конфигурации:

...
lkcomu_interrao:
  type: tambov
  username: username1
  password: password1

Поставщик TMB — Электричество

Для поставщика реализована поддержка следующих объектов:

Информация о лицевом счёте Скриншот
Последний зарегистрированный платёж Скриншот
Последняя выпущенная квитанция Скриншот
Счётчик коммунальных услуг Скриншот

ЕЛК Вологда (Северная сбытовая компания) - sevesk

Ссылка на личный кабинет "ЕЛК Вологда (Северная сбытовая компания)"

Пример конфигурации:

...
lkcomu_interrao:
  type: sevesk
  username: username1
  password: password1

Поставщик VLG — Электричество

Для поставщика реализована поддержка следующих объектов:

Информация о лицевом счёте Скриншот
Последний зарегистрированный платёж Скриншот
Последняя выпущенная квитанция Скриншот
Счётчик коммунальных услуг Скриншот

ЛК Саратов (ПАО «Саратовэнерго») - saratov

Ссылка на личный кабинет "ЛК Саратов (ПАО «Саратовэнерго»)"

Пример конфигурации:

...
lkcomu_interrao:
  type: saratov
  username: username1
  password: password1

Поставщик SAR — Электричество

Для поставщика реализована поддержка следующих объектов:

Информация о лицевом счёте Скриншот
Последний зарегистрированный платёж Скриншот
Последняя выпущенная квитанция Скриншот
Счётчик коммунальных услуг Скриншот

ЛКК ЭСКБ (Башэлектросбыт) - bashkortostan

Ссылка на личный кабинет "ЛКК ЭСКБ (Башэлектросбыт)"

Пример конфигурации:

...
lkcomu_interrao:
  type: bashkortostan
  username: username1
  password: password1

Поставщик UFA — Электричество

Для поставщика реализована поддержка следующих объектов:

Информация о лицевом счёте Скриншот
Последний зарегистрированный платёж Скриншот
Последняя выпущенная квитанция Скриншот
Счётчик коммунальных услуг Скриншот

ЛК Алтай (АО «АлтайЭнергосбыт») - altai

Ссылка на личный кабинет "ЛК Алтай (АО «АлтайЭнергосбыт»)"

Пример конфигурации:

...
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; .....) — финальный выпуск компонента и исправление ошибок.

Увеличение старшей версии сопутствует:

  • изменениям в конфигурационной схеме;
  • удалению функционала;
  • расширению сферы применения интеграции.

Увеличение младшей версии сопутствует:

  • добавлению нового функционала;
  • исправлению значительных ошибок.

Увеличение номера сборки сопутствует:

  • исправлению мелких ошибок / выпуску хотфиксов;
  • изменениям во взаимодействии с основополагающей библиотекой (или её версии).
Comments
  • Вредоносная активность

    Вредоносная активность

    Интеграция отключилась. Причина - в моем личном кабинете Мосэнергосбыта сообщение: Уважаемый пользователь! C Вашего IP-адреса (ХХХ.ХХХ.ХХХ.ХХХ) была зафиксирована вредоносная активность при обращении к Единому Личному кабинету АО Мосэнергосбыт и ООО МосОблЕИРЦ. В связи с этим доступ с Вашего IP-адреса был временно заблокирован. Обращаем внимание: Ваш IP-адрес будет автоматически разблокирован в течение 3 часов. Подозреваю, что это "бан" возник из-за слишком частых обращений интеграции к личному кабинету. Может быть, есть какой-то способ снизить периодичность обращения к личному кабинету? Например, до двух-трех раз в сутки. P.S. И вот, что ещё. На сайте Мосэнергосбыта написано, что теперь "Личный кабинет" будет доступен не круглосуточно, а только с 06:00 до 00:00 по московскому времени (а на сайте МосОблЕИРца - с 07:00 до 23:00). В остальное время суток сайты "my.mosenergosbyt.ru" и "lkk.mosobleirc.ru" даже не пингуются. И это тоже вызывает ошибку в интеграции.

    opened by booroondookZ 16
  • Интеграция не находится в списке доступных

    Интеграция не находится в списке доступных

    Добрый день. Установил новую интеграцию через hacs, но не могу ее добавить в HA. Находится только мосэнергосбыт. Эти интеграции можно одновременно устанавливать? Они не конфликтуют? Старую не хочется сразу удалять, там работает автоматизация по отправке показаний счетчиков. new_energosbyt energosbyt_integration

    external 
    opened by MaximSN 6
  • feature request: отдельные устройства для лицевых счетов

    feature request: отдельные устройства для лицевых счетов

    Как работает сейчас

    У интеграции есть только список объектов. Если к аккаунту привязано несколько ЛС, то все сенсоры на странице интеграции в перемешку.

    Как хочется

    Отдельное устройство на каждый лицевой счет.

    dev hint

    То, к какому устройству принадлежит сенсор (Entity, в общем случае) в HA определяется полем identifiers в свойстве device_info

            { "identifiers": {(DOMAIN, self.unique_id)} }
            
    

    все Entity с одинаковыми identifiers будут отнесены к одному устройству

    opened by IATkachenko 5
  • Проблемы с авторизацией

    Проблемы с авторизацией

    В какой-то момент (заметил пару дней назад) интеграция перестала работать, в логах такое:

    [moscow/8***9] Невозможно выполнить авторизацию: EnergosbytException('Authentication failed', 122, 'Уважаемый пользователь<br>с Вашего IP-адреса <b>(***.***.***.***)</b> была зафиксирована вредоносная активность при обращении к Единому Личному кабинету АО Мосэнергосбыт и ООО МосОблЕИРЦ<br>В связи с этим доступ с Вашего IP-адреса был временно заблокирован<br>Для разблокировки доступа или если ваш адрес был заблокирован по ошибке<br>Просим Вас обратиться в службу поддержки пользователей по телефону <b>+7 (499) 550-9-550</b><br>Для обращения в службу поддержки просим Вас запомнить или записать Ваши IP-адрес <b>(***.***.***.***)</b> и (или) этот идентификатор ID: <b>(2021-07-28-11-11-05-3DB7CDC951******)</b> <br>Мы заботимся о безопасности Ваших данных и благодарим за понимание!')
    

    Смена IP при этом помогает совсем не на долго.

    Есть мысли как с этим можно побороться? Может быть уменьшить частоту опроса, или поменять юзер-агента?

    opened by avbor 5
  • Ошибка интеграции на HA 2021.11b0

    Ошибка интеграции на HA 2021.11b0

    В бета версии HA 2021.11 интеграция не работает, в логе ХА ошибка:

    This error originated from a custom integration.
    
    Logger: homeassistant.config_entries
    Source: custom_components/lkcomu_interrao/sensor.py:147
    Integration: Inter RAO Personal Cabinet (Energosbyt) (documentation, issues)
    First occurred: 7:17:14 PM (1 occurrences)
    Last logged: 7:17:14 PM
    
    Error setting up entry my.mosenergosbyt.ru (+70000000000) for sensor
    Traceback (most recent call last):
      File "/usr/src/homeassistant/homeassistant/config_entries.py", line 304, in async_setup
        result = await component.async_setup_entry(hass, self)  # type: ignore
      File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 128, in async_setup_entry
        return await component.async_setup_entry(entry)
      File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 149, in async_setup_entry
        platform = await async_prepare_setup_platform(
      File "/usr/src/homeassistant/homeassistant/setup.py", line 334, in async_prepare_setup_platform
        platform = integration.get_platform(domain)
      File "/usr/src/homeassistant/homeassistant/loader.py", line 530, in get_platform
        cache[full_name] = self._import_platform(platform_name)
      File "/usr/src/homeassistant/homeassistant/loader.py", line 535, in _import_platform
        return importlib.import_module(f"{self.pkg_path}.{platform_name}")
      File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
      File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
      File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 850, in exec_module
      File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
      File "/config/custom_components/lkcomu_interrao/sensor.py", line 147, in <module>
        persistent_notification.SCHEMA_SERVICE_CREATE,
    AttributeError: module 'homeassistant.components.persistent_notification' has no attribute 'SCHEMA_SERVICE_CREATE'
    

    Может быть что-то нужно поправить, чтобы к релизу не было сюрприза? =)

    opened by avbor 4
  • Сломалась авторизация, Требует капчу

    Сломалась авторизация, Требует капчу

    Logger: custom_components.lkcomu_interrao Source: custom_components/lkcomu_interrao/init.py:277 Integration: Личный кабинет Интер РАО (Энергосбыт) (documentation, issues) First occurred: 22:54:33 (3 occurrences) Last logged: 22:55:01

    [moscow/9***2] Невозможно выполнить авторизацию: EnergosbytException('Authentication failed', 114, 'Не подтверждена капча')

    external 
    opened by bigsem89 3
  • Ошибка после обновления ХА до 2021.9.х

    Ошибка после обновления ХА до 2021.9.х

    После обновления ХА до крайней версии возникает ошибка при запуске интеграции:

    2021-09-09 11:24:22 ERROR (MainThread) [custom_components.lkcomu_interrao._base] Error occurred during task execution: TypeError("int() argument must be a string, a bytes-like object or a number, not 'NoneType'")
    
    2021-09-09T08:24:22.684460911Z Traceback (most recent call last):
    
    2021-09-09T08:24:22.684474397Z   File "/config/custom_components/lkcomu_interrao/_base.py", line 294, in _wrap_update_task
    
    2021-09-09T08:24:22.684487170Z     return await update_task
    
    2021-09-09T08:24:22.684499066Z   File "/config/custom_components/lkcomu_interrao/sensor.py", line 585, in async_refresh_accounts
    
    2021-09-09T08:24:22.684511298Z     meters = await account.async_get_meters()
    
    2021-09-09T08:24:22.684522562Z   File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 330, in async_get_meters
    
    2021-09-09T08:24:22.684534860Z     return await self.async_get_smorodina_meters()
    
    2021-09-09T08:24:22.684546614Z   File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 318, in async_get_smorodina_meters
    
    2021-09-09T08:24:22.684558929Z     response = await AbonentEquipment.async_request(self.api, proxy, provider)
    
    2021-09-09T08:24:22.684570694Z   File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/actions/sql/abonent.py", line 327, in async_request
    
    2021-09-09T08:24:22.684582949Z     return await api.async_action_map(cls, ACTION_SQL, proxy, data)
    
    2021-09-09T08:24:22.684594617Z   File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/interfaces.py", line 594, in async_action_map
    
    2021-09-09T08:24:22.684606951Z     data=list(map(map_with.from_response, filter(bool, response["data"]))),
    
    2021-09-09T08:24:22.684618765Z   File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/actions/__init__.py", line 182, in from_response
    
    2021-09-09T08:24:22.684661746Z     return cls(**init_args)  # type: ignore[call-arg]
    
    2021-09-09T08:24:22.684675724Z   File "<attrs generated init inter_rao_energosbyt.actions.sql.abonent.AbonentEquipment>", line 9, in __init__
    
    2021-09-09T08:24:22.684688611Z     _setattr('id_indication', __attr_converter_id_indication(id_indication))
    
    2021-09-09T08:24:22.684700402Z TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
    

    Не доступен счетчик электричества Мособлэнерго.

    opened by bastshoes 2
  • Не доступны показания счетчиков

    Не доступны показания счетчиков

    Проблема наблюдалась и на v.0.0.18 и на 0.0.19 Эта ошибка возникла в кастомной интеграции.

    Logger: custom_components.lkcomu_interrao._base Source: custom_components/lkcomu_interrao/sensor.py:585 Integration: Личный кабинет Интер РАО (Энергосбыт) (documentation, issues) First occurred: 15:41:37 (1 occurrences) Last logged: 15:41:37

    Error occurred during task execution: TypeError("float() argument must be a string or a number, not 'NoneType'") Traceback (most recent call last): File "/config/custom_components/lkcomu_interrao/_base.py", line 294, in _wrap_update_task return await update_task File "/config/custom_components/lkcomu_interrao/sensor.py", line 585, in async_refresh_accounts meters = await account.async_get_meters() File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 328, in async_get_meters return await self.async_get_smorodina_meters() File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 316, in async_get_smorodina_meters response = await AbonentEquipment.async_request(self.api, proxy, provider) File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/actions/sql/abonent.py", line 327, in async_request return await api.async_action_map(cls, ACTION_SQL, proxy, data) File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/interfaces.py", line 594, in async_action_map data=list(map(map_with.from_response, filter(bool, response["data"]))), File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/actions/init.py", line 182, in from_response return cls(**init_args) # type: ignore[call-arg] File "", line 24, in init _setattr('vl_tarif', __attr_converter_vl_tarif(vl_tarif)) TypeError: float() argument must be a string or a number, not 'NoneType'

    bug 
    opened by MaximSN 2
  • Ошибка создания сенсора

    Ошибка создания сенсора

    После последнего обновления (0.0.19) возникает следующая ошибка:

    Source: custom_components/lkcomu_interrao/sensor.py:585 Traceback (most recent call last): File "/config/custom_components/lkcomu_interrao/_base.py", line 294, in _wrap_update_task return await update_task File "/config/custom_components/lkcomu_interrao/sensor.py", line 585, in async_refresh_accounts meters = await account.async_get_meters() File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 328, in async_get_meters return await self.async_get_smorodina_meters() File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 316, in async_get_smorodina_meters response = await AbonentEquipment.async_request(self.api, proxy, provider) File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/actions/sql/abonent.py", line 327, in async_request return await api.async_action_map(cls, ACTION_SQL, proxy, data) File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/interfaces.py", line 594, in async_action_map data=list(map(map_with.from_response, filter(bool, response["data"]))), File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/actions/init.py", line 182, in from_response return cls(**init_args) # type: ignore[call-arg] File "", line 24, in init _setattr('vl_tarif', __attr_converter_vl_tarif(vl_tarif)) TypeError: float() argument must be a string or a number, not 'NoneType'

    bug 
    opened by bastshoes 2
  • Не понятные ошибки в логе

    Не понятные ошибки в логе

    Вижу в логе непонятные ошибки. После перезагрузки значения всех сенсоров недоступно Logger: homeassistant.components.sensor Source: custom_components/lkcomu_interrao/sensor.py:382 Integration: Сенсор (documentation, issues) First occurred: 20:29:07 (2 occurrences) Last logged: 20:33:29

    lkcomu_interrao: Error on device update! Traceback (most recent call last): File "/config/custom_components/lkcomu_interrao/_util.py", line 153, in with_auto_auth return await async_getter(*args, **kwargs) File "/config/custom_components/lkcomu_interrao/sensor.py", line 382, in async_update_internal self._balance = await account.async_get_balance() File "/usr/local/lib/python3.8/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 591, in async_get_balance response_balance = await AbonentCurrentBalance.async_request(self.api, proxy, provider) File "/usr/local/lib/python3.8/site-packages/inter_rao_energosbyt/actions/sql/abonent.py", line 265, in async_request return await api.async_action_map(cls, ACTION_SQL, proxy, data) File "/usr/local/lib/python3.8/site-packages/inter_rao_energosbyt/interfaces.py", line 592, in async_action_map response = await self._async_action_with_exceptions(action, query, data) File "/usr/local/lib/python3.8/site-packages/inter_rao_energosbyt/interfaces.py", line 574, in _async_action_with_exceptions raise EnergosbytException("ActionRequest error", error_code, error_text) inter_rao_energosbyt.exceptions.EnergosbytException: ('ActionRequest error', 300, 'connect timed out ()')

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 432, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 550, in async_device_update await task File "/config/custom_components/lkcomu_interrao/_base.py", line 564, in async_update await with_auto_auth(self._account.api, self.async_update_internal) File "/config/custom_components/lkcomu_interrao/_util.py", line 156, in with_auto_auth return await async_getter(*args, **kwargs) File "/config/custom_components/lkcomu_interrao/sensor.py", line 382, in async_update_internal self._balance = await account.async_get_balance() File "/usr/local/lib/python3.8/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 591, in async_get_balance response_balance = await AbonentCurrentBalance.async_request(self.api, proxy, provider) File "/usr/local/lib/python3.8/site-packages/inter_rao_energosbyt/actions/sql/abonent.py", line 265, in async_request return await api.async_action_map(cls, ACTION_SQL, proxy, data) File "/usr/local/lib/python3.8/site-packages/inter_rao_energosbyt/interfaces.py", line 592, in async_action_map response = await self._async_action_with_exceptions(action, query, data) File "/usr/local/lib/python3.8/site-packages/inter_rao_energosbyt/interfaces.py", line 574, in _async_action_with_exceptions raise EnergosbytException("ActionRequest error", error_code, error_text) inter_rao_energosbyt.exceptions.EnergosbytException: ('ActionRequest error', 300, 'connect timed out ()')

    opened by MaximSN 2
  • Error on device update!

    Error on device update!

    Error on Device Update! After Home Assistant Core update from 2022.9.7 to 2022.10.2 2022-10-10 19:09:31.312 ERROR (MainThread) [custom_components.lkcomu_interrao._base] Error occurred during task execution: EnergosbytException('ActionRequest error', 300, 'connect timed out (<no description provided>)') Traceback (most recent call last): File "/config/custom_components/lkcomu_interrao/_base.py", line 257, in _wrap_update_task return await update_task File "/config/custom_components/lkcomu_interrao/sensor.py", line 549, in async_refresh_accounts meters = await account.async_get_meters() File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 330, in async_get_meters return await self.async_get_smorodina_meters() File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 318, in async_get_smorodina_meters response = await AbonentEquipment.async_request(self.api, proxy, provider) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/actions/sql/abonent.py", line 327, in async_request return await api.async_action_map(cls, ACTION_SQL, proxy, data) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 595, in async_action_map response = await self._async_action_with_exceptions(action, query, data) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 577, in _async_action_with_exceptions raise EnergosbytException("ActionRequest error", error_code, error_text) inter_rao_energosbyt.exceptions.EnergosbytException: ('ActionRequest error', 300, 'connect timed out (<no description provided>)') 2022-10-10 19:09:35.916 WARNING (MainThread) [homeassistant.components.binary_sensor] Setup of binary_sensor platform lkcomu_interrao is taking over 10 seconds. 2022-10-10 19:09:40.281 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: binary_sensor.lkcomu_interrao 2022-10-10 19:09:41.776 ERROR (MainThread) [homeassistant.components.sensor] lkcomu_interrao: Error on device update! Traceback (most recent call last): File "/config/custom_components/lkcomu_interrao/_util.py", line 153, in with_auto_auth return await async_getter(*args, **kwargs) File "/config/custom_components/lkcomu_interrao/sensor.py", line 345, in async_update_internal self._balance = await account.async_get_balance() File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 590, in async_get_balance response_balance = await AbonentCurrentBalance.async_request(self.api, proxy, provider) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/actions/sql/abonent.py", line 265, in async_request return await api.async_action_map(cls, ACTION_SQL, proxy, data) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 595, in async_action_map response = await self._async_action_with_exceptions(action, query, data) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 577, in _async_action_with_exceptions raise EnergosbytException("ActionRequest error", error_code, error_text) inter_rao_energosbyt.exceptions.EnergosbytException: ('ActionRequest error', 300, 'connect timed out (<no description provided>)') During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 493, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 703, in async_device_update await task File "/config/custom_components/lkcomu_interrao/_base.py", line 506, in async_update await with_auto_auth(self._account.api, self.async_update_internal) File "/config/custom_components/lkcomu_interrao/_util.py", line 156, in with_auto_auth return await async_getter(*args, **kwargs) File "/config/custom_components/lkcomu_interrao/sensor.py", line 345, in async_update_internal self._balance = await account.async_get_balance() File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 590, in async_get_balance response_balance = await AbonentCurrentBalance.async_request(self.api, proxy, provider) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/actions/sql/abonent.py", line 265, in async_request return await api.async_action_map(cls, ACTION_SQL, proxy, data) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 595, in async_action_map response = await self._async_action_with_exceptions(action, query, data) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 577, in _async_action_with_exceptions raise EnergosbytException("ActionRequest error", error_code, error_text) inter_rao_energosbyt.exceptions.EnergosbytException: ('ActionRequest error', 300, 'connect timed out (<no description provided>)') 2022-10-10 19:09:41.791 ERROR (MainThread) [homeassistant.components.binary_sensor] lkcomu_interrao: Error on device update! Traceback (most recent call last): File "/config/custom_components/lkcomu_interrao/_util.py", line 153, in with_auto_auth return await async_getter(*args, **kwargs) File "/config/custom_components/lkcomu_interrao/binary_sensor.py", line 82, in async_update_internal self._last_payment = await self._account.async_get_last_payment() File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 1155, in async_get_last_payment return await self._internal_async_find_dated_last(self.async_get_payments, end) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 140, in _internal_async_find_dated_last all_items = await async_getter(start, end) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 164, in async_get_payments return await self.async_get_smorodina_payments(start, end) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 149, in async_get_smorodina_payments response = await AbonentPays.async_request( File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/actions/sql/abonent.py", line 537, in async_request return await api.async_action_map(cls, ACTION_SQL, proxy, data) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 595, in async_action_map response = await self._async_action_with_exceptions(action, query, data) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 577, in _async_action_with_exceptions raise EnergosbytException("ActionRequest error", error_code, error_text) inter_rao_energosbyt.exceptions.EnergosbytException: ('ActionRequest error', 300, 'connect timed out (<no description provided>)') During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 493, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 703, in async_device_update await task File "/config/custom_components/lkcomu_interrao/_base.py", line 506, in async_update await with_auto_auth(self._account.api, self.async_update_internal) File "/config/custom_components/lkcomu_interrao/_util.py", line 156, in with_auto_auth return await async_getter(*args, **kwargs) File "/config/custom_components/lkcomu_interrao/binary_sensor.py", line 82, in async_update_internal self._last_payment = await self._account.async_get_last_payment() File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 1155, in async_get_last_payment return await self._internal_async_find_dated_last(self.async_get_payments, end) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 140, in _internal_async_find_dated_last all_items = await async_getter(start, end) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 164, in async_get_payments return await self.async_get_smorodina_payments(start, end) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 149, in async_get_smorodina_payments response = await AbonentPays.async_request( File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/actions/sql/abonent.py", line 537, in async_request return await api.async_action_map(cls, ACTION_SQL, proxy, data) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 595, in async_action_map response = await self._async_action_with_exceptions(action, query, data) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 577, in _async_action_with_exceptions raise EnergosbytException("ActionRequest error", error_code, error_text) inter_rao_energosbyt.exceptions.EnergosbytException: ('ActionRequest error', 300, 'connect timed out (<no description provided>)') 2022-10-10 19:09:41.853 ERROR (MainThread) [homeassistant.components.sensor] lkcomu_interrao: Error on device update! Traceback (most recent call last): File "/config/custom_components/lkcomu_interrao/_util.py", line 153, in with_auto_auth return await async_getter(*args, **kwargs) File "/config/custom_components/lkcomu_interrao/sensor.py", line 924, in async_update_internal self._last_invoice = await self._account.async_get_last_invoice() File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 1232, in async_get_last_invoice return await self._internal_async_find_dated_last(self.async_get_invoices, end) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 140, in _internal_async_find_dated_last all_items = await async_getter(start, end) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 504, in async_get_invoices return await self.async_get_smorodina_invoices(start, end) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 511, in async_get_smorodina_invoices response = await AbonentChargeDetail.async_request( File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/actions/sql/abonent.py", line 655, in async_request return await api.async_action_map(cls, ACTION_SQL, proxy, data) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 595, in async_action_map response = await self._async_action_with_exceptions(action, query, data) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 577, in _async_action_with_exceptions raise EnergosbytException("ActionRequest error", error_code, error_text) inter_rao_energosbyt.exceptions.EnergosbytException: ('ActionRequest error', 300, 'connect timed out (<no description provided>)') During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 493, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 703, in async_device_update await task File "/config/custom_components/lkcomu_interrao/_base.py", line 506, in async_update await with_auto_auth(self._account.api, self.async_update_internal) File "/config/custom_components/lkcomu_interrao/_util.py", line 156, in with_auto_auth return await async_getter(*args, **kwargs) File "/config/custom_components/lkcomu_interrao/sensor.py", line 924, in async_update_internal self._last_invoice = await self._account.async_get_last_invoice() File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 1232, in async_get_last_invoice return await self._internal_async_find_dated_last(self.async_get_invoices, end) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 140, in _internal_async_find_dated_last all_items = await async_getter(start, end) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 504, in async_get_invoices return await self.async_get_smorodina_invoices(start, end) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/presets/smorodina.py", line 511, in async_get_smorodina_invoices response = await AbonentChargeDetail.async_request( File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/actions/sql/abonent.py", line 655, in async_request return await api.async_action_map(cls, ACTION_SQL, proxy, data) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 595, in async_action_map response = await self._async_action_with_exceptions(action, query, data) File "/usr/local/lib/python3.10/site-packages/inter_rao_energosbyt/interfaces.py", line 577, in _async_action_with_exceptions raise EnergosbytException("ActionRequest error", error_code, error_text) inter_rao_energosbyt.exceptions.EnergosbytException: ('ActionRequest error', 300, 'connect timed out (<no description provided>)')

    opened by Sashik259 1
  • Статистика почасового потребления

    Статистика почасового потребления

    В ЛК Мосэнергосбыта на странице https://my.mosenergosbyt.ru/accounts/ххххххххххх/statistics появилась возможность переходить на ресурс wp-prom-fl.mosenergosbyt.ru для просмотра Статистики почасового потребления, снятой в автоматическом режиме со счетчиков посредсвом АСКУЭ МЭС СБСД-2 (устанавливались централизованно в жилом фонде см. https://www.mosenergosbyt.ru/individuals/news/v-moskve-provodyatsya-raboty-po-ustanovke-umnykh-schyetchikov/)

    Авторизация в этот раздел ЛК прозрачная из основного по редиректу вида GET https://wp-prom-fl.mosenergosbyt.ru/?apikey=xxxxxxxxxxxxxxxxxxxxx

    Нет ли в планах добавления в интеграцию данных этого раздела? Было бы очень полезно иметь значения фактических расходов из этого ЛК в виде сенсоров в HA для последующего использования в Energy Management и автоматизациях.

    Готов помогать с отладкой и разбором структуры АПИ на работающем ЛК, если будет необходимо.

    opened by Gimlir 1
  • Ошибка подключения интеграции к серверу приложения

    Ошибка подключения интеграции к серверу приложения

    Logger: homeassistant.config_entries Source: custom_components/lkcomu_interrao/init.py:272 Integration: Личный кабинет Интер РАО (Энергосбыт) (documentation, issues) First occurred: 06:30:47 (1 occurrences) Last logged: 06:30:47

    Error setting up entry my.mosenergosbyt.ru (sa...nov@...) for lkcomu_interrao Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 986, in _wrap_create_connection return await self._loop.create_connection(*args, **kwargs) # type: ignore[return-value] # noqa File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1056, in create_connection raise exceptions[0] File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1041, in create_connection sock = await self._connect_sock( File "/usr/local/lib/python3.9/asyncio/base_events.py", line 955, in _connect_sock await self.sock_connect(sock, address) File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 502, in sock_connect return await fut File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 537, in _sock_connect_cb raise OSError(err, f'Connect call failed {address}') TimeoutError: [Errno 110] Connect call failed ('195.82.140.228', 443)

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/config_entries.py", line 327, in async_setup result = await component.async_setup_entry(hass, self) File "/config/custom_components/lkcomu_interrao/init.py", line 272, in async_setup_entry await api_object.async_authenticate() File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/interfaces.py", line 612, in async_authenticate async with self._session.get(self.AUTH_URL) as response: File "/usr/local/lib/python3.9/site-packages/aiohttp/client.py", line 1138, in aenter self._resp = await self._coro File "/usr/local/lib/python3.9/site-packages/aiohttp/client.py", line 535, in _request conn = await self._connector.connect( File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 542, in connect proto = await self._create_connection(req, traces, timeout) File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 907, in _create_connection _, proto = await self._create_direct_connection(req, traces, timeout) File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 1206, in _create_direct_connection raise last_exc File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 1175, in _create_direct_connection transp, proto = await self._wrap_create_connection( File "/usr/local/lib/python3.9/site-packages/aiohttp/connector.py", line 992, in _wrap_create_connection raise client_error(req.connection_key, exc) from exc aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host my.mosenergosbyt.ru:443 ssl:default [Connect call failed ('195.82.140.228', 443)]

    opened by DieMetRik 11
  • Учёт не тех показаний

    Учёт не тех показаний

    Обслуживающая компания - Мосэнергосбыт. Средствами Home Assistant постоянно вычисляется разница между текущими показаниями счётчика и теми показаниями, которые были на момент оплаты, а также - как производная от этих данных - сумма в рублях (ну, т.е., сколько "нагорело" электричества с момента последней оплаты). Оплата и соответствующая фиксация показаний обычно выполняется по 15-м числам каждого месяца. Однако Мосэнергосбыт периодически практикует как бы снятие показаний на 1-е число месяца (как бы - потому что это не физическое переписывание показаний счетчика, а некое "вычисленное" значение - но не суть важно). В итоге значения атрибутов "zone_t1_last_indication" и"zone_t2_last_indication" меняются, и вся моя конструкция начинает считать "нагорание" электричества не с момента оплаты, а от тех "паразитных" показаний, генерируемых Мосэнергосбытом. Как следствие - я теряю данные по денежным расходам. Можно ли как-то либо не учитывать эти "паразитные" показания, либо отделить их от действительно переданных на момент оплаты?

    opened by booroondookZ 2
  • last_indications_date не обновился после передачи показаний

    last_indications_date не обновился после передачи показаний

    Добрый день, спасибо за компонент!

    Недавно настроил автоматизацию, которая автоматически передает показания 16, 17, 18 числа каждого месяца несколько раз в день в Мосэнергосбыт. Каждый раз перед отправкой показаний проверяется дата в атрибуте last_indications_date сенсора sensor.mosenergosbyt_meter. Если дата соответствует текущему месяцу, то отправка не производится. Это сделано для того, чтобы гарантированно отправить показания за месяц, даже если система на стороне поставщика временно не работает.

    Сегодня показания были успешно переданы (даже несколько раз). Скрин из ЛК Мосэнергосбыта: Screenshot 2021-11-16 at 13 19 19

    Однако в сенсоре счётчика по-прежнему старая дата:

    attribution: Данные получены с my.mosenergosbyt.ru
    meter_code: %вырезано%
    account_code: %вырезано%
    model: Меркурий 206
    install_date: '2021-04-15'
    submit_period_start: '2021-11-15'
    submit_period_end: '2021-11-26'
    submit_period_active: true
    remaining_days: 10
    last_indications_date: '2021-10-16'
    zone_t1_name: пик (Т1)
    zone_t1_last_indication: 885
    zone_t1_today_indication: 964
    zone_t1_period_indication: 964
    zone_t2_name: ночь (Т2)
    zone_t2_last_indication: 824
    zone_t2_today_indication: 885
    zone_t2_period_indication: 885
    zone_t3_name: полупик (Т3)
    zone_t3_last_indication: 1288
    zone_t3_today_indication: 1404
    zone_t3_period_indication: 1404
    account_id: %вырезано%
    friendly_name: Mosenergosbyt Meter
    icon: mdi:counter
    supported_features: 3
    device_class: lkcomu_interrao_meter
    

    Это проблема на стороне компонента или API поставщика? Можно ли что-то сделать с этим?

    opened by andreypolyak 2
  • Unknown error occured Башэлектросбыт

    Unknown error occured Башэлектросбыт

    При попытке добавить интеграцию для ЛК Башэлектросбыт выдает "Unknown error occurred" В лог пишет:

    2021-11-02 12:20:37 ERROR (MainThread) [aiohttp.server] Error handling request Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/aiohttp/web_protocol.py", line 422, in _handle_request resp = await self._request_handler(request) File "/usr/local/lib/python3.9/site-packages/aiohttp/web_app.py", line 499, in _handle resp = await handler(request) File "/usr/local/lib/python3.9/site-packages/aiohttp/web_middlewares.py", line 119, in impl return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 220, in forwarded_middleware return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 24, in request_context_middleware return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 78, in ban_middleware return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 144, in auth_middleware return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 136, in handle result = await result File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 157, in post return await super().post(request, flow_id) File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 62, in wrapper result = await method(view, request, *args, **kwargs) File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 111, in post result = await self._flow_mgr.async_configure(flow_id, data) File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 198, in async_configure result = await self._async_handle_step(flow, cur_step["step_id"], user_input) File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 256, in _async_handle_step result: FlowResult = await getattr(flow, method)(user_input) File "/config/custom_components/lkcomu_interrao/config_flow.py", line 171, in async_step_user self._accounts = await api.async_update_accounts() File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/interfaces.py", line 911, in async_update_accounts response = await LSList.async_request(self) File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/actions/sql/ls_management.py", line 125, in async_request return await api.async_action_map(cls, ACTION_SQL, query, data) File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/interfaces.py", line 597, in async_action_map data=list(map(map_with.from_response, filter(bool, response["data"]))), File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/actions/__init__.py", line 182, in from_response return cls(**init_args) # type: ignore[call-arg] File "", line 3, in __init__ _setattr('data', __attr_converter_data(data)) File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/actions/sql/ls_management.py", line 103, in _converter__ls_list__data return LSListData.from_response(value) File "/usr/local/lib/python3.9/site-packages/inter_rao_energosbyt/actions/__init__.py", line 182, in from_response return cls(**init_args) # type: ignore[call-arg] TypeError: __init__() missing 1 required keyword-only argument: 'kd_ls_owner_type'

    bashesk

    opened by dmitry-ponamarev 3
Releases(v2022.05.02)
  • v2022.05.02(May 17, 2022)

    :wrench: Изменения

    • Обновлена версия базовой библиотеки (v0.0.22 -> v0.0.23)

    :information_source: Примечания

    • Данный релиз теоретически исправляет ошибку с авторизацией на некоторых провайдерах.
    Source code(tar.gz)
    Source code(zip)
  • v2022.05.03(May 17, 2022)

    :warning: BREAKING CHANGES

    • Убран (полностью) не задокументированный ключ конфигурации dev_presentation
    • Убран (полностью) устаревший ключ notification для служебных вызовов
    • Произведён отказ от нестандартных значений для классов устройств (device_class)

    :bug: Исправления

    • Исправлено неправильное отображение свойств для некоторых сенсоров
    Source code(tar.gz)
    Source code(zip)
  • v2022-05-01(May 17, 2022)

    :warning: BREAKING CHANGES

    • Отключён весь функционал компонента до выяснения обстоятельств #25
    • Не обновляйтесь на данный релиз, если компонент у Вас работает. Это временная мера, назначенная для упреждения проблем, связанных с авторизацией.
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Jan 16, 2022)

    ⚠️ BREAKING CHANGES

    • Данная версия (как и последующие) не будут совместимы с Home Assistant < v2021.12

    🐛 Исправления

    • Исправлена совместимость с Home Assistant v2021.12 (#19)
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Oct 31, 2021)

    ⚠️ BREAKING CHANGES

    • Уведомления более не будут создаваться в ходе передачи показаний (события до сих пор присутствуют); из автоматизаций требуется удалить ключ notification, если он используется

    🐛 Исправления

    • Устранена ошибка запуска компонента из-за удаления валидации уведомлений
    • Изменён значок mdi:flash-circle на mdi:lightning-bolt-circle

    🔧 Изменения

    • Удалён ключ notification из служб push_indications и calculate_indications
    Source code(tar.gz)
    Source code(zip)
  • v0.0.22(Sep 18, 2021)

    • Внедрение группирования объектов (используя информацию о «виртуальном» устройстве) (#13)
    Source code(tar.gz)
    Source code(zip)
  • v0.0.21(Sep 14, 2021)

  • v0.0.20(Jul 29, 2021)

  • v0.0.19(Jul 29, 2021)

  • v0.0.18(Jun 28, 2021)

  • v0.0.17(Jun 22, 2021)

    • Добавлен атрибут remaining_days для счётчиков, имеющих периоды передачи показаний, который упрощает создание автоматизаций
    Source code(tar.gz)
    Source code(zip)
  • v0.0.16(Jun 19, 2021)

    • Добавлена рутина реаутентификации на все серверные вызовы (#5)
    • Добавлена возможность выбора лицевых счетов при настройки интеграции из интерфейса
    Source code(tar.gz)
    Source code(zip)
  • v0.0.15(Jun 18, 2021)

    • Дополнительные данные для квитанций Быт-типа (атрибут detail, заполненные основные атрибуты)
    • Реорганизация файла README.md
    Source code(tar.gz)
    Source code(zip)
  • v0.0.14(Jun 17, 2021)

    • Возвращена упущенная дата последних показаний для поставщиков типа Smorodina (МосОблЕИРЦ)
    Source code(tar.gz)
    Source code(zip)
  • v0.0.13(Jun 17, 2021)

    • Исправление трактовки периода передачи показаний для поставщика МосОблЕИРЦ (MOE)
    • Исправление трактовки зон для счётчиков Быт-типа (MES, SAR, UFA, и др.)
    Source code(tar.gz)
    Source code(zip)
  • v0.0.12(Jun 17, 2021)

    • Исправлена ошибка, препятствовавшая передаче показаний для некоторых Быт-счётчиков
    • Добавлены службы get_payments и get_invoices для объектов лицевых счетов
    • Обновлено README
    Source code(tar.gz)
    Source code(zip)
  • v0.0.11(Jun 17, 2021)

    • Исправлена ошибка, вследствие которой последняя квитанция могла отображаться некорректно
    Source code(tar.gz)
    Source code(zip)
  • v0.0.10(Jun 17, 2021)

    • Исправлен случай для МосОблЕИРЦ когда счётчик не обладает данными о периоде передачи показаний (#3)
    • Изменено сообщение об ошибках при обновлении данных
    Source code(tar.gz)
    Source code(zip)
  • v0.0.8(Jun 17, 2021)

    • Изменены Entity ID по умолчанию (для упреждения пустых значений в названиях)
    • Исправлено отображение информации для Быт-аккаунтов (#2)
    Source code(tar.gz)
    Source code(zip)
  • v0.0.3(Jun 16, 2021)

    • Добавлена возможность инициализировать список лицевых счетов с помощью строки или списка строк
    • Унифицировано название интеграции среди файлов
    • Мелкие правки по коду
    Source code(tar.gz)
    Source code(zip)
  • v0.0.2(Jun 16, 2021)

    Данный релиз включает в себя реализацию всего базового функционала, за исключением опциональной настройки через интерфейс.

    Source code(tar.gz)
    Source code(zip)
Owner
Alexander Ryazanov
Freelance developer & photographer from Russia.
Alexander Ryazanov
Segger Embedded Studio project for building & debugging Flipper Zero firmware.

Segger Embedded Studio project for Flipper Zero firmware Установка Добавить данный репозиторий в качестве сабмодуля в корень локальной копии репозитор

25 Dec 28, 2022
The robot is an autonomous small scale racing car using NVIDIA Jetson Nano.

The robot is an autonomous small scale racing car using NVIDIA Jetson Nano. This project utilizes deep learning neural network framework Keras/Tensorflow, together with computer vision library OpenCV

1 Dec 08, 2021
A install script for installing qtile and my configs on Raspberry Pi OS

QPI OS - Qtile + Raspberry PI OS Qtile + Raspberry Pi OS :) Installation Run this command in the terminal

RPICoder 3 Dec 19, 2021
A DiY holiday project to demonstrate how you can send data from adafruitIO cloud to a balena edge device

holiday-star balena ❤️ adafruitIO Introduction A DiY holiday project to demonstrate how you can send data from adafruitIO cloud to a balena edge devic

Ayan Pahwa 3 Dec 20, 2021
Python Client for ESPHome native API. Used by Home Assistant.

aioesphomeapi aioesphomeapi allows you to interact with devices flashed with ESPHome. Installation The module is available from the Python Package Ind

ESPHome 76 Jan 04, 2023
Using a raspberry pi, we listen to the coffee machine and count the number of coffee consumption

A typical datarootsian consumes high-quality fresh coffee in their office environment. The board of dataroots had a very critical decision by the end of 2021-Q2 regarding coffee consumption.

dataroots 51 Nov 21, 2022
3D-printable hexagonal mirror array capable of reflecting sunlight into arbitrary patterns

3D-printable hexagonal mirror array capable of reflecting sunlight into arbitrary patterns

Ben Bartlett 2.3k Dec 30, 2022
Windhager myComfort custom component for Home Assistant

Windhager myComfort custom component for Home Assistant

5 Apr 27, 2022
emhass: Energy Management for Home Assistant

emhass EMHASS: Energy Management for Home Assistant Context This module was conceived as an energy management optimization tool for residential electr

David 70 Dec 24, 2022
Hook and simulate global mouse events in pure Python

mouse Take full control of your mouse with this small Python library. Hook global events, register hotkeys, simulate mouse movement and clicks, and mu

BoppreH 722 Dec 31, 2022
🐱 Petkit feeder components for HomeAssistant

Petkit for HomeAssistant Installing Download and copy custom_components/xiaomi_miot folder to custom_components folder in your HomeAssistant config fo

62 Dec 29, 2022
Example for Calculating Robot Dynamics Using Pinocchio Library

A Example for Calculating Robot Dynamics Using Pinocchio Library Developed by: Xinyang Tian. Platform: Linux + Pinocchio. In this work, i use Pinocchi

Rot_Tianers 33 Dec 28, 2022
Extremely simple PyBadge examples to demonstrate different aspects of CircuitPython using PyBadge hardware.

BeginnerPyBadge I purchased a PyBadge recently. I'm new to hardware. I was surprised how hard it was to find easy examples demonstrating how different

Rubini LaForest 2 Oct 21, 2021
Raspberry Pi Pico Escape Room game.

Pico Escape Room Raspberry Pi Pico Escape Room game. Parts Raspberry Pi Pico Set of 2 x 20-pin Headers for Raspberry Pi Pico 4PCS Breadboards Kit Incl

Kevin Thomas 5 Feb 02, 2022
Used python functional programming to make this Ai assistant

Python-based-AI-Assistant I have used python functional programming to make this Ai assistant. Inspiration of project : we have seen in our daily life

Durgesh Kumar 2 Dec 26, 2021
A simple Python script for toggling Philips Hue Lights by clapping

LightsClap A simple Python script for toggling Philips Hue Lights by clapping Usage pip3 install -r requirements.txt python3 main.py and press the Ent

Flux Industries 2 Nov 16, 2021
A module for cross-platform control of the mouse and keyboard in python that is simple to install and use.

PyUserInput PyUserInput is a group project so we've moved the project over to a group organization: https://github.com/PyUserInput/PyUserInput . That

Paul Barton 1k Dec 27, 2022
Home Assistant component to handle key atom

KeyAtome Home Assistant component to handle key atom, a Linky-compatible device made by Total/Direct-Energie. Installation Either use HACS (default),

18 Dec 21, 2022
Andreas Frisch 1 Jan 10, 2022
Connect a TeslaMate instance to Home Assistant, using MQTT

TeslaBuddy Connect a TeslaMate instance to Home Assistant, using MQTT. It allows basic control of your Tesla vehicle via Home Assistant (currently, ju

4 May 23, 2022