Когда автоматизации в Home Assistant начинают бесить даже тебя
Ты потратил выходные, настраивая автоматизацию "включить свет в коридоре по датчику движения". Потом добавил условие "только вечером", потом "кроме гостевого режима", потом "если дома нет детей". В итоге — 50 строк YAML, которые никто не сможет изменить, кроме тебя. Знакомо?
Home Assistant — это гениальная платформа, но её автоматизации требуют логики программиста. А что, если попросить AI самому понять, что тебе нужно, и выполнить? Не просто "включи свет", а "сделай так, чтобы дом встретил меня после работы с учётом погоды и моего настроения". До недавнего времени это было мечтой. Теперь — нет.
В 2026 году связка Claude (последняя версия, по слухам — уже Claude 4.5 с улучшенным reasoning) и MCP-сервера для Home Assistant превращает твой дом в настоящий ИИ-дворецкий. Давай разберём, как это работает и как собрать самому, не облившись потом.
Что такое MCP и почему именно он, а не очередной костыль
Если ты читал наш гайд по MCP протоколу, ты знаешь: Model Context Protocol — это универсальный разъём для LLM. Раньше, чтобы Claude мог управлять твоим домом, приходилось писать кастомные API-прокси, хардкодить эндпоинты или использовать баш-скрипты с curl. MCP стандартизирует это: Claude знает, какие инструменты доступны (включить свет, прочитать датчик), и сам решает, что вызвать.
MCP-сервер для Home Assistant — это лёгкий Python-процесс, который подключается к твоему HA через REST API или WebSocket и публикует список инструментов. Claude (через Claude Desktop или API) подключается к серверу и получает возможность вызывать эти инструменты. Всё.
Ключевое отличие от Alexa или Google Home: ты не ограничен готовыми скиллами. Claude может комбинировать данные с разных сенсоров (температура, влажность, освещённость, календарь) и принимать нестандартные решения. Например: "На улице +30, дома никого, но через час приедет ребёнок из школы — включи кондиционер в гостиной, но не в спальне".
Сценарий: от "горячий клавиша" до "дворецкий с инициативой"
Давай сразу на примере, чтобы было понятно, зачем это надо. У тебя есть Home Assistant, умные лампочки, датчики открытия окон, погодный сенсор и календарь Google. Ты хочешь автоматизацию: "Когда я ухожу из дома, убедись, что все окна закрыты, свет выключен, холодильник не открыт (датчик на двери), и если на улице дождь — поставь напоминание в календарь на завтра проверить крышу".
В классическом YAML это превратится в монстра с кучей условий, шаблонов и, вероятно, несколькими автономными скриптами. С Claude и MCP ты просто пишешь промпт: "Каждый раз, когда я покидаю дом (state of person.carl с home на not_home), выполни уход за домом. Проверь окна, свет, дверь холодильника, погоду. Если всё ок — просто выключи. Если есть аномалии — сообщи мне в Telegram".
Claude получает через MCP список текущих состояний, анализирует и вызывает нужные службы. И да, он может писать тебе осмысленные сообщения, а не просто "Активирована автоматизация уход".
Архитектура: как связать Claude и Home Assistant
Схема простая, но есть пара подводных камней. Я рекомендую запускать MCP-сервер на том же сервере, где крутится Home Assistant (или рядом — в Docker).
| Компонент | Роль |
|---|---|
| Claude Desktop / API | Интерфейс пользователя, понимание естественного языка, принятие решений |
| MCP-сервер (Home Assistant MCP) | Брокер: переводит вызовы MCP в REST/WebSocket к HA |
| Home Assistant | Исполнитель: управляет устройствами, хранит состояния |
Важно: не запускай MCP-сервер на том же порту, что HA. Используй отдельный порт (например, 3000) и настрой файрвол только для локальной сети. MCP-сервер должен быть доступен только Claude, а не всему интернету.
Пошаговая сборка: от установки до первого "Claude, выключи свет"
1 Убедись, что Home Assistant свежий
Тебе нужна версия не ниже 2025.12 (или 2026.1 — если ты обновлялся). MCP использует долгоживущие токены доступа, которые появились в HA 2024.10, но WebSocket API стабилен только в последних. Проверь:
ha core update --version 2026.1
2 Создай долгоживущий токен в Home Assistant
Профиль пользователя -> Long-Lived Access Tokens. Сгенерируй новый. Не свети этим токеном в открытую. Храни в .env или в secrets.yaml MCP-сервера.
3 Установи MCP-сервер для Home Assistant
Самый популярный и поддерживаемый — mcp-homeassistant от сообщества. Хотя там, как мы писали в расследовании (кризис MCP: 52% удаленных серверов мертвы), нужно выбирать проверенные. Этот — живой, обновляется.
pip install mcp-homeassistant
Или в Docker:
docker run -d --name ha-mcp -e HA_URL=http://192.168.1.100:8123 -e HA_TOKEN=токен -p 3000:3000 ghcr.io/mcp-homeassistant/server:latest
4 Подключи Claude Desktop к серверу
В Claude Desktop открой настройки → MCP Servers → Add Server. Укажи тип sse (HTTP) и URL: http://localhost:3000/sse (или твой IP, если сервер на другой машине).
После подключения Claude увидит список инструментов. Вот как это выглядит в конфиге Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"home-assistant": {
"type": "sse",
"url": "http://192.168.1.100:3000/sse"
}
}
}
5 Первый тест: ручное управление
В чате с Claude напиши: "Покажи все инструменты, которые у тебя есть". Claude перечислит сущности и доступные действия. Теперь попроси: "Включи свет в гостиной". Если всё работает — ты увидишь, как Claude вызывает call_service с доменом light и сервисом turn_on.
6 Создай первую настоящую автоматизацию с логикой
Теперь самое интересное. Напиши промпт, который объединяет несколько шагов:
Создай автоматизацию в Home Assistant с помощью панели разработчика: когда я ухожу из дома (zone.home person меняется на not_home), выполни:
- выключи весь свет
- закрой гараж (cover.close)
- проверь, закрыты ли все окна (binary_sensor)
- если окно открыто (например, кухня) — закрой его
- поставь напоминание в календарь через 30 минут проверить почтовый ящик
Claude поймёт, что нужно создать в HA сценарий или автоматизацию (через вызов API). На практике он либо сгенерирует YAML и предложит добавить через панель разработчика, либо, если у сервера есть инструмент create_automation, создаст автоматизацию напрямую. Проверь, есть ли у твоего сервера такой инструмент — не все его реализуют. Если нет, используй HA API напрямую.
Совет: не пытайся заставить Claude управлять всем через MCP в реальном времени. Используй MCP как генератор конфигурации. Пусть Claude создаёт сценарии или скрипты в HA, а HA выполняет их локально без задержек. Это надёжнее и быстрее.
Сложный сценарий: ESPHome + Claude = умный полив с погодой
Представь: у тебя есть ESP8266 с реле, управляющее садовым поливом. В Home Assistant это — switch.garden_watering. Ты хочешь, чтобы Claude сам решал, когда поливать, с учётом прогноза погоды (через API openweathermap или встроенный сенсор HA).
Промпт для Claude:
Каждое утро в 7:00 проверяй прогноз погоды на сегодня. Если дождь не ожидается, влажность почвы ниже 40% (если есть датчик), и вчера полив не проводился — включи полив на 15 минут. После выключения запиши в заметку 'Полив сегодня выполнен'.
Claude выполнит цикл: прочитает weather entity (или вызовет через MCP внешнее API), проверит last_updated, сравнит условия и включит switch через call_service. Это уже не простая автоматизация — это агент с реальным принятием решений.
Типичные ошибки и как их избежать
Ошибка 1: Claude меняет то, что не должен
Без ограничений Claude может попытаться выключить холодильник или открыть гараж в 3 ночи. Решение — настроить права токена. В Home Assistant создай отдельного пользователя system user с ограниченными правами. Ещё лучше — используй сцены и теги.
Ошибка 2: MCP-сервер висит или падает
В статье про кризис MCP мы рассказывали, что 52% удалённых серверов мертвы. Используй локальный сервер с автозапуском (systemd или Docker restart always). Добавь healthcheck:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
Ошибка 3: Задержка из-за облака
Если ты используешь Claude API (а не Desktop), вызов идёт через интернет. Локальный Claude Desktop не решает проблему полностью — модель всё равно может думать 2-3 секунды. Для критических сцен (датчик утечки газа) никогда не полагайся на LLM. Используй классические автоматизации HA для безопасности, а Claude — для комфорта.
Пишем свой MCP-сервер, если готовый не подходит
Иногда нужно тонкое управление. MCP-сервер на Python делается за 50 строк. Используй библиотеку mcp (версия 1.2+).
from mcp.server import Server
from mcp.server.transport.sse import SseServerTransport
from mcp.types import Tool, TextContent
import httpx
import os
async def handle_call_tool(name: str, arguments: dict):
if name == "turn_light":
entity = arguments["entity_id"]
state = arguments["state"]
async with httpx.AsyncClient() as client:
await client.post(
f"{HA_URL}/api/services/light/{state}",
json={"entity_id": entity},
headers={"Authorization": f"Bearer {HA_TOKEN}"}
)
return [TextContent(type="text", text=f"{entity} turned {state}")]
server = Server("ha-mcp")
server.list_tools = lambda: [Tool(name="turn_light", description="Turn light on/off", inputSchema={...})]
server.call_tool = handle_call_tool
app = SseServerTransport().create_app(server)
Подробнее о написании MCP-серверов мы разбирали в статье Zero-dependency MCP сервер на Python.
Что дальше? Claude как архитектор умного дома
Ты можешь пойти дальше — дать Claude доступ к логам HA, чтобы он сам искал неэффективные сценарии и предлагал оптимизации. Или интегрировать с Claude Code для автоматического рефакторинга YAML. Дом, который пишет свои автоматизации сам — звучит как научная фантастика, но в 2026 это уже реальность.
Если хочешь копнуть глубже, почитай про Computer-use MCP — так можно управлять не только домом, но и целыми ПК.
И последнее: не вздумай доверять Claude отключать холодильник, если ты не хочешь испортить продукты на утро.