В прошлой статье «Многотарифный счётчик электричества для умного дома Home Assistant» я рассказал, как считать общее потребление электричества в доме на основе счётчика Zigbee и его интеграции в Home Assistant.
В этот раз хочу поделиться конфигурацией, которая была у меня до установки общего счётчика — а именно, для подсчёта потребляемого электричества выключателем света.
Одно из первых устройств, с которых начинается проект создания умного дома, у большинства это розетки и выключатели. И мне стало интересно считать, сколько электричества потребляется на освещения каждой комнаты, при этом в базовых моделях выключателей нет готовой функции подсчёта энергопотребления, тем более с поддержкой многотарифности.
В итоге я разработал конфигурацию для Home Assistant, в которой указана мощность всех ламп, подключённых к выключателю, и которая считает всю потреблённую энергию с разбивкой по временным тарифам.

Конфигурация
Для создания счётчика создадим три новых сенсора класса Power. У меня выключатель трёхклавишный Tuya Zigbee, поэтому он будут называться с префиксом gang3 switch.
Создадим сенсор под каждую из кнопок, из параметров, которые нужно изменить — это значение мощности одной лампы и их количество.
Например, у меня к первой клавише подключено 6 ламп по 3 Вт, ко второй — 6 ламп по 5,5 Вт, к третьей — 4 лампы по 5,5 Вт.
template:
- sensor:
- name: "gang3 switch switch 1 energy power"
unique_id: "gang3_switch_switch_1_energy_power"
device_class: power
state_class: measurement
unit_of_measurement: "W"
state: "{{ 3.0 * 6 if is_state('switch.gang3_switch_switch_1', 'on') else 0 }}"
- name: "gang3 switch switch 2 energy power"
unique_id: "gang3_switch_switch_2_energy_power"
device_class: power
state_class: measurement
unit_of_measurement: "W"
state: "{{ 5.5 * 6 if is_state('switch.gang3_switch_switch_2', 'on') else 0 }}"
- name: "gang3 switch switch 3 energy power"
unique_id: "gang3_switch_switch_3_energy_power"
device_class: power
state_class: measurement
unit_of_measurement: "W"
state: "{{ 5.5 * 4 if is_state('switch.gang3_switch_switch_3', 'on') else 0 }}"
- name: "gang3 switch total energy power"
unique_id: "gang3_switch_total_energy_power"
device_class: power
unit_of_measurement: "W"
state: >-
{{
(states('sensor.gang3_switch_switch_1_energy_power') | float(0)) +
(states('sensor.gang3_switch_switch_2_energy_power') | float(0)) +
(states('sensor.gang3_switch_switch_3_energy_power') | float(0))
}}
Cенсор gang3_switch_total_energy_power суммирует мощность всех трёх клавиш, чтобы получить общее потребление выключателя.
Далее для перевода нашей общей энергии из просто Ватт в кВт/ч создаём еще один сенсор.
sensor:
- platform: integration
source: sensor.gang3_switch_total_energy_power
name: gang3_switch_total_energy_usage
unit_prefix: k
round: 2
unit_time: h
max_sub_interval:
minutes: 1
Далее как я говорил, у меня трёхтарифный счетчик и для распределения потребления по ним, создадим сенсор типа utility_meter, который будет хранить суточное потребление по каждому из тарифов.
utility_meter:
daily_gang3_switch_total_energy_usage:
source: sensor.gang3_switch_total_energy_usage
cycle: daily
tariffs:
- t1
- t2
- t3
И дополнительно, создаём автоматизацию с указанием в какой период времени, какой действует тариф для utility_meter.
- alias: Set tariff
trigger:
- platform: time
at:
- "07:00:00"
- "17:00:00"
variables:
tariff: "t1"
- platform: time
at:
- "23:00:00"
variables:
tariff: "t2"
- platform: time
at:
- "10:00:00"
- "21:00:00"
variables:
tariff: "t3"
action:
- service: select.select_option
target:
entity_id:
- select.daily_gang3_switch_total_energy_usage
data:
option: "{{ tariff }}"
Каждую минуту автоматизация запускается и устанавливает правильный текущий тариф для daily_gang3_switch_total_energy_usage.
Результат
На этом конфигурация готова, теперь в Home Assistant доступен новый сенсор daily_gang3_switch_total_energy_usage из которого можно получать суточное потребление электричества с выключателя по каждому из тарифов.

