
Начало истории
Меня зовут Глеб. По первому образованию я инженер по механизации сельского хозяйства. Сейчас занимаюсь проектами автоматизации в Челябинске, в том числе автоматикой конно-спортивного комплекса «Рейд». Ещё веду канал на YouTube, где регулярно публикую видео о своих проектах.
В 2021 году я поставил сюда коня на постой. Буквально через несколько дней поилка протекла и затопила денник. Коню стоять в воде не дело, но сначала я решил, что это случайность. Через две недели все повторилось. Тогда я предложил хозяевам помочь с защитой от протечек. Позже занялся скважинными насосами — и пошло-поехало.
Сейчас автоматика управляет инженерными системами конюшни, манежа, открытого плаца и вспомогательных помещений. Ниже расскажу, как все устроено.
Как устроена автоматика комплекса
Комплекс занимает несколько зданий. Щиты автоматики находятся в основной конюшне, манеже, ангаре, кафе и на открытом плацу. Между зданиями уже есть локальная компьютерная сеть — по ней обменивается данными и оборудование автоматики. В щитах стоят шлюзы WB-MIO-E v.2, к которым подключены локальные сегменты RS-485.
Проект щита для манежа я позже переработал в Slate Tech во время бета-тестирования сервиса. Опыт оказался удачным: понравились большая библиотека оборудования, автоматическая маркировка и оперативная поддержка. Отдельный плюс — работа в браузере. Я пользуюсь пятью компьютерами в разных местах, поэтому такой формат для меня особенно удобен. Вы тоже можете посмотреть проект в браузере с гостевым доступом.

Освещением управляют релейные Modbus-модули WB-MR. Их прошивка поддерживает прямое управление выходами по сигналам со входов. Я использую эту функцию, поэтому свет можно включать и выключать без участия контроллера. Модули также различают короткие, длинные и двойные нажатия: на одну кнопку можно назначить несколько действий и обойтись меньшим числом выключателей. Сценариями управляет уже контроллер.
Все алгоритмы и сценарии я написал в движке правил wb-rules. Для пользовательских панелей использую средства штатного веб-интерфейса контроллера.
Как я пишу правила с помощью ИИ
Правила для контроллеров Wiren Board я пишу на JavaScript в wb-rules. Раньше обращался к программистам, и даже простая задача могла растянуться на несколько месяцев. Один занят, от другого я получаю неработающий код. Приходилось разбираться самому, а это непросто.
Сейчас код пишет ChatGPT, а я его отлаживаю. Подробно описываю оборудование, указываю MQTT-топики входов и выходов, затем формулирую алгоритм. Отдельно перечисляю параметры виртуального устройства, которые хочу менять через веб-интерфейс, расписания, задержки и действия при неисправности датчиков. Если виртуальное устройство выглядит неправильно или исполнительные механизмы работают не так, как задумано, отправляю модели замечания и прошу исправить код.
Я пробовал поручить ту же задачу Алисе, но результат меня не впечатлил: она использовала функции, которых нет в wb-rules.
ИИ заметно упрощает работу над правилами, но его код нужно тщательно проверять. Очень тщательно.
К такой архитектуре я пришел не сразу. Сначала установил контроллер JetHub с Home Assistant и через интеграцию Modbus TCP подключил к нему около 20 устройств Wiren Board. Логику автоматизации написал нанятый программист. Система работала нестабильно: иногда из нее пропадали все подключенные устройства. При этом сам Home Assistant продолжал работать — время менялось, погода обновлялась. Найти причину в журналах я не смог.
К тому времени у меня уже был контроллер Wiren Board 7, который я использовал дома. Принес его в комплекс — он сразу увидел все устройства за шлюзами и больше их не терял. Так контроллер и остался в уличном щите на плацу. Разве что недавно я обновил его до версии Wiren Board 8. Теперь он один управляет всем комплексом. JetHub тоже пригодился: на нем работают Grafana, Telegraf и InfluxDB.
Электроснабжение
В уличном щите также стоит электросчетчик WB-MAP12E. Он измеряет параметры электросети на вводе. Его показания можно посмотреть в пользовательском интерфейсе.

Дополнительные фото

Освещение
Освещением конюшни, территории, ангара и манежа управляют релейные модули. Свет можно включать физическими выключателями, из локального веб-интерфейса и через Алису.
Уличные фонари работают по астрономическому таймеру: включаются на закате и выключаются на рассвете.
В манеже установлены 30 светодиодных светильников мощностью 100 Вт каждый. Их разделили на четыре группы и включают последовательно, чтобы снизить пусковые токи.

