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