Skip to content

Mosoblgaz integration for HomeAssistant

License

Notifications You must be signed in to change notification settings

alryaz/hass-mosoblgaz

Repository files navigation

Мособлгаз для Home Assistant

Предоставление информации о текущем состоянии ваших контрактов с Мособлгаз.

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

💵 Пожертвование на развитие проекта
Пожертвование YooMoney Пожертвование Тинькофф Пожертвование Cбербанк Пожертвование DonationAlerts

💬 Техническая поддержка
Группа в Telegram

My Home Assistant

Данная интеграция предоставляет возможность системе HomeAssistant опрашивать API Мособлгаза.

Скриншоты

Лицевой счёт Мособлгаз Скриншот: лицевой счёт Мособлгаз
Счётчик Мособлгаз Скриншот: счётчик Мособлгаз
Квитанция Мособлгаз Скриншот: квитанция Мособлгаз

Установка

Home Assistant Community Store

🎉 Рекомендованный метод установки.

Открыть Ваш Home Assistant и открыть репозиторий внутри Home Assistant Community Store.

  1. Установите HACS (инструкция по установке на оф. сайте).
  2. Добавьте репозиторий в список дополнительных:
    1. Откройте главную страницу HACS.
    2. Откройте раздел Интеграции (Integrations).
    3. Нажмите три точки сверху справа (дополнительное меню).
    4. Выберите Пользовательские репозитории.
    5. Скопируйте https://github.com/alryaz/hass-mosoblgaz в поле ввода
    6. Выберите Интеграция (Integration) в выпадающем списке.
    7. Нажмите Добавить (Add).
  3. Найдите Mosoblgaz в поиске по интеграциям.
  4. Установите последнюю версию компонента, нажав на кнопку Установить (Install).
  5. Перезапустите сервер Home Assistant.

Вручную

⚠️ Внимание! Данный вариант не рекомендуется в силу сложности поддержки установленной интеграции в актуальном состоянии.

  1. Скачайте архив с актуальной стабильной версией интеграции
  2. Создайте папку (если не существует) custom_components внутри папки с конфигурацией Home Assistant
  3. Создайте папку mosoblgaz внутри папки custom_components
  4. Извлеките содержимое скачанного архива в папку mosoblgaz
  5. Перезапустите сервер Home Assistant

Конфигурация

Через интерфейс "Интеграции"

Поддерживается базовый функционал конфигурации через веб-интерфейс Home Assistant. Конфигурация данным способов возможна без перезагрузки Home Assistant.

Установить интеграцию mosoblgaz

Через configuration.yaml

Базовая конфигурация

Для настройки данной интеграции потребуются данные авторизации в ЛК Мособлгаз.
username - Имя пользователя (телефон / адрес эл. почты)
password - Пароль

mosoblgaz:
  username: !secret mosoblgaz_username
  password: !secret mosoblgaz_password

Несколько пользователей

Возможно добавить несколько пользователей. Для этого вводите данные, используя пример ниже:

mosoblgaz:
    # Первый пользователь
  - username: !secret first_mosoblgaz_username
    password: !secret first_mosoblgaz_password

    # Второй пользователь
  - username: !secret second_mosoblgaz_username
    password: !secret second_mosoblgaz_password

    # Третий пользователь
  - username: !secret third_mosoblgaz_username
    password: !secret third_mosoblgaz_password 

Добавление конкретных опций

Для всех контрактов одновременно возможно отключить как квитанции, так и счётчики по умолчанию1.

mosoblgaz:
  ...
  # Отключить все квитанции
  invoices: false
  # Отключить все счётчики
  meters: false

1 Данная опция позволяет задать значения по умолчанию. Их поконтрактное переопределение описано в следующем разделе конфигурации.

Обновление конкретных контрактов

Селективное обновление контрактов используется для скрытия определённых контрактов от HomeAssistant (на уровне их форсированного недобавления в интерфейс).

