ESP-Claw на ESP32-S3: локальный ИИ-агент для IoT с LLM и Open WebUI | AiManual
AiManual Logo Ai / Manual.
03 Июл 2026 Гайд

Как настроить ESP-Claw на ESP32-S3: превращаем микроконтроллер в ИИ-агента для умного дома

Полный гайд по настройке ESP-Claw на ESP32-S3: подключение к LLM через OpenRouter, управление Tuya-устройствами, развертывание Open WebUI. Никакого облака — тол

Вы когда-нибудь смотрели на свой ESP32-S3, валяющийся в ящике, и думали: «А не пора ли ему заговорить?» Нет, я не про пищалку на GPIO. Я про то, чтобы 5-долларовый чип сам принимал решения на основе большого языкового модуля, управлял лампочками Tuya и докладывал вам через веб-интерфейс. Звучит как фантастика? Добро пожаловать в 2026 — год, когда ESP-Claw превратил микроконтроллеры в настоящих ИИ-агентов.

Почему облачные решения бесят, а ESP-Claw — спасение

Откройте любой «умный» светильник — внутри копеечный чип, который молит облако о команде. Вы дёргаете приложение, запрос улетает в AWS, оттуда обратно — и только потом загорается лампочка. Теперь представьте: задержка в 3 секунды вместо 300 мс. И это ещё полбеды. Ваш роутер падает — дом слепнет. А если облачный сервис решит поднять цены? Хана автономности.

ESP-Claw решает это иначе. Вы берёте ESP32-S3 с PSRAM, прошиваете агентный фреймворк, подключаете LLM (хоть через OpenRouter, хоть локально через Ollama) и получаете устройство, которое само решает, когда включить свет, отправить уведомление или позвонить в Telegram. И весь код — открытый. Никаких тарифов за подписку.

Если вы ещё не знакомы с возможностями ESP32-S3, советую глянуть наш гайд по сборке робота Xiaozhi на том же чипе — там отлично расписана работа с периферией и прошивкой.

Анатомия решения: что внутри коробки

Ключевая фишка ESP-Claw — он не просто шлёт запросы в LLM, а действует как автономный агент с памятью и плагинами. Микроконтроллер становится мозгом, который:

  • Получает команду (текст или голос через I2S-микрофон)
  • Формирует системный промпт с контекстом устройств
  • Отправляет запрос в LLM (например, Llama 3.3 70B или более новую модель через OpenRouter)
  • Парсит ответ и вызывает API Tuya/MQTT
  • Логирует всё через Open WebUI

OpenRouter здесь — прослойка, которая даёт доступ к десяткам моделей без аренды GPU. Но если вы параноик, можно завернуть запросы в локальную LLM (читайте сравнение local-серверов — Oobabooga или Jan AI отлично работают в паре).

Железо: что купить, чтобы не проклясть всё

Берём только ESP32-S3 с PSRAM! N8R2 или N16R8 — разница в цене копеечная, а вот без PSRAM агент вылетит с Out-of-Memory на втором запросе. Вам понадобится:

  • ESP32-S3 DevKit или модуль (с PSRAM)
  • USB-UART адаптер (если нет встроенного)
  • Реле или шилд для 220В (если управляете не Tuya, а напрямую)
  • Микрофон I2S (опционально — для голосового ввода)
  • Tuya-совместимая розетка/лампочка (тестировал на Tuya Smart Plug TYWE3L)

Ошибка №1: новички берут ESP32 без PSRAM и потом пишут в чатах «всё виснет». Даже для обработки JSON-ответов от LLM нужно минимум 4 МБ PSRAM. Не экономьте.

Шаг 1: прошивка ESP-Claw на ESP32-S3

Идём на GitHub ESP-Claw, клонируем репу. Проект базируется на ESP-IDF v5.x (на 2026 год уже v6, всё совместимо). Убедитесь, что установили Toolchain. Компиляция одной командой:

git clone https://github.com/esp-claw/esp-claw.git
cd esp-claw
idf.py set-target esp32s3
idf.py menuconfig
idf.py build flash monitor

В меню конфигурации (menuconfig) включите:

  • Component config → ESP-Claw → LLM Backend → выберите OpenRouter
  • Wi-Fi → SSID и пароль
  • Tuya Integration → введите tuya_device_id, tuya_local_key (получаете в облаке Tuya)

После первой прошивки в логах появится IP-адрес. Запомните его — он понадобится для Open WebUI.

Шаг 2: настройка OpenRouter и LLM

Идём на OpenRouter, регистрируемся, создаём API-ключ. Выбираем модель — на июль 2026 года я рекомендую Meta Llama 4 405B или компактную Mistral Small 4 70B. В конфиге ESP-Claw укажите endpoint и модель:

{
  "llm": {
    "backend": "openrouter",
    "api_key": "sk-or-v1-ваш_ключ",
    "model": "meta-llama/llama-4-405b-instruct",
    "max_tokens": 512,
    "temperature": 0.3
  }
}

