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

В продаже есть несколько уже готовых решений, которые могут подключаться к Home Assistant, передавать данные сразу в Водоканал и другие компании ЖКХ. Но стоимость устройств начинается от 3000 руб, а если стояки с подачей холодной и горячей воды разнесены далеко, то придётся покупать 2 датчика и бюджет проекта заметно вырастает.

Поэтому в рамках данной статьи расскажу, как реализовать счетчик расхода воды на базе дешевого датчика Tuya (около 450 руб.) и настроить отображение данных в Home Assistant. Также реализуем подсчёт общего объёма водоотведения и сигнализацию о возможном затоплении.

Схема применима к счётчикам, которые создают импульсный сигнал по типу Геркон.

Принцип работы счётчика

Уже почти все современные счётчики, измеряющие расход воды имеют выводы, с которых можно считывать показатели. На практике эти провода в большинстве домов никуда не подключены, поэтому мы будем их использовать для получения данных. Принцип работы счётчика простой, каждые 10 литров воды контакты замыкаются на короткое время (у некоторых моделей значение может отличаться) и именно по этому импульсу мы будем увеличивать в Home Assistant показатели расхода воды. Все настройки реализованы для Home Assistant 2026.4.

Для реализации интеграции с Home Assistant я предпочёл использовать датчик Tuya для контроля протечки. Он небольшого размера, работает от 2-х батареек AAA и может работать от них от 1 года и более. По типу связи есть модель с Zigbee или Wi-Fi - в зависимости от предпочитаемого протокола.

Датчик протечки
Датчик протечки
Подключение датчика протечки к водосчётчику
Подключение датчика протечки к водосчётчику

Данный вид датчика удобен, что ничего паять не надо. На метровом шнуре есть сенсор протечки, его аккуратно можно отрезать, и далее зачистив освободившиеся 2 провода, подключить их к водосчетчику.

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

Клема
Клемма подключения

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

Схема подключения к счётчику с типом подключения Геркон
Схема подключения к счётчику с типом подключения Геркон

Самый простой способ как проверить и определить какой у вас тип счётчика, это подключить мультиметр к контактам 1 и 4, а 2 и 3 замкнуть между собой. После включить воду и пролив порядка 10 литров воды, увидеть, было ли замыкание контактов. Если было, то ваш счётчик имеет тип подключения Геркон. В противном случае, если замыкания не наблюдается, скорее всего используется Намур или другой тип интерфейса.

Если у вас подключение Намур, то потребуется купить систему измерения, например Ватериус.

Далее не забудьте подключить данный датчик к умному дому Tuya как обычный сенсор протечки воды и задайте ему понятное имя, например “Счётчик холодной воды”. И не забудьте выключить уведомление в приложении, чтобы он не присылал бесполезные сообщения, продолжая считать, что он датчик протечки и произошло затопление.

Настройка Home Assistant

Для реализации измерения в HA, нам потребуется создать сущности input_number, где будет храниться расход холодной и горячей воды.

Для данного кода можно создать отдельный packages/water.yaml или добавить в основной configuration.yaml


input_number:
 cold_water_input_number:
   name: "cold water"
   min: 0
   max: 5000000
   step: 10
   unit_of_measurement: "L"
   mode: box
 hot_water_input_number:
   name: "hot water"
   min: 0
   max: 5000000
   step: 10
   unit_of_measurement: "L"
   mode: box

В данном коде мы создали два поля ввода, где будет храниться значение воды в литрах (позже в интерфейсе HA приведём их к привычным в ЖКХ м³). Каждое срабатывание датчика от водосчётчика будет прибавлять 10 литров. Максимальный размер поля равен 5000 м³, кажется этого вполне достаточно, квартирные счётчики скорее выйдут из строя раньше, чем достигнут этого значения. Дополнительным плюсом параметра input_number, будет возможность при необходимости изменять значения через интерфейс Home Assistant.

Ещё создадим счётчик, который будет учитывать общий расход воды (водоотведение).


counter:
 sewerage_counter:
   initial: 0
   step: 10

Далее добавим код, который создаст 3 сенсора, которые будут в интерфейсе HA показывать значения в м³ для холодной, горячей воды и водоотвода (канализации).


