AgroTech / AI
AgroHome — умное управление садом
AgroHome — локальная платформа для управления садом и огородом на частном участке в Янтарном. Она объединяет агрономическую базу знаний, календарь ухода, карту растений, фактические работы, умный полив, погодные предупреждения и локального AI-агронома.
Обсудить похожий проект
Задача
Собрать управление садом в одной локальной системе: учитывать растения, автоматически планировать уход, синхронизировать полив и предупреждать о погодных рисках.
Решение
Как реализовали проект
Приложение работает на мини-ПК в домашней сети и хранит данные в собственной базе. Модель разделяет справочник видов и конкретные растения на участке, а единый журнал событий связывает планы с фактическим поливом, обрезкой, подкормкой и урожаем. Отдельные фоновые задания синхронизируют Hunter Hydrawise, проверяют прогноз заморозков, формируют задачи и отправляют Telegram-дайджест.
Состав работ
Что вошло в решение
- 01База видов и паспорт каждого растения на участке
- 02Автоматический календарь ухода без дублирования задач
- 03Синхронизация зон полива Hunter Hydrawise
- 04Предупреждения о заморозках с порогами для разных культур
- 05Локальный AI-агроном и диагностика растений по фотографии
- 06Telegram-дайджест задач и рисков опыления
Инфраструктура
Архитектура решения
- 01
Next.js 15 App Router и Server Actions — интерфейс и серверная логика в одном приложении
- 02
SQLite в режиме WAL и Drizzle ORM — встроенное хранилище без отдельного сервера базы данных
- 03
Двухуровневая модель: агрономические знания о видах и фактические растения с координатами на участке
- 04
Единый журнал событий для полива, обрезки, подкормки, урожая и выполнения задач
- 05
Граф знаний связывает виды, заболевания, способы лечения и операции ухода
- 06
Четыре независимых worker-процесса под systemd timers: жизненный цикл, полив, заморозки и уведомления
Возможности
Функционал
Паспорта растений и карта участка
Для каждого растения хранятся вид, координаты на SVG-карте, происхождение клона, подвой, опылитель и произвольные свойства.
Агрономическая база и календарь
Шаблоны ухода по месяцам адаптированы к балтийскому микроклимату: песчаной почве, солёному ветру и повышенному грибковому риску.
Идемпотентный жизненный цикл задач
Фоновое задание создаёт работы на текущий год только при их отсутствии, а просроченные задачи помечает пропущенными без удаления истории.
Управление поливом
Интеграция с Hunter Hydrawise через GraphQL получает расписание зон, водный баланс, расход и состояние датчика дождя.
Персональные алерты о заморозках
Трёхдневный прогноз Open-Meteo сопоставляется с индивидуальными порогами видов и превращается в конкретные рекомендации в Telegram.
Локальный AI-агроном
Ollama получает контекст активных растений, событий за 14 дней и ближайших задач, а ответ передаётся в интерфейс потоково через SSE.
Диагностика по фотографии
Vision-модель анализирует снимок растения и помогает определить симптомы, возможное заболевание и подход к обработке.
Telegram-дайджест
Ежедневная сводка показывает работы текущего месяца и растения, для которых рядом не найден подходящий опылитель.
Стек проекта
Технологии
Защита данных
Безопасность
- Данные сада и локальные LLM-модели размещены внутри домашней сети
- Для AI-функций не нужны ключи внешних LLM API
- SQLite не открывает отдельный сетевой контур базы данных
- Разрушительное пересоздание базы знаний запускается только явным флагом --seed
- Новая сборка завершается до перезапуска сервиса — при ошибке продолжает работать предыдущая версия
- Независимые systemd timers можно диагностировать и перезапускать по отдельности
Живые данные
Интеграции
UX / UI
Дизайн-процесс
Интерфейс спроектирован как спокойный премиальный рабочий инструмент: карта участка, календарь, карточки растений, графики полива и контекстный AI-помощник собраны в единой визуальной системе. Акцент сделан на быстрых ежедневных действиях и понятном отображении сезонных рисков.
Инженерная работа
Нетривиальные решения
Общие справочники не учитывали микроклимат участка
Знания разделили на уровень вида и уровень конкретного растения, а шаблоны ухода откалибровали под балтийское побережье, песчаную почву и солёный ветер.
Автокалендарь мог создавать повторные задачи
Lifecycle-job сделали идемпотентным: он проверяет существующие записи, создаёт только недостающие и сохраняет историю просроченных работ.
Legacy REST Hydrawise не давал нужного набора данных
Интеграцию перевели на GraphQL API с OAuth password grant и кешированием токена.
Единый температурный порог давал бесполезные алерты
Риски заморозков рассчитываются отдельно для каждого вида, а уведомление сразу содержит рекомендуемое действие.
Локальная модель отвечала в формате NDJSON
Поток Ollama преобразуется в SSE, поэтому пользователь видит ответ постепенно, не ожидая завершения всей генерации.
Деплой с Windows в LXC мог менять владельцев файлов
Процесс зафиксировали в пяти шагах с распаковкой через --no-same-owner, серверной сборкой, healthcheck и перезапуском только после успешного build.
Результат
Состояние сада, история работ, календарь и автоматизация собраны в одном self-hosted интерфейсе. Критичные сценарии выполняются независимыми системными таймерами, а локальные модели помогают разбирать вопросы и фотографии без передачи садовых данных внешнему AI-провайдеру.
Следующий кейс