Температуру ставьте 0.2–0.4. Иначе агент начнёт фантазировать — выключит не ту розетку. Проверено.

Если хотите полную приватность, поднимите локальную LLM на Raspberry Pi 5 с Ollama. Вот как это делается в смежном проекте — статья про автономный AI-агент с LoRa раскрывает ту же механику, только с радиоканалом вместо Wi-Fi.

Шаг 3: привязываем Tuya-устройства

Tuya — боль, но ESP-Claw её анестезирует. Вам достаточно зарегистрировать устройство в облаке Tuya IoT, получить Device ID и Local Key. Затем в конфиге ESP-Claw добавить блок:

{
  "tuya": {
    "device_id": "your_device_id",
    "local_key": "your_local_key",
    "protocol": "mqtt"  // или "http" - mqtt быстрее
  }
}

Теперь в системном промпте агента пропишите список устройств и команд:

Ты — помощник умного дома. Доступные устройства:
- розетка_кухня (on/off)
- лампа_гостиная (on/off, dim 0-100)
Если пользователь пишет «приготовься к вечеру», включи розетку_кухня и приглуши лампу до 30%.

Агент сам сформирует JSON-команды и отправит их в Tuya. Красота, да?

Шаг 4: поднимаем Open WebUI

Open WebUI — это фронтенд для общения с LLM, но ESP-Claw использует его как dashboard для логов и управления. Ставим на любом сервере (или на том же Raspberry Pi):

docker run -d -p 3000:8080 \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

После запуска заходим в веб-интерфейс, создаём админа и подключаем OpenRouter как провайдера через настройки подключений. Теперь в Open WebUI отображаются все диалоги с ESP-Claw. Но главная фишка — можно отправить команду прямо из веб-интерфейса, и агент на микроконтроллере её выполнит.

Ошибка №2: Не забудьте открыть порт 3000 на фаерволе. И не используйте HTTP без SSL — ваш API-ключ OpenRouter может утечь. Поставьте хотя бы nginx с Let's Encrypt.

Нюансы, которые вылезут боком

  • Латентность: OpenRouter добавляет 0.5–2 секунды в зависимости от модели. Если нужно реактивное управление (включить свет по движению) — делайте триггеры на самом ESP, а LLM используйте только для сложных сценариев.
  • Энергопотребление: ESP32-S3 c Wi-Fi и работой с шифрованием жрёт ~300 мА. Для батарейного устройства придётся использовать режимы сна.
  • Безопасность ключей: Храните API-ключи в зашифрованной партиции ESP (NVS). Если прошьёте открытыми — любой, кто найдёт устройство по UART, вытянет их.
  • Голосовой ввод: Поддержка пока «из коробки» только через I2S-микрофон. Для шумоподавления ставьте фильтры в коде.
💡
Кстати, в статье про OpenClaw vs MemU описан похожий архитектурный спор: окупается ли локальный агент. ESP-Claw выигрывает за счёт цены — 5$ против десятков тысяч за сервер.

Типичные ошибки при сборке (лучше сразу прочитать)

Я сам наступил на все грабли. Вот главные:

  • SPI RAM не инициализирована. В menuconfig проверьте CONFIG_ESP32S3_SPIRAM_SUPPORT=y и режим Octal. Иначе прошивка полетит, но при запросе к LLM — перезагрузка.
  • MTU Wi-Fi для HTTPS. OpenRouter требует TLS. У ESP32-S3 буфер TLS по умолчанию 4096 байт — уменьшите CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN до 2048, иначе некоторые модели не влезут.
  • Двойной JSON. LLM может сгенерировать ответ с лишними символами. ESP-Claw парсит только то, что в скобках {}, но учите модель быть строгой через Few-shot examples.
  • Таймаут запроса. Если LLM отвечает дольше 30 секунд, ESP сбрасывает соединение. Увеличьте LLM_TIMEOUT_MS до 60000 в sdkconfig.

А что дальше? Прогноз на 2027 год

Через год каждый датчик за 2$ сможет запускать локальную LLM со своим микромозгом благодаря сжатым моделям и нейро-ускорителям вроде ESP32-S4 (а он уже в разработке). Облачные подписки на «умный дом» умрут, потому что агенты на чипах станут дешевле и быстрее. Open WebUI превратится в стандартный интерфейс для роутеров и хабов.

Попробуйте уже сегодня: спаяйте ESP-Claw, подключите одну розетку Tuya и скажите агенту: «Сделай чай в 18:00, если я дома». Когда это сработает без облака — вы почувствуете себя магом.

P.S. Если захотите уйти ещё глубже в автономные агенты — почитайте как настроить OpenClaw на полноценном ПК — там те же принципы, но без ограничений микроконтроллера.

Подписаться на канал