template:
 - sensor:
     - name: "cold_water_input_sensor"
       unique_id: "cold_water_input_sensor"
       device_class: water
       unit_of_measurement: "m³"
       state: "{{ (states('input_number.cold_water_input_number') | float) / 1000 }}"
       state_class: total_increasing

     - name: "hot_water_input_sensor"
       unique_id: "hot_water_input_sensor"
       device_class: water
       unit_of_measurement: "m³"
       state: "{{ (states('input_number.hot_water_input_number') | float) / 1000 }}"
       state_class: total_increasing

     - name: "sewerage counter sensor"
       unique_id: "sewerage_counter_sensor"
       device_class: water
       unit_of_measurement: "m³"
       state: "{{ (states('counter.sewerage_counter') | float(0)) / 1000 }}"
       state_class: total_increasing

Также думаю, будет не лишним добавить utility_meter, который будет автоматически считать и выводить в статистику потребление по каждому типу за день и месяц. И сам в начале суток или месяца будет сбрасывать эти показатели.


utility_meter:
 daily_cold_water_usage:
   source: sensor.cold_water_input_sensor
   cycle: daily
 monthly_cold_water_usage:
   source: sensor.cold_water_input_sensor
   cycle: monthly
 daily_hot_water_usage:
   source: sensor.hot_water_input_sensor
   cycle: daily
 monthly_hot_water_usage:
   source: sensor.hot_water_input_sensor
   cycle: monthly
 daily_sewerage_usage:
   source: sensor.sewerage_counter_sensor
   cycle: daily
 monthly_sewerage_usage:
   source: sensor.sewerage_counter_sensor
   cycle: monthly

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


sensor:
 - platform: statistics
   name: "sewerage usage 10min"
   entity_id: counter.sewerage_counter
   state_characteristic: change
   max_age:
     minutes: 10

Теперь в файле automations.yaml или в блоке automation: добавим автоматизации для обновления значений при получении импульса от датчика протечки воды. Здесь в поле entity_id необходимо вставить идентификаторы ваших датчиков, которые вы подключили к HA. Также здесь сразу, увеличивается не только значение холодной или горячей воды, но и значение счетчика водоотвода на те же 10 литров.


- alias: Cold water count
 trigger:
   - entity_id: binary_sensor.water_meter_cold_sensor_moisture
     platform: state
     from: 'on'
     to: 'off'
 action:
   - action: counter.increment
     data:
       entity_id: counter.sewerage_counter
   - action: input_number.increment
     data:
       entity_id: input_number.cold_water_input_number

- alias: Hot water count
 trigger:
   - entity_id: binary_sensor.water_meter_hot_sensor_moisture
     platform: state
     from: 'on'
     to: 'off'
 action:
   - action: counter.increment
     data:
       entity_id: counter.sewerage_counter
   - action: input_number.increment
     data:
       entity_id: input_number.hot_water_input_number

На этом программная часть внедрения закончена, осталась финально всё настроить в интерфейсе Home Assistant.

Интерфейс

Первым делом, выведем в интерфейс поля ввода cold_water и hot_water, где мы можем управлять значением текущего расхода воды, чтобы оно соответствовало изначальному значению на счётчике. Также выведем значения сенсоров cold_water_input_sensor и hot_water_input_sensor, которые уже в привычных м³ будут показывать расход воды.

Интерфейс Home Assistant для настройки счётчиков
Интерфейс настройки счётчиков

Далее можно вывести (суточное) daily и месячное (monthly) значения потребления воды, а также водоотвода.

Статистика расхода воды в Home Assistant
Статистика расхода воды

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

Статистика расхода воды в Home Assistant в виде графиков
Статистика расхода воды в виде графиков

Уведомления

Дополнительной возможностью, которая у нас появляется после сбора данных о расходе воды, это сделать уведомление о потенциальном затоплении. Не везде удаётся установить привычные датчики протечки, поэтому будем для уведомления ориентироваться на общий расход. И как в примере ниже, если за 10 минут было израсходовано суммарно более 30 литров, то сработает уведомление о потенциальном затоплении (параметры для себя можно изменить, чтобы не было лишних срабатываний).

Для реализации уведомления, в automations.yaml добавляем следующий код:


- id: flood_water_alarm_atm
 alias: "Оповещение о затоплении по расходу канализации"
 description: "Отправляет алерт, если расход за 10 минут превысил 30 литров"
 mode: single
 trigger:
   - platform: numeric_state
     entity_id: sensor.sewerage_usage_10min
     above: 30
 action:
   - action: notify.mobile_app_phone
     data:
       title: "? ВНИМАНИЕ: ВОЗМОЖНО ЗАТОПЛЕНИЕ!"
       message: "Общий расход воды превысил {{ trigger.above }} литров за последние 10 минут. Текущее значение: {{ states('sensor.sewerage_usage_10min') | round(1) }} л."

Не забудьте изменить “notify.mobile_app_phone” на ваш идентификатор телефона, который подключен к Home Assistant.

Заключение

На этом наша реализация готова, из доступного датчика мы сделали измеритель расхода воды, сделали гибкие настройки, чтобы через интерфейс Home Assistant можно было их редактировать. Добавили сущность общего расхода воды (водоотведение) и добавили уведомление о потенциальной утечке воды.

Отдельно отмечу, что используемый нами бинарный датчик (может выдавать сигнал on или off), очень универсальный и на базе него можно сделать много других полезных проектов для умного дома. В следующих статьях покажу другие свои реализации на основе него.

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

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


  1. MxMaks
    19.04.2026 06:40

    Сделал себе подобное на esp32-esphome. Из минусов нужен отдельный бп для esp32, из плюсов работает один модуль для гв и хв и датчик давления воды и можно остальные пины загрузить, знать бы чем)


    1. linux2000 Автор
      19.04.2026 06:40

      Тоже пытался вначале на esp32 делать и как раз обеспечение питанием в стояках блокировало проект, тк понимал, что нужна максимальная автономность по электричеству.

      https://www.ht-home.ru/catalog/device/301 по части одного модуля, есть вот такой датчик протечки с 2-мя выходами сразу, правда потребуется небольшая доработка, чтобы сирену отключить. Плюс, не всем подойдёт на Wi-Fi, а для Zigbee почему-то производитель не делает.


    1. Goron_Dekar
      19.04.2026 06:40

      Остальные пины можно загрузить датчиком протечки и автоматизацией промывки фильтра типа такого:

      Ещё круто мерить температуту горячего стояка, ну так, для телеметрии.


      1. MxMaks
        19.04.2026 06:40

        Система от протечки есть - один из магазинных комплектов но работает автономно в целях надежности. Да доп информирование при протечке можно и через esp сделать. Есть у меня еще автоматическая станция водоочистки, когда станции надо промыться станция дополнительно коротит сухой контакт, как запрос на открытие воды в системе если вода перекрыта централизованно в отсутствие жильцов, можно и эту фичу применить заодно. Так же можно и промывку фильтра обратного осмоса добавить, чтобы в отсутствие жильцов картриджи промывались раз в день во избежание бактериального роста. Это уже больше для второго дома загородного, в квартире такие опыты с водой когда никого нет я бы не рисковал. В общем да)


  1. mavir
    19.04.2026 06:40

    Еще для такого решения подойдёт датчик открытия дверей. Но придется его раскурочить и выпаять геркон


    1. linux2000 Автор
      19.04.2026 06:40

      Тоже делал на нём некоторые схемы. Но для данной статьи решил, лучше показать "на протечке", чтобы провода уже были отведены от схемы и достаточно было просто их зачистить.


  1. LeshaRB
    19.04.2026 06:40

    Не знал что счётчики имеют вывод… И никогда не видел

    А как такой счётчики можно поставить магнит?


    1. linux2000 Автор
      19.04.2026 06:40

      Мне кажется почти все счётчики, которые выпущены за лет 15 последние, все имеют встроенный геркон.

      А какой смысл на них магнит ставить?


      1. kolganoff
        19.04.2026 06:40

        Чтобы воду воровать)


      1. BlackSCORPION
        19.04.2026 06:40

        В Казахстане по новым требованиям счётчики должны быть с удалённой передачей показаний, на радиоканале. Канал шифрованный.

        Но можно взять обычный счётчик за копейки, снять пластиковый верх с счетным механизмом и приклеить по центру датчик Хола. Основной счётчик не заменяет, но если делаете ремонт как Я, можно поставить их дополнительно, и больше чем 1, отдельно по потребителям.


        1. MxMaks
          19.04.2026 06:40

          Я так поставил доп электро счетчик меркурий с передачей данных по rs485