Настройка счетчика коммунальных услуг через веб интерфейс Home assistant (HA)
Общая концепция снимания показаний с счетчика коммунальных услуг:
- физический счетчик имеет возможность подать импульс на определённый объем поданной услуги, например на каждые 10 литров природного газа 1 импульс, далее в статье будет рассмотрен именно этот случай.
- этот импульс преобразуется в виде сообщения в брокер mqtt как нажатие на кнопку, т.е. для каждого импульса сначала “Включено”, затем “Выключено”
- “Счётчик” в HA из брокера mqtt считает количество импульсов
- сенсор HA из “Счетчика” получает объем потребленный услуги (кВт, m³ и т.п.)
- полученный сенсор указывается в разделе HA Энергия\Конфигурация энергии как Источник
- далее HA своим стандартным образом собирает статистику и визуализирует в виде графиков и отчетов.
Ранее подсчет коммунальных услуг был настроен по статье Cчетчик газа в Home Assistant без паяльника Однако в очередной раз запутавшись в ручной постройке диаграмм решил перевести всё на стандартные рельсы.
Вроде получилось.
К деталям
- часть по получению импульса с физического счетчика и отправки в брокер оставлю за рамками этой статьи. У меня это выполнено на tasmota и эмуляции нажатия на кнопку через gpio с подтяжкой резистором. Датчик фабричный именно для моего газового счетчика без гальванического подключения - внутри датчика геркон.
- Создаем бинарный сенсор в HA для получения импульсов от механического счетчика:
mqtt: binary_sensor: - name: "gas_meter_pulse" unique_id: "gas_meter_pulse" state_topic: "stat/IoT-O142-/GAS_METER_PULSE" off_delay: 1 payload_on: "ON" payload_off: "OFF" - Создаем счётчик для подсчета импульсов от счетчика коммунальной услуги (в моём случае газа)
Настройки\Устройства и службы\Вспомогательные\Создать вспомогательный объект
В этом счетчике будем хранить все цифры которые показывает счетчик. Задаём название (у меня это “Счетчик газа О142 (все цифры без разделения)””), начальное значение счетчика - текущие показания счетчик. Для примера мой счетчик имеет на циферблате точность 3 знака, но импульс подает только при полном обороте последнего колеса - - то получается, чтобы ввести начальный остаток (то что сейчас на счетчике) например 123,451 м3 в поле “Начальное значение счетчика” надо указать 123450 и “Шаг” указать равный 10. Тогда при провороте последнего колеса (и соответственно подачи импульса) значение счетчика увеличится на 10 и получится 123460. Задаем “Идентификатор объекта”.
- Создаём автоматизацию для подсчета импульсов - объема поданной услуги Настройки\Автоматизации и сцены\Автоматизации+Создать автоматизацию\Создать новую автоматизацию.
Добавляем триггер

Добавляем действие

Автоматизация увеличит значение счетчика при получении импульса от физического счетчика на инкремент. - Создаем сенсор для использования в разделе “Энергия”
HA. Получилось сенсор создать только через запись в файле template.yaml, по современным правилам записи потому-что необходимые параметры для сенсора device_class: gas и total_increasing поддерживаются только в современных правилах. Без этих параметров невозможно выбрать сенсор для подсчета коммунальной услуги и правило пересчета из количества импульсов в m³. Ниже пример для газового счетчика.
template: !include template.yaml ``` ./template.yaml- sensor:
- name: “Счетчик газа О142(m³)”
unique_id: gas_meter_sensor
unit_of_measurement: m³
state: “”
device_class: gas
state_class: total_increasing ``` Из web интерфейса HA тоже самое можно сделать Настройки\Устройства и службы\ Вспомогательные+Создать вспомогательный объект \ Template, выбираем Сенсор


Заполняем сенсор

Использую один тариф и для примерного подсчета стоимости услуги создал вспомогательное значение Настройки\Устройства и службы\ Вспомогательные+Создать вспомогательный объект \ Число. В дополнительных настройках выбираем “Поле ввода”, единица измерения обязательна должна быть из совместимых, например для природного газа

Заполняем Название, Минимальное и Максимальные значения, в Дополнительных настройках Режим отображения “Поле ввода”, Шаг слайдера 0.0001 - т.к. газ указывают за 1000м3, счетчик показывает в m³ и надо делить на 1000. Для газа Единица измерения должна быть RUB/m³.
Получится должно примерно так:
Стоимость 1м3 газа, RUB/m³


- sensor:
- в разделе “Энергия”\вертикальное троеточие\Конфигурация энергии идем в Природный газ+Добавить последний созданный сенсор и “Использовать объект с текущей ценой”

- получится примерно следующее

Советы и выводы: - выделить все составные элементы в одну категорию - в последующем проще восстанавливать логическую цепочку.
- проводить периодическую корректировку значений счетчика газа в HA и физического счетчика, т.к. неизбежны пропуски импульсов и соответственно занижение показаний. Для этого Панель разработчика\Действия, ищем Установить значение (counter.set_value), выбираем объект (тот который отражает все цифры счетчика без запятой), вводим новое значение счетчика не забывая что инкремент 10 и это значит что последняя цифра должна быть нулем.

- не понятен момент как при увеличении тарифа (повышение стоимости коммунальных услуг) кроме как в тот же день поменять и тариф в HA. Может стоит разработчикам HA ввести регистр “в такой-то период считай по такому тарифу, далее по такому”.
Опубликовано 2026-01-20
https://habr.com/ru/articles/965078/
Дата публикации January 20, 2026
