GrowerHub Управление фермой в одном кабинете

GrowerHub: от контроллера полива к платформе управления фермой

GrowerHub развивался на работающей установке. Публичная история репозитория начинается 6 октября 2025 года: за это время проект прошёл путь от одного ESP32-контроллера полива до платформы с историей датчиков, зонами, Zigbee2MQTT и автоматизациями.

Задача проекта

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

Что показывает проект

Мы не скрываем радикальные изменения проекта: Git показывает, какие решения появлялись, проверялись и заменялись. Эксплуатационный срез подтверждает, что код связан с длительной историей реальных измерений и действий, а не только с демонстрационными экранами.

Проверяемые факты

Срез зафиксирован 23 июля 2026 года. Репозиторий и агрегаты production проверены отдельно; в публикации нет адресов устройств, IEEE, логинов или реквизитов доступа.

777

коммитов в main

Публичная история охватывала 98 отдельных дней разработки с 6 октября 2025 года по дату аудита.

2 140 650

сохранённых измерений native-датчиков

Сохранившийся ряд начинается 8 января 2026 года и доходит до даты аудита; в установке было пять sensor records.

130 127

состояний Zigbee-устройств

С 5 по 23 июля также сохранено 1 366 273 отдельных значения свойств: девять конечных устройств и 25 типов свойств.

165

записей полива в журнале

Первая сохранившаяся запись датирована 26 ноября 2025 года, последняя в срезе — 17 июля 2026 года.

5

включённых сценариев автоматизации

В двух рабочих секциях журналируются расписание света и климатические действия; история начинается 29 июня 2026 года.

Как получен срез

История разработки посчитана по основной ветке Git. Эксплуатационные факты получены read-only запросами к агрегатам PostgreSQL и сопоставлены с датами внедрения функций. Счётчики показывают объём сохранённой истории и диапазон дат, но не означают непрерывный uptime, количество успешных урожаев или число клиентских установок.

Как менялся проект

  1. Один контроллер и одна задачаВ Git был перенесён Smart Watering System: ESP32 читал влажность почвы, температуру и влажность воздуха, управлял насосом и светом, а FastAPI и PostgreSQL принимали данные.
  2. MQTT, подтверждение команд и GrovikaПоявились MQTT-команды ручного полива, state и ACK. Контроллер получил имя Grovika — собственное устройство, на котором отрабатывались насос, свет, датчики и удалённое управление.
  3. От устройства к продуктуНа сервере сохранилась первая запись полива от 26 ноября. Через два дня появился React-интерфейс с отдельными публичными страницами и материалами вместо одного технического экрана.
  4. Новая архитектура и длинная история данныхBackend был перенесён с FastAPI на Java/Spring, прошивка Grovika получила вторую архитектуру с MQTT codec, ACK, heartbeat и управлением насосом и светом. Датчики, насосы, растения и их истории стали отдельными доменами. Сохранившийся ряд sensor readings начинается 8 января.
  5. Зоны, Zigbee2MQTT и автоматизацииК native-устройствам добавились координатор Zigbee2MQTT, универсальные exposes и зоны. В production появились расписание света и климатические пороги; сохранившаяся Zigbee-история начинается 5 июля.
  6. Самостоятельное подключениеGrowerHub перешёл от одной внутренней установки к многопользовательской платформе: изолированные координаторы, MQTTS, onboarding, зоны и автоматизации пользователя. В тот же день появилась полная английская версия.

Что именно подтверждает эта история

  • Grovika и native-контур развивались вместе с реальным журналом полива и телеметрией, а не появились как описание будущего продукта.
  • Архитектура несколько раз менялась после эксплуатации: от одного контроллера и FastAPI к доменам, истории, Zigbee2MQTT и пользовательской изоляции.
  • Автоматизации света и климата продолжают работать в production; проверка контента не отправляет тестовых команд насосам, розеткам или свету.
  • Синтетические публичные скриншоты защищают внутренние адреса и названия. Агрегированные числа выше получены из настоящей установки.

Контакты и исходный код

Подключите первое устройство

Начните самостоятельно, посмотрите исходный код или обратитесь к нам за помощью в Telegram.