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