AgroTech / AI

AgroHome — умное управление садом

AgroHome — локальная платформа для управления садом и огородом на частном участке в Янтарном. Она объединяет агрономическую базу знаний, календарь ухода, карту растений, фактические работы, умный полив, погодные предупреждения и локального AI-агронома.

Обсудить похожий проект
Интерфейс AgroHome со связанными системами полива, погоды и локального AI

Задача

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

Решение

Как реализовали проект

Приложение работает на мини-ПК в домашней сети и хранит данные в собственной базе. Модель разделяет справочник видов и конкретные растения на участке, а единый журнал событий связывает планы с фактическим поливом, обрезкой, подкормкой и урожаем. Отдельные фоновые задания синхронизируют Hunter Hydrawise, проверяют прогноз заморозков, формируют задачи и отправляют Telegram-дайджест.

Состав работ

Что вошло в решение

  • 01База видов и паспорт каждого растения на участке
  • 02Автоматический календарь ухода без дублирования задач
  • 03Синхронизация зон полива Hunter Hydrawise
  • 04Предупреждения о заморозках с порогами для разных культур
  • 05Локальный AI-агроном и диагностика растений по фотографии
  • 06Telegram-дайджест задач и рисков опыления

Инфраструктура

Архитектура решения

  1. 01

    Next.js 15 App Router и Server Actions — интерфейс и серверная логика в одном приложении

  2. 02

    SQLite в режиме WAL и Drizzle ORM — встроенное хранилище без отдельного сервера базы данных

  3. 03

    Двухуровневая модель: агрономические знания о видах и фактические растения с координатами на участке

  4. 04

    Единый журнал событий для полива, обрезки, подкормки, урожая и выполнения задач

  5. 05

    Граф знаний связывает виды, заболевания, способы лечения и операции ухода

  6. 06

    Четыре независимых worker-процесса под systemd timers: жизненный цикл, полив, заморозки и уведомления

Возможности

Функционал

01

Паспорта растений и карта участка

Для каждого растения хранятся вид, координаты на SVG-карте, происхождение клона, подвой, опылитель и произвольные свойства.

02

Агрономическая база и календарь

Шаблоны ухода по месяцам адаптированы к балтийскому микроклимату: песчаной почве, солёному ветру и повышенному грибковому риску.

03

Идемпотентный жизненный цикл задач

Фоновое задание создаёт работы на текущий год только при их отсутствии, а просроченные задачи помечает пропущенными без удаления истории.

04

Управление поливом

Интеграция с Hunter Hydrawise через GraphQL получает расписание зон, водный баланс, расход и состояние датчика дождя.

05

Персональные алерты о заморозках

Трёхдневный прогноз Open-Meteo сопоставляется с индивидуальными порогами видов и превращается в конкретные рекомендации в Telegram.

06

Локальный AI-агроном

Ollama получает контекст активных растений, событий за 14 дней и ближайших задач, а ответ передаётся в интерфейс потоково через SSE.

07

Диагностика по фотографии

Vision-модель анализирует снимок растения и помогает определить симптомы, возможное заболевание и подход к обработке.

08

Telegram-дайджест

Ежедневная сводка показывает работы текущего месяца и растения, для которых рядом не найден подходящий опылитель.

Стек проекта

Технологии

Next.js
TypeScript
React
SQLite
Drizzle ORM
Tailwind CSS
Ollama
Proxmox
Telegram

Защита данных

Безопасность

  • Данные сада и локальные LLM-модели размещены внутри домашней сети
  • Для AI-функций не нужны ключи внешних LLM API
  • SQLite не открывает отдельный сетевой контур базы данных
  • Разрушительное пересоздание базы знаний запускается только явным флагом --seed
  • Новая сборка завершается до перезапуска сервиса — при ошибке продолжает работать предыдущая версия
  • Независимые systemd timers можно диагностировать и перезапускать по отдельности

Живые данные

Интеграции

Hunter Hydrawise GraphQL API — зоны, расписание, расход и датчик дождяOpen-Meteo — прогноз температуры для персональных предупрежденийOllama с qwen2.5 и qwen2.5vl — локальный чат и анализ фотографийTelegram Bot API — алерты и ежедневные сводкиProxmox LXC и systemd — изолированное размещение и фоновые задания

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-провайдеру.

Следующий кейс

Умный дашборд домашней инфраструктуры

Смотреть кейс →