У многих уже есть «домашняя нервная система» фермы: ESP32, датчики, иногда LoRa, брокер MQTT, графики, бот. Параллельно есть мощные облачные языковые модели. Если скармливать API каждую минуту все точки температуры и каждое фото — будет дорого, шумно и небезопасно. Нужен мост: дома считаем смысл, наружу отправляем короткую сводку, ответ возвращаем человеку — не реле.
Эта статья — про такую гибридную схему. LLM как консультант разобран в предыдущем материале. Зрение камеры — в контуре ESP32-CAM. Здесь — как подружить локальную сеть с облаком без утечки «внутренностей» хозяйства. Обзор серии — план.
Зачем мост: три боли одним решением
Деньги. Облачные модели тарифицируют объём текста (и тем более изображений). Тысячи сырых строк с датчиков — как возить на базар каждый помидор отдельно вместо ящика.
Приватность. В сыром потоке легко случайно утащить лишнее: точные координаты, имена, режимы охраны, фото с людьми. Сводка «теплица-2, сутки, мин/макс» гораздо безопаснее, если вы её сами составляете.
Связь. Интернет на участке бывает капризным. Локальные пороги («слишком жарко — открой») должны жить без облака. Облачный совет — премия, когда сеть есть.
Аналогия: вы не звоните агроному каждую минуту с показаниями термометра. Раз в день говорите: «Ночью было 11, днём 34, почва суховата, камера ругнулась на ряд 3 — что проверить?» Мост делает из фермы такой ежедневный звонок автоматически.
Архитектура простыми словами
- Сбор: датчики и контроллеры публикуют в MQTT; Raspberry Pi пишет историю в InfluxDB, SQLite или хотя бы CSV.
- Локальный фильтр: жёсткие пороги и простые аномалии (как в статьях про датчики и влажность). Аварии не ждут облако.
- Агрегация раз в N часов: скрипт собирает мин/макс/среднее, число поливов, список алертов камеры, флаги «странно».
- Мост: если есть интернет и наступило окно (например, 6:30 и 20:00) — сводка уходит в LLM через API.
- Ответ: только в бот хозяину. Не в
actuators/cmd.
Опционально дома можно держать маленькую локальную модель для грубой сортировки «стоит ли вообще будить облако». Но на старте хватает правил: «если за сутки не было алертов и всё в коридоре — облако не трогаем».
Что такое хорошая сводка
Сводка — не дамп базы. Это один экран смысла, который человек и модель успевают понять.
{
"field": "teplica-2",
"period": "2026-08-09T00:00/24h",
"crop": "tomato",
"temp_c": {"min": 11.2, "max": 34.1, "mean": 22.4},
"rh_pct": {"min": 48, "max": 92},
"soil_vwc": {"min": 0.18, "max": 0.41},
"irrigation_mm": 4.2,
"vents": {"opens": 7, "max_open_pct": 60},
"alerts": ["frost_risk_night", "cam3_late_blight_0.81"],
"notes": "Вчера вечером меняли шланг на ряду 1",
"question": "Есть ли риски на ближайшие сутки? Что проверить утром без химии?"
}
В промпт к сводке снова добавьте запрет: не назначать СЗР, сначала полевые проверки, признавать нехватку данных. Связка с текстом консультанта — из статьи про LLM.
Реальный суточный ритм
Утро. Pi собрал ночь: минимум температуры, влажность, был ли риск заморозка, сработала ли камера. Если флаги есть — запрос в облако: «что осмотреть первым». Вы получаете чек-лист к кофе, идёте в теплицу.
День. Локально работают полив и вентиляция по правилам. Облако молчит — и правильно.
Вечер. Короткая сводка дня + ваши заметки («пересадили», «был град»). Модель помогает набросать запись в журнал и список на завтра. Опять же — советы, не команды клапанам.
Приватность: что можно слать, чего нельзя
Облако — чужой компьютер. Относитесь к сводке как к открытке, которую может прочитать почтальон.
- Можно: обезличенные агрегаты по «теплица-2», классы алертов без точных GPS дома, общие фазы культуры.
- Осторожно: отдельные фото — лучше кроп листа без фона с техникой и людьми; или вообще не слать фото, а только класс модели зрения.
- Нельзя без нужды: ФИО и телефоны сотрудников, пароли Wi‑Fi/MQTT, схемы сигнализации, точный адрес и координаты, финансовые детали контрактов.
Если сомневаетесь — оставьте данные дома и используйте локальную LLM. Гибрид имеет смысл, когда вы явно контролируете содержимое «открытки».
Ложные тревоги на уровне моста
Мост может создать новый вид шума: каждый вечер красивый, но бесполезный отчёт. Или наоборот — молчание, когда сводка слишком «гладкая» и вырезала важный пик.
Как настроить:
- Шлите в облако только если есть триггер: алерт камеры, выход за порог, резкий скачок, ваш ручной запрос.
- Храните локально полный ряд — для себя и для разбора ошибок.
- Если модель три дня подряд советует одно и то же при стабильной картине — повысьте порог триггеров.
- Сверяйте советы с фактом на грядке; пометки «полезно / мимо» улучшают и промпт, и пороги.
Хороший мост скучен в спокойные дни и разговорчив в странные. Если он болтает всегда — вы кормите облако зря.
Офлайн и аварии
При обрыве интернета:
- Пороги температуры, протечки, критической сухости — продолжают работать локально.
- Очередь сводок копит файлы; когда сеть вернулась — можно отправить пачкой или только последнюю.
- Никакого «раз облако молчит — не поливаем». Полив и климат не зависят от LLM.
Критические действия (перегрев, затопление) — по жёстким правилам, как в будущих агентах: без ожидания ответа чата.
Стоимость и экономия
Грубый ориентир:
- 1–3 облачных запроса в сутки со сводкой на половину экрана — обычно дёшево по сравнению с потоковой болтовнёй.
- Экономия ×10–×100 относительно «шлём все точки раз в минуту» — нормальна, если агрегируете честно.
- Raspberry Pi на мост у вас, скорее всего, уже есть как «мозг» MQTT; отдельная закупка часто не нужна.
Считайте не только рубли API, но и время: короткий утренний чек-лист экономит хаотичный обход «всего сразу».
Постепенный rollout
- Этап A. Научитесь строить сводку и читать её сами — без LLM. Если сводка бессмысленна человеку, облаку она тоже не поможет.
- Этап B. Ручная отправка сводки в чат LLM раз в день (скопировал JSON — вставил).
- Этап C. Скрипт на Pi + API по расписанию, ответ только вам.
- Этап D. Триггеры «только при алертах»; антиспам; журнал пользы.
- Этап E. Подключение к оркестратору: совет → propose → confirm человеком → исполнитель. Это уже мини-агенты.
Железо поля при этом остаётся прежним: камеры, метеостанция (если есть), почвенные датчики. Мост — слой смысла, не замена датчикам.
Как собрать агрегатор на Raspberry Pi без «магии»
На практике мост — это один скрипт по cron или systemd-timer. Псевдологика понятна даже без глубокого программирования:
- Раз в час (или по событию алерта) читаете последние сутки из базы/CSV.
- Считаете мин, макс, среднее по температуре, влажности воздуха и почвы.
- Считаете, сколько раз открывалась вентиляция и сколько мм «накапал» полив.
- Забираете список алертов камеры и датчиков за период.
- Если триггеров нет — выходите молча. Если есть — собираете JSON/текст и зовёте API.
- Ответ кладёте в бот и в локальный лог
advice_YYYY-MM-DD.txt.
# идея: не слать облако без причины
if not alerts and all_in_normal_band(summary):
exit(0)
reply = llm_api(system_prompt_safe, summary)
notify_bot(reply)
save_local(summary, reply)
Системный промпт тот же, что в статье про консультанта: роль помощника, запрет назначать СЗР, просьба признавать нехватку данных. Меняется только «тело» — сводка вместо ручного рассказа.
Что класть в сводку из зрения и климата
Из камеры лучше не тащить каждый JPEG. Достаточно строк вида: «CAM-3, 11:40, late_blight 0.81». Если очень хотите картинку в облако — кроп листа, без лиц и без табличек с адресом. Из климата — коридоры и выбросы, а не тысяча точек. Из полива — суммарные мм и факт «после команды влажность не выросла» (частый признак засора ленты).
Так сводка остаётся короткой, а LLM получает то, на что способна хорошо: связать несколько фактов в порядок проверки.
Разбор типичных сбоев моста
- «Облако советует проветрить, а форточка уже открыта». Значит, в сводку не попал статус вентиляции — допишите поле
vents. - «Советует полить, а вы вчера уже лили». Добавьте
irrigation_mmи время последнего полива. - «Молчит при реальной проблеме». Триггеры слишком жёсткие или алерт камеры не доходит до агрегатора — проверьте MQTT и лог.
- «Счёт API вырос». Кто-то включил отправку каждый час без фильтра; верните правило «только по алертам + 1 плановый утренний».
- «Интернет моргает». Очередь файлов + локальные пороги; не ставьте LLM в разрыв аварийного контура.
Мост отлаживают как капельный полив: сначала смотрят, куда течёт, потом крутят вентили. Не стесняйтесь неделю гонять агрегатор в режиме «только сохранить сводку локально, API не вызывать».
Сколько времени займёт привыкание
На первой неделе вы будете править поля сводки: то забудете указать культуру, то не передадите статус форточек. Это нормально. К третьей неделе утренний отчёт начинает ощущаться как сводка от бригадира: коротко, по делу, без лишней паники. Если через месяц ответы облака всё ещё «общие» и не про вашу теплицу — вернитесь к содержимому JSON: модель не виновата, если вы кормите её пустыми цифрами без контекста полива, камеры и ваших заметок.
И ещё один практический совет: держите рядом бумажный или цифровой журнал «что посоветовали — что сделали — что вышло». Без этой петли мост останется красивой игрушкой. С петлёй он становится частью агрономии хозяйства — такой же, как запись поливов и осмотров.
Главное
Мост между фермой и облаком — это дисциплина агрегации и границ. Сырые ряды и лишние детали живут дома. Наружу уходит короткая сводка по вашим правилам. Ответ LLM — человеку, не насосу. Аварии закрываются локальными порогами. Так вы получаете пользу сильной текстовой модели без счёта «за каждый градус» и без ощущения, что теплица рассказывает о себе всему интернету. Когда сводки стабильны — можно собирать нескольких мини-помощников под одним MQTT-оркестратором.





