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