В прошлой статье «Многотарифный счётчик электричества для умного дома 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 канале.
Комментарии (5)

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.
У меня этим компонентом, например, высчитывается мощность компьютера в зависимости от % загрузки ЦП.
Alex-ZiX
Есть же реле zigbee, которые считают потребление. А математическим путём считать, на мой взгляд, это ненадолго - лампочки перегорают, на из место становятся другие, возможно другого номинала. Очень быстро в таком подсчёте возникнут отклонения, а постоянно править цифры руками надоест. Кроме того, свет не основной потребитель сейчас в домах, плюс редко включается днём.
linux2000 Автор
Реле это дополнительный элемент, который не хочется его ставить для небольшой функции. Плюс не всегда есть место в подрозетнике, где его можно разместить.
По номиналам ламп, на самом деле данная конфигурация у меня уже работает более года и еще ни одна не выходила из строя, а если и выйдет, то можно их сразу взять с запасом) Благо на маркетплейсах много предложений, что покупка 5 лампочек стоит часто почти столько же, сколько 2 лампочки.