Дополнительные фото



Водоснабжение
Комплекс получает воду из трех собственных скважин. Она поступает в общий водопровод, а для поилок предусмотрен накопительный бак объемом 3 м³. Из него вода самотеком поступает в денники. Если отключится электричество или перестанет работать насос, этого запаса должно хватить лошадям примерно на три дня.
Управление скважинными насосами
Одним насосом управляет частотный преобразователь, который поддерживает постоянное давление в водопроводе по показаниям датчика. Эту систему я оставил как есть.
Два других насоса работают с гидроаккумуляторами. Схема стандартная: при нижнем пороге давления насос включается, при верхнем — выключается. Так давление остается в заданном диапазоне.
Раньше насосами управляли механические реле давления. Чтобы изменить уставку, приходилось спускаться в кессон, да и сама механика не отличалась надежностью. Кроме того, с таким реле не построишь график давления, не ограничишь время работы насоса и не задашь разные уставки на протяжении дня.
Поэтому я подключил насосы через релейные модули и устройства плавного пуска (УПП). Давление измеряют датчики с выходом 4–20 мА, которые передают показания контроллеру через WB-MAI2-mini.
Насосами управляет правило в wb-rules. Рабочие уставки — 4 и 5 бар: при падении давления ниже 4 бар насос включается, при достижении 5 бар — выключается. Во время тестов я использовал пороги 4,1 и 5,5 бар. Однако после команды на остановку УПП еще некоторое время снижает обороты насоса, и давление успевает немного вырасти. Поэтому я понизил уставки.

Режимы работы и защита насосов
Правило создает виртуальное устройство с четырьмя режимами:
AUTO — контроллер управляет насосом автоматически;
DISABLE — управление насосом заблокировано;
FORCE — принудительный запуск насоса для регламентных работ, если не активен DISABLE; правило игнорирует давление и расписание;
MAINTENANCE — контроллер следит за давлением, записывает события и отправляет аварийные сообщения в Telegram, но не управляет насосом. В этот режим правило переходит при неисправности.
В правиле предусмотрены защиты и ограничения:
защита от сухого хода, если при работающем насосе давление не растет;
кратковременный запуск раз в семь дней при длительном простое, чтобы насос не заклинило;
отключение насоса при превышении допустимого тока;
блокировка насоса, если давление превышает 8 бар дольше одной секунды;
контроль частоты пусков — не более 30 за час;
ограничение непрерывной работы: по умолчанию 40 минут, с настройкой в диапазоне от 1 до 120 минут;
минимальная пауза между остановкой и следующим пуском;
уведомление, если при выключенном насосе давление продолжает расти, чтобы персонал отключил насос вручную;
блокировка насоса при потере сигнала датчика давления.
Уставки хранятся в виртуальном устройстве. Каждую защиту можно отключить активировать/деактивировать.
В интерфейс пользователя выведены текущее давление, состояние насоса, последнюю аварию, время работы и расчетный расход воды.
Ночью насос блокируется.
Управление наполнением бака
Уровень воды в баке поддерживает поплавковый клапан — как в бачке унитаза. Он не слишком надежен, поэтому я добавил на входе кран с электроприводом, а на крышке бака закрепил датчик протечки «Нептун». Оба устройства подключил к WB-MWAC — Modbus-модулю контроля протечек. Если вода достигнет датчика, модуль закроет кран и остановит наполнение бака.
С 18:00 до 09:00, когда персонала в комплексе нет, автоматика блокирует наполнение бака.
Поилки лошадей
Поилки механические. В каждой есть рычажок: лошадь нажимает на него носом, клапан открывается, и вода поступает в поилку. Эти клапаны иногда заклинивают, особенно если внутрь попадают сено или посторонние предметы.
Вода поступает самотеком из бака. На трубопроводе к поилкам стоят второй кран с электроприводом и водосчетчик. Они также подключены к WB-MWAC.
Неисправности поилок система определяет по расходу воды. Для этого в wb-rules работают два правила, связанных с WB-MWAC: первое пересчитывает импульсы счетчика в расход, второе следит за тем, как долго течет вода. Если расход превышает 1 л/мин и вода продолжает течь 15 минут, контроллер закрывает кран на линии поилок и отправляет уведомление. Персонал получает сигнал и идет ремонтировать поилку.
Иногда защита срабатывает, когда лошади действительно пьют много воды. В таком случае аварию можно сбросить дистанционно. Перед этим я смотрю график расхода: при обычном потреблении он отличается от графика протечки.
По тем же данным можно следить за тем, сколько воды пьют лошади. Резкое снижение потребления тоже может указывать на проблему: возможно, вода не поступает в одну из поилок и лошадь остается без питья.