По умолчанию включается весь функционал для всех обрабатываемых данных.

Важно! Во избежание проблем с загрузкой конфигураций, оборачивайте номера контрактов двойными кавычками. Существуют случаи, когда ключ загружается не как строка, а число в недесятичной системе счисления. Это не позволяет правильно сравнивать номера контрактов, из-за чего, например, некоторые контракты из белого списка не будут добавлены. Смотрите примеры ниже для получения более подробного представления о том, как следует выполнять конфигурацию.

mosoblgaz:
  ...
  # По умолчанию отключить квитанции для всех контрактов
  invoices: false

  contracts:
    # Контракт не будет добавлен
    # Счётчики не будут добавлены
    # Квитанции не будут добавлены
    "5612341421": false

    # Контракт будет добавлен
    # Счётчики будут добавлены
    # Квитанции будут добавлены
    "5612341422": true

    # Контракт будет добавлен
    # Счётчики не будут добавлены
    # Квитанции не будут добавлены
    "5612341423":
      meters: false

    # Контракт будет добавлен
    # Счётчики будут добавлены
    # Квитанции будут добавлены
    "5612341424":
      invoices: true

    # Для всех остальных контрактов, не указанных в настройке:
    # Счётчики будут добавлены
    # Квитанции не будут добавлены

Изменение интервалов обновления

Частота обновления данных (scan_interval) по умолчанию: 1 час

mosoblgaz:
  ...
  # Интервал обновления данных
  scan_interval:
    hours: 6
    seconds: 3
    minutes: 1
    ...

  # ... также возможно задать секундами
  scan_interval: 21600

Настройка имён объектов

На данный момент, именование объектов происходит используя метод str.format(...) языка Python. Изменение следующих параметров влияет на ID создаваемых объектов и их имена.

Поддерживаемые замены: group (только для квитанций), code

Формат контракта (contract_name) по умолчанию: MOG Contract {code}
Формат счётчика (meter_name) по умолчанию: MOG Meter {code}
Формат квитанции (invoice_name) по умолчанию: MOG {group} Invoice {code}

mosoblgaz:
  ...
  # Произвольный формат для контрактов
  contract_name: 'Мой супер {code} контракт' 

  # Произвольный формат для счётчиков
  meter_name: 'Счётчик {code} шипит'

  # Произвольный формат для квитанций
  invoice_name: 'За {group} по {code} платим мало!'

Инвертирование значений квитанций

По умолчанию, квитанции отображают переплату в положительных числах. Если имеется желание обратить данное поведение, (задолженность будеть показана положительной), укажите ключ invert_invoices со значением true в конфигурации:

mosoblgaz:
  ...
  # Поменять знак (+ на -) на счетах
  invert_invoices: true

Увеличение времени ожидания ответа сервера

При использовании компонента в сети с низкой пропускной способностью и высокими задержками, запросы могут переставать быть отвеченными сервером. Возможно увеличить время ожидания ответа от сервера путём указания параметра ниже.

Важно! Значение параметра не должно превышать интервал обновления.

mosoblgaz:
  ...
  # Время ожидания ответа от сервера
  timeout:
    minutes: 1
    ...

  # ... также возможно задать секундами
  timeout: 60

N.B. Данная опция также доступна в меню "Настройки" интеграции (при настройке через UI)

Логирование без личных данных

При написании багрепорта требуется добавить вывод лог-файлов. Если Вы желаете скрыть Ваши личные данные из этих логов, не прибегая к их замене, укажите данный параметр в конфигурации:

logger:
  # Настройка логирования производится через компонент `logging`
  logs:
    # Задать уровень логгирования по умолчанию `debug` (отладка)
    custom_components.mosoblgaz: debug
...
mosoblgaz:
  ...
  # Invert invoice values
  privacy_logging: true

N.B. Данная опция также доступна в меню "Настройки" интеграции (при настройке через UI)