Другие полезные конфигурации для умного дома и обзоры умных устройств, можно найти в моём Tg канале.
Комментарии (13)

eps
12.11.2025 15:11homeassistant-powercalc is a versatile custom component for Home Assistant that estimates power consumption for devices like lights, fans, smart speakers, and more—especially those without built-in power meters. It acts as a virtual energy monitor, using advanced strategies to calculate power usage. For light entities, PowerCalc analyzes factors such as brightness, hue, saturation, and color temperature to deliver accurate consumption estimates. For other devices, it offers extensive configuration possibilities

linux2000 Автор
12.11.2025 15:11Спасибо! Этот компонент немного для другого, фактически значение берется от значение диммера. Плюс нет возможности учитывать тариф, в котором сейчас идёт потребление энергии.

eps
12.11.2025 15:11Тариф в home-assistant учитывается отдельно (numeric helper + schedule / automation).
Учитывать положение диммера можно, там в довольно очевидном месте можно вставить template.
У меня этим компонентом, например, высчитывается мощность компьютера в зависимости от % загрузки ЦП.
Antonzlo
12.11.2025 15:11Тарифы вообще надо указывать на вкладке Энергия, разве нет?


eps
12.11.2025 15:11Это если цена фиксированная, или на разницу в цене наплевать. В России обычно 2-3 тарифа и они различаются в разы.
Тогда как раз «Использовать объект с текущей ценой» и цену в нём менять по расписанию (Scheduler card для этого отлично подходит)

JBFW
12.11.2025 15:11Смотря какая цель...
А то есть хорошие однодиновые счётчики на рейку, поставить их в щитки и снимать показания по разным линиям (если конечно разводка позволяет, а не один провод на все)

linux2000 Автор
12.11.2025 15:11Да, к сожалению часто разводка очень старая (в том числе и у меня), и приходится придумывать альтернативные решения.

dpn
12.11.2025 15:11Спасибо за подробное описание решения. А как ведётся подсчёт остальных потребителей?

linux2000 Автор
12.11.2025 15:11Пожалуйста, рад что материал понравился.
По остальным потребителям считаю точечно, где-то через встроенную умную розетку, где-то через вилку-адаптер. Но оборудовать квартиру на 100% для сбора показателей со всех электроприборов, будет конечно не дешевая история. Пока до такой цели не дошел.Но если дом новый с большим количеством распределительных линий, самым удобным вариантом будет установка отдельного счётчика на каждую линию в электрощитке, закреплённого на DIN-рейке.

skyinlife
12.11.2025 15:11У меня 3 фазы. Выглядит так. Отопление - Котел на 15 кВт. Солнечные панели 15 кВт, ещё не вывел в HA


Alex-ZiX
Есть же реле zigbee, которые считают потребление. А математическим путём считать, на мой взгляд, это ненадолго - лампочки перегорают, на из место становятся другие, возможно другого номинала. Очень быстро в таком подсчёте возникнут отклонения, а постоянно править цифры руками надоест. Кроме того, свет не основной потребитель сейчас в домах, плюс редко включается днём.
linux2000 Автор
Реле это дополнительный элемент, который не хочется его ставить для небольшой функции. Плюс не всегда есть место в подрозетнике, где его можно разместить.
По номиналам ламп, на самом деле данная конфигурация у меня уже работает более года и еще ни одна не выходила из строя, а если и выйдет, то можно их сразу взять с запасом) Благо на маркетплейсах много предложений, что покупка 5 лампочек стоит часто почти столько же, сколько 2 лампочки.
Morgan55555
А есть ли уверенность, что на лампочках вообще верные данные по потреблению, а не максимальные при лабораторных условиях? Датчик измерения силы тока от той же tuya копейки стоит, и даёт точность куда больше, чем подобное решение. Тем более что подсчёт потребления самых маломощных потребителей в доме, которые и одного киловатт-часа не сожрут - тоже сомнительное удовольствие)