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

В этот раз хочу поделиться конфигурацией, которая была у меня до установки общего счётчика — а именно, для подсчёта потребляемого электричества выключателем света.

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

В итоге я разработал конфигурацию для Home Assistant, в которой указана мощность всех ламп, подключённых к выключателю, и которая считает всю потреблённую энергию с разбивкой по временным тарифам.

График потребления энергии выключателем в 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 из которого можно получать суточное потребление электричества с выключателя по каждому из тарифов.

Статистика потребления энергии выключателем в Home Assistant
Статистика потребления энергии выключателем в Home Assistant

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

Комментарии (13)


  1. Alex-ZiX
    12.11.2025 15:11

    Есть же реле zigbee, которые считают потребление. А математическим путём считать, на мой взгляд, это ненадолго - лампочки перегорают, на из место становятся другие, возможно другого номинала. Очень быстро в таком подсчёте возникнут отклонения, а постоянно править цифры руками надоест. Кроме того, свет не основной потребитель сейчас в домах, плюс редко включается днём.


    1. linux2000 Автор
      12.11.2025 15:11

      Реле это дополнительный элемент, который не хочется его ставить для небольшой функции. Плюс не всегда есть место в подрозетнике, где его можно разместить.

      По номиналам ламп, на самом деле данная конфигурация у меня уже работает более года и еще ни одна не выходила из строя, а если и выйдет, то можно их сразу взять с запасом) Благо на маркетплейсах много предложений, что покупка 5 лампочек стоит часто почти столько же, сколько 2 лампочки.


      1. Morgan55555
        12.11.2025 15:11

        А есть ли уверенность, что на лампочках вообще верные данные по потреблению, а не максимальные при лабораторных условиях? Датчик измерения силы тока от той же tuya копейки стоит, и даёт точность куда больше, чем подобное решение. Тем более что подсчёт потребления самых маломощных потребителей в доме, которые и одного киловатт-часа не сожрут - тоже сомнительное удовольствие)


  1. eps
    12.11.2025 15:11

    homeassistant-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


    1. linux2000 Автор
      12.11.2025 15:11

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


      1. eps
        12.11.2025 15:11

        Тариф в home-assistant учитывается отдельно (numeric helper + schedule / automation).

        Учитывать положение диммера можно, там в довольно очевидном месте можно вставить template.
        У меня этим компонентом, например, высчитывается мощность компьютера в зависимости от % загрузки ЦП.


        1. Antonzlo
          12.11.2025 15:11

          Тарифы вообще надо указывать на вкладке Энергия, разве нет?


          1. eps
            12.11.2025 15:11

            Это если цена фиксированная, или на разницу в цене наплевать. В России обычно 2-3 тарифа и они различаются в разы.

            Тогда как раз «Использовать объект с текущей ценой» и цену в нём менять по расписанию (Scheduler card для этого отлично подходит)


  1. JBFW
    12.11.2025 15:11

    Смотря какая цель...

    А то есть хорошие однодиновые счётчики на рейку, поставить их в щитки и снимать показания по разным линиям (если конечно разводка позволяет, а не один провод на все)


    1. linux2000 Автор
      12.11.2025 15:11

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


  1. dpn
    12.11.2025 15:11

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


    1. linux2000 Автор
      12.11.2025 15:11

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

      Но если дом новый с большим количеством распределительных линий, самым удобным вариантом будет установка отдельного счётчика на каждую линию в электрощитке, закреплённого на DIN-рейке. 


  1. skyinlife
    12.11.2025 15:11

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