Дополнительные фото







Микроклимат: отопление и вентиляция
Газ к комплексу не подвели, а за электроэнергию приходится платить по коммерческому тарифу. На момент публикации статьи киловатт-час стоил около 13 рублей, поэтому электричество стараемся экономить. При этом нельзя допустить, чтобы замерзла вода. В конюшне нужно отводить влагу и контролировать CO₂, а в манеже — включать вентиляцию перед тренировками.
Вентиляция конюшни
В конюшне работает приточная установка производительностью около 1000 м³/ч. Она находится на чердаке и состоит из фильтра, воздушной заслонки с приводом 0–10 В, вентилятора и однофазного электрического ТЭНа.
Температуру измеряют три датчика DS18B20: перед ТЭНом, после него и в корпусе нагревателя. Показания поступают в контроллер через WB-M1W2.
Заслонкой управляет WB-MAO4 с выходом 0–10 В. В промежуточном положении заслонка подмешивает внутренний воздух к наружному. В одном крайнем положении установка забирает воздух только снаружи, в другом работает на рециркуляции.
Релейный модуль включает ТЭН при температуре 10 °C и выключает при 30 °C. Так автоматика поддерживает температуру воздуха с большим гистерезисом.
В самой конюшне установлен комбинированный датчик WB-MSW v.4. По его показаниям я слежу за температурой, влажностью и CO₂. Влажность здесь почти всегда высокая: лошади выделяют много влаги, а с пола испаряется вода.
Вентиляция работает только ночью — днем лошади находятся в манеже. Расписание я задаю через пользовательский интерфейс. По данным WB-MSW v.4 видно, как за ночь меняются влажность, температура и CO₂. При необходимости корректирую расписание.
Вентустановкой управляет отдельное правило. Оно выполняет расписание, следит за температурой, управляет нагревом и рециркуляцией. После выключения ТЭНа вентилятор еще некоторое время работает, чтобы остудить нагреватель. Если что-то идет не так, правило отправляет уведомления персоналу.

Дополнительные фото


Вентиляция манежа
В манеже стоит более производительная приточная установка. Принципы управления те же, отличаются только уставки и расписание.
Здесь WB-MSW v.4 также измеряет температуру, влажность, CO₂, концентрацию летучих органических соединений (VOC), движение и шум. По CO₂ можно оценить качество воздуха во время тренировок, а по VOC — увидеть, когда работал трактор, который выравнивает грунт, и работал ли он вообще.

Дополнительные фото





Котельная
Конюшню отапливает прежде всего твердотопливный котел. В рабочее время отдельный сотрудник топит его дровами или углем. В системе есть и теплоаккумулятор. После окончания смены котел и теплоаккумулятор постепенно остывают. Когда температура падает до заданного порога, включается электрокотел «Сангай». Он поддерживает температуру теплоносителя, пока твердотопливный котел снова не начнет давать тепло.
«Сангай» — простой трехфазный котел мощностью 12 кВт. Из автоматики у него только механический термостат.
Ночью в здании нет сотрудников, поэтому температуру теплоносителя можно снизить — главное, чтобы он не замерз. Но к началу рабочего дня отопление должно вернуться в дневной режим.
Для управления электрокотлом я собрал отдельный щит. Как и в вентустановках, релейный модуль включает и выключает ТЭН по температурным порогам с гистерезисом. В щите также стоит WB-MAP3E для контроля энергопотребления котла. Механический термостат самого котла остается последней ступенью ограничения температуры.
Правило использует показания трех датчиков DS18B20:
температуры наружного воздуха;
температуры подачи рядом с котлом;
температуры обратки системы отопления.
Время перехода из ночного режима в дневной зависит от наружной температуры: чем холоднее на улице, тем раньше автоматика переключает режим.
Полив
Вдоль периметра открытого плаца площадью около 1800 м² проложили трубу диаметром 32 мм и подключили к ней шесть импульсных дождевателей. Вместе они покрывают около 97 % площади.
Изначально поливом управлял контроллер Hunter X2. Для работы ему требовалось облако, которое стало недоступно. Поэтому я оставил блок питания и электромагнитные клапаны Hunter PGV, а контроллер заменил релейным Modbus-модулем WB-MR6CU v.2.
К каждому клапану подходит отдельный кабель. Все шесть линий подключены к выходам шестиканального релейного модуля, который получает команды от контроллера Wiren Board. Открыть несколько клапанов одновременно можно, но тогда дождевателям не хватает производительности насоса и/или пропускной способности трубы. Поэтому правило включает зоны последовательно — с первой по шестую.
Для каждой зоны я задаю продолжительность полива с учетом расположения дождевателей и состояния грунта. Например, первая зона может работать 10 минут, вторая — 7, а четвертая, которая захватывает еще и соседний участок с травой, — 17 минут. Чтобы исключить зону из цикла, достаточно задать для нее нулевое время.

Дополнительные фото




Расписание и управление
В пользовательском интерфейсе я создал отдельную панель полива. На ней видны состояние клапанов, расписание, количество осадков и продолжительность работы каждой зоны.
Можно задать три времени запуска — утром, днем и вечером. Пока выбрал 6:40, 13:10 и 21:30. Время каждого запуска можно изменить, а сам цикл — включить или отключить. Полив должен закончиться до прихода спортсменов, поскольку на площадке проходят тренировки.
В тестовом режиме контроллер по очереди открывает все шесть клапанов на заданное время. Обычно я устанавливаю две секунды: этого достаточно, чтобы проверить систему и не залить площадку. На другой панели каждый клапан можно открыть вручную.
Если есть интернет, поливом можно управлять через Алису: открыть или закрыть нужный клапан, запустить или остановить цикл. Расписание и правило работают локально, без доступа к интернету.
Запрет полива после дождя
Примерно раз в пять минут контроллер получает данные о погоде через API Open-Meteo. Для полива правило использует расчетную сумму осадков за текущий и предыдущий дни из Forecast API Open-Meteo. Если сумма достигает 6 мм, автоматика пропускает очередной цикл. Порог я подобрал по опыту эксплуатации: после такого дождя дополнительный полив плацу не требуется.

Полив манежа
В манеже четыре зоны полива. Здесь система дозирует воду по объему, а не по времени работы. В виртуальном устройстве я указываю площадь каждой зоны и норму полива в миллиметрах осадков.
В трубопроводе стоит водосчетчик с импульсным выходом. По его показаниям контроллер определяет фактический расход. Релейный модуль открывает кран выбранной зоны, а после подачи рассчитанного объема воды закрывает его. Так на каждую зону приходится заданное количество осадков, а грунт манежа получает равномерное увлажнение.

Дополнительные фото




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

Дополнительные фото




Защита трубопроводов от замерзания
Часть уличных трубопроводов лежит неглубоко под землей, поэтому в межсезонье их нужно защищать от замерзания.
Температуру грунта измеряет DS18B20. Когда она приближается к нулю, автоматика открывает один из клапанов полива, и вода выходит из уязвимого участка трубопровода. Полный слив системы был бы надежнее, но при кратковременных осенних и весенних заморозках хватает такого сброса.
Трубы, которые идут к кафе, защищает греющий кабель. Контроллер включает обогрев, когда температура опускается ниже заданного порога. Сейчас он составляет +1 °C.

Дополнительные фото



Неожиданное применение: охрана конюшни
Лошадь может выйти из плохо закрытого денника. Без присмотра животные способны подраться, травмироваться или повредить оборудование, поэтому о таком событии нужно узнать как можно раньше.
Нужный датчик уже был в конюшне: WB-MSW v.4 измеряет в том числе движение. Лошади двигаются и внутри денников, поэтому датчик постоянно фиксирует активность. Я посмотрел ночные графики и заметил, что при выходе лошади из денника показания становятся аномально высокими.
Для этого сценария я написал правило, которое работает по расписанию и учитывает состояние освещения. После выключения света оно ждет заданное время и ставит помещение на охрану. Как только свет включают, правило снимает охрану.
Если в режиме охраны показания превышают порог, контроллер отправляет в Telegram сообщение с текущим значением датчика. Сотрудник может открыть камеры видеонаблюдения и проверить, что происходит.
Интерфейс пользователя
На объекте четыре уровня управления. Основной — обычные настенные выключатели без фиксации. Сотрудникам не нужно открывать приложение, чтобы включить свет или запустить переносную поливалку.

Для настройки и диагностики я использую штатный веб-интерфейс Wiren Board. В нем доступны физические и виртуальные устройства, показания датчиков, состояния выходов и параметры правил. Здесь можно изменить расписание полива, уставки давления, режим насоса или время работы вентиляции. Во время наладки я вручную переключаю реле и проверяю текущие и архивные значения.
Сотрудникам все эти инструменты не нужны, поэтому для них я сделал простые веб-панели с крупными кнопками. Они открываются даже на старых iPad Air и iPad mini 2. С экрана можно включить свет, открыть клапан, запустить полив или посмотреть аварии. Один из планшетов особенно пригодился в неотапливаемом влажном помещении манежа: механические кнопки там покрывались конденсатом и замерзали.

Дополнительные фото

Часть некритичных функций я добавил в Яндекс Умный дом. Через Алису можно управлять светом, отдельными клапанами и поливом. Голосовые команды удобны, когда руки заняты, но они только дублируют локальные органы управления. Расписания и защиты от них не зависят.
Анализ данных
Для быстрой проверки я использую штатную историю Wiren Board: сервис wb-mqtt-db сохраняет значения MQTT-топиков в базе данных, а веб-интерфейс показывает их. На этом объекте значения попадают в базу примерно раз в две минуты. Такой частоты достаточно для температуры, влажности, CO₂, давления и большинства электрических параметров, а база не разрастается слишком быстро.
Длительную историю я храню на JetHub, который раньше использовал для Home Assistant. Теперь на нем работают Telegraf, InfluxDB и Grafana. Telegraf получает данные от контроллера, InfluxDB хранит их, а Grafana строит графики.
На графиках можно посмотреть:
расход воды и продолжительность непрерывного водоразбора;
давление в системе и циклы работы скважинных насосов;
температуру в помещениях, на улице, в вентиляционных каналах, на подаче и обратке отопления;
влажность и концентрацию CO₂;
работу вентиляции и электрокотла;
ток, мощность, суточное и месячное потребление электроэнергии.
Панели Grafana открываются на старых iPad и на телевизоре у сторожа. Текущие значения обновляются примерно раз в десять секунд. Можно выбрать помещение и быстро увидеть, что происходило с системой ночью или во время тренировки.
Графики помогают заметить аварию и понять ее причину. По расходу воды видно, подходили ли лошади к поилкам или вода текла непрерывно из-за заклинившего клапана. По давлению можно проследить, как запускается насос и как растет давление. По температуре перед ТЭНом и после него — проверить, правильно ли отработала вентиляция.
Ежедневная сводка
Ежедневно просматривать интерфейс и проверять, все ли в порядке, утомительно. Поэтому я написал правило, которое готовит суточную сводку.
Оно обращается к штатной истории контроллера, получает значения выбранных каналов за заданный период и рассчитывает для каждого параметра минимум, максимум и среднее. Сейчас отчет охватывает предыдущие 24 часа и приходит в 9:00. Период можно менять от одного до 48 часов, а ненужные датчики — исключать.
Сводка автоматически приходит в Telegram. Ее можно запросить и вручную — кнопкой в виртуальном устройстве или командой боту. Если замечаю необычные значения, открываю интерфейс и разбираюсь подробнее.
Аварийные уведомления
Основной канал аварийных сообщений — Telegram. Туда приходят уведомления о неисправностях насосов и датчика давления, превышении температуры, длительном расходе воды и других событиях, которые требуют внимания. В чат входят все сотрудники, которые должны на них реагировать.
На случай проблем с Telegram есть еще два канала. Первый — ntfy. Контроллер отправляет HTTP-запрос на сервер, а приложение на мобильном устройстве показывает push-уведомление. Через ntfy можно передать тот же текст, что и через Telegram, в том числе ежедневную сводку.
Второй канал — Яндекс Умный дом. Здесь возможности скромнее: контроллер передает заранее заданный триггер, а текст уведомления хранится в сценарии Яндекса. Такой канал подходит для коротких сообщений вроде «авария насоса» или «полив запущен», но не для подробного отчета с текущими значениями.
Заключение
Во время эксплуатации постоянно возникают новые задачи, поэтому я продолжаю наблюдать за системой и дорабатывать ее по мере необходимости.
Точный срок окупаемости я не назову: систему строил постепенно, оборудование покупал и устанавливал в разное время. Но экономический эффект вижу — только за счет управления электроотоплением удается экономить десятки тысяч рублей в месяц в отопительный сезон. Значит, буду продолжать.