Последние 3 дня вайбкодил рефакторинг и изменения в логике автоматизации для своего домашнего водопровода. Токенов было сожжено немеряно. Но, оно того стоило 🙂
Реализовал в итоге почти все, что хотел (осталось только расширить состояния аварии, чтобы другие устройства могли знать состояние водопровода и например не включать автополив). Сам я запарюсь описывать текущую логику автоматизации, да и как всегда что-то забуду, так что пускай вместо меня это сделает нейронка 😀
Neptunus — это «мозг» водопровода на участке. Маленькая коробочка (компьютер ESP32), которая подключена к насосам, кранам-клапанам, датчикам воды и датчику давления. Её задача — самой решать, когда качать воду, когда отдыхать, и никогда не допустить аварии. Всё это видно и управляется с телефонной страницы-интерфейса или из Home Assistant.
Что за оборудование под управлением
Представьте цепочку: городская водопроводная сеть → большой бак (накопитель) → дом и уличный приямок с дождевой водой. По дороге стоят:
* Кран на бак — наполняет накопительный бак;
* Обводной кран («байпас») —Shortcut: если давление в городе хорошее, вода идёт в дом сама, без насоса;
* Домашний насос — качает воду в дом, когда давления из города не хватает;
* Уличный насос — качает воду из приямка;
* Кран на приямок — наполняет приямок дождевой/скважинной водой;
* Дренажный насос — автоматика его не трогает, включается только руками.
Ещё есть главный тумблер «Авто-режим»: выключен — вся автоматика спит, всем управляете вы вручную.
Основная идея: бак как «запас кармана»
Раз в секунду устройство смотрит на датчики и принимает одно решение по очереди:
1. Бак пустеет (ниже 40%) → открывает кран и наполняет. Бак полный (выше 95%) → закрывает. Это чтобы кран не щёлкал туда-обратно каждый литр.
2. Приямку тоже нужна вода (ниже 10%) → открывает кран на приямок. Но бак всегда важнее: если набирается бак, кран приямка подождёт, а потом наполнение продолжится само. И никогда оба крана открыты одновременно — иначе вода «не дойдёт» никуда.
3. Экономия электричества. Если давление в городской сети стабильно высокое минут 4 подряд, устройство понимает: насос не нужен, вода и так идёт. Отключает домашний насос и открывает обвод — вода идёт напрямую. Как только давление падает — снова включает насос.
4. Запас на случай аварии. Если давление в сети долго подозрительно низкое (вдруг прорвало трубу), устройство решает: пока вода есть — наполнить бак почти доверху, чтобы был запас. Про это оно сообщает в Home Assistant тревожным датчиком «аварийный режим».
Защита от отключения света
Устройство получает по сети сообщение от «умного электрощита»: сеть в норме, работает генератор, перешли на батарейку, или всё совсем плохо.
* На батарейке — если городское давление есть, вода идёт самотёком, насосы выключены (беречь энергию). Давления нет — включает насос: вода нужнее.
* Полная критическая ситуация или щит молчит дольше 10 минут (связь пропала) — перестраховка: насосы выключить, обвод открыть. Лучше остаться без накачанной воды, чем сгоревший насос или потоп.
Защита от «сухого хода» и потопа
* Приямок почти пуст (ниже 8%) → уличный насос выключается, чтобы не качал воздух и не сгорел. Когда воды снова достаточно (выше 10%) — включается обратно.
* Насос на улице работал 10 минут подряд, а счётчик во дворе не насчитал и 2 литров → значит вода вхолостую уходит или вода порвана — насос выключается.
* Кран приямка открыт, а данных об уровне нет (датчик/связь отвалились) или уровень достиг заданного (по умолчанию 20%) → кран закрывается. Это работает даже в ручном режиме: забыли закрыть — система закроет сама, двор не затопит.
Что видит человек
На странице в браузере или в Home Assistant: состояние каждого крана и насоса, давление в сети, уровень воды в баке и приямке (в процентах), расход воды дома и на участке (это обычные счётчики воды, которые устройство тоже читает и хранит), и аварийный флаг. Оттуда же можно включить/выключить что угодно руками или переключить авто-режим.
