Интеграция 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
AERO 421: Spacecraft Attitude, Dynamics, and Control Final Project.

AERO - 421 Final Project Redevelopment Spacecraft Attitude, Dynamics, and Control: Simulation to determine and control a satellite's attitude in LEO.

Gagandeep Thapar 3 Dec 16, 2022
Plug and Play on Internet of Things with LoRa wireless modulation.

IoT-PnP Plug and Play on Internet of Things with LoRa wireless modulation. Device Side In the '505_PnP' folder has a modified ardunino template code s

Lambert Yang 1 May 19, 2022
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
Monorepo for my Raspberry Pi dashboard and GPS satellite listener.

🥧 pi dashboard My blog post: Listening to Satellites with my Raspberry Pi This is the monorepo for my Raspberry Pi dashboard!

Andrew Healey 27 Jun 08, 2022
Drobo Status is a python program that will connect to your Drobo and return JSON data regarding your Drobo

This is a simple python script that will run a docker container to pull data from Drobo. It will give information like (Name, serial, firmware, disk-total, disk-used, disk-free and individual disk st

Biofects 1 Jan 15, 2022
I made this so I can control my Tapo L510 light bulb and Govee H6159 light strip using the PyP100 module and the Govee public API

TAPO-And-Govee-Controller I made this so I can control my Tapo L510 light bulb and Govee H6159 light strip using the PyP100 module and the Govee publi

James Westhead 0 Nov 23, 2021
Intel Realsense t265 into Unreal Engine

t265_UE Intel Realsense t265 into Unreal Engine. Windows only, and Livelink plugin is 4.26.2 only at the moment. Might recompile it for different vers

Bjarke Aagaard 30 Jan 02, 2023
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
ROS2 nodes for Waveshare Alphabot2-Pi mobile robot.

ROS2 for Waveshare Alphabot2-Pi This repo contains ROS2 packages for the Waveshare Alphabot2-Pi mobile robot: alphabot2: it contains the nodes used to

Michele Rizzo 2 Oct 11, 2022
LUNA: a USB multitool & nMigen library

LUNA is a full toolkit for working with USB using FPGA technology; and provides hardware, gateware, and software to enable USB applications.

Great Scott Gadgets 750 Dec 28, 2022
Ha-rpi gpio - Home Assistant Raspberry Pi GPIO Integration

Home Assistant Raspberry Pi GPIO custom integration This is a spin-off from the

Shay Levy 98 Dec 24, 2022
Smart Tech Automation Remote via Kinematics Gesture control for IoT devices

STARK Smart Tech Automation Remote via Kinematics Gesture control for IoT devices View Demo · Report Bug · Request Feature Table of Contents About The

Juseong (Joe) Kim 1 Jan 29, 2022
Python Wrapper for Homeassistant's REST API

HomeassistantAPI Python Wrapper for Homeassistant's REST API Please ⭐️ the repo if you find this project useful or cool! Here is a quick example. from

Nate 29 Dec 31, 2022
Adafruit IO connected smart thermostat based on CircuitPython.

Adafruit IO Thermostat Adafruit IO connected smart thermostat based on CircuitPython. Background and Motivation I have a 24 V Heat-only system with a

Shubham Chaudhary 1 Jan 18, 2022
A IC scan test interface for Arduino

ICSCAN_ARDUINO Prerequisites Python 3.6 or higher arduino uno or nano what is this It is a bitstream tranceiver to test IC chip It sends bitstream to

Nifty Chips Laboratory 0 Sep 15, 2022
New armachat based on Raspberry Pi PICO an Circuitpython code

Armachat-circuitpython New Armachat based on Raspberry Pi PICO an Circuitpython code Software working features: send message with header and store to

Peter Misenko 44 Dec 24, 2022
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
Philippe 1 Jan 09, 2022
CPU benchmark by calculating Pi, powered by Python3

cpu-benchmark Info: CPU benchmark by calculating Pi, powered by Python 3. Algorithm The program calculates pi with an accuracy of 10,000 decimal place

Alex Dedyura 20 Jan 03, 2023
Play music on Raspberry Pi Pico Without CPU involvement

MicroPython_PIO_Music_DMA Play music on Raspberry Pi Pico Without CPU involvement This is based on PIOBeep (https://github.com/benevpi/pico_pio_buzz)

3 Nov 27, 2022