Локальный ИИ в Home Assistant: llama.cpp, Ollama и LLM без облака
Home Assistant · Local LLM · llama.cpp

Локальный ИИ в Home Assistant: как подключить LLM через llama.cpp без облака

Home Assistant умеет использовать локальную языковую модель как Conversation Agent. Модель может отвечать на вопросы о доме и, если ей разрешить, управлять выбранными устройствами через Assist API. Саму LLM можно запускать на отдельном компьютере или сервере в локальной сети через llama.cpp, Ollama, vLLM или другой совместимый backend.

llama.cppAssist APIConversation AgentOllamaLiteLLMLocal AI
Главное: Home Assistant не запускает тяжёлую LLM «внутри себя» автоматически. Интеграция подключается к уже работающему inference-серверу. Самый надёжный вариант для умного дома — оставить Home Assistant отдельной стабильной системой, а модель запускать на другом локальном компьютере или сервере.

Что означает «локальный ИИ» в Home Assistant

Локальная LLM — это языковая модель, вычисления которой выполняются на оборудовании владельца, а не на сервере облачного AI-провайдера. Home Assistant отправляет запрос по локальной сети на inference-сервер, получает ответ и использует модель как разговорного агента.

Важно разделять три вещи: модель, программу для её запуска и Home Assistant. Например, llama.cpp — не языковая модель. Это программный движок, который способен запускать совместимые модели и предоставлять API для обращения к ним.

Home Assistantсостояния дома, Assist API
llama.cpp serverOpenAI-compatible API
LLMобрабатывает запрос

Inference-сервер не обязан находиться на той же машине, где работает Home Assistant. Например, Home Assistant может работать круглосуточно на компактном энергоэффективном мини-ПК, а LLM — на другом компьютере с более мощным процессором или видеокартой.

Локально не значит «внутри Home Assistant». Если сервер с моделью находится в вашей LAN и запросы не уходят к внешнему AI API, обработка остаётся локальной, даже когда LLM запущена на отдельной машине.

Как Home Assistant даёт LLM доступ к умному дому

Home Assistant имеет встроенный LLM API. Он предоставляет языковой модели инструменты, через которые она может получать информацию и выполнять действия в рамках разрешённых возможностей Assist.

Это принципиально безопаснее идеи «дать нейросети полный доступ к Home Assistant». Модель не получает административную панель, конфигурационные файлы или произвольный системный доступ. Встроенный Assist API ограничивает её возможностями, которые Home Assistant предоставляет разговорному агенту.

1Запрос«В гостиной холодно?»
2LLMпонимает намерение
3Assist APIдоступ к разрешённым сущностям
4Home Assistantчитает датчик или выполняет действие

Какие именно устройства видит агент, определяет владелец. Сущности открываются для Assist отдельно. Поэтому LLM можно разрешить видеть температуру, свет и климат, но не давать ей доступ к дверному замку или воротам.

Локальная LLM и локальный голосовой ассистент — не одно и то же

LLM отвечает за понимание более свободных запросов, рассуждение и формирование ответа. Распознавание голоса — отдельная часть системы.

ЗадачаКомпонент
Услышать голосМикрофон / voice satellite
Превратить речь в текстSpeech-to-Phrase или Whisper
Понять стандартную командуВстроенный Home Assistant Assist
Обработать свободный запросLLM Conversation Agent
Получить состояние и управлять устройствамиAssist API / LLM tools
Озвучить ответPiper или другой TTS

Поэтому систему можно использовать даже без микрофона: написать запрос агенту текстом и получить текстовый ответ. А если добавить локальные STT и TTS, получится полноценный разговорный голосовой ассистент, который способен работать без облачного AI.

llama.cpp, Ollama или LiteLLM: что выбрать

llama.cpp

Подходит, если нужен лёгкий OpenAI-compatible inference server и гибкое управление моделями. Интеграция Home Assistant также совместима с llama-cpp-python, vLLM и другими backend, реализующими OpenAI chat completions API.

Ollama

Удобный вариант для быстрого запуска локальных моделей. У Home Assistant есть отдельная официальная интеграция Ollama. Если используется именно Ollama, документация Home Assistant рекомендует выбирать её, а не подключать сервер через llama.cpp integration.

LiteLLM

Прокси-слой, который объединяет множество AI-провайдеров за одним OpenAI-compatible API. Может работать как самостоятельный маршрутизатор между несколькими локальными или внешними моделями.

Когда нужен llama.cpp

Этот вариант особенно интересен, если модель уже запускается через llama.cpp, llama-cpp-python или совместимый API; если требуется самостоятельно управлять параметрами inference; или если сервером является другой OpenAI-compatible backend, для которого Home Assistant не имеет более подходящей специальной интеграции.

Когда лучше Ollama

Если задача — максимально просто поднять несколько локальных моделей на Linux, Windows или macOS и подключить их к Home Assistant, отдельная интеграция Ollama обычно проще.

Зачем LiteLLM

LiteLLM полезен в более сложной архитектуре: например, когда одна модель работает локально, другая на отдельном GPU-сервере, а третья используется как резервная. Home Assistant подключается к единой точке входа, а маршрутизацией занимается LiteLLM.

Какое железо нужно для локальной LLM

Главная ошибка — искать «минимальный компьютер для Home Assistant с ИИ» как единую характеристику. Home Assistant сам по себе требует несравнимо меньше ресурсов, чем современная языковая модель.

Home Assistant

Лучше оставить на стабильном энергоэффективном сервере, который работает 24/7.

LLM server

Требования зависят от размера модели, квантования, длины контекста и желаемой скорости ответа.

GPU

Не обязателен для самого факта локального inference, но может радикально ускорить работу подходящей модели.

Небольшие квантованные модели могут работать только на CPU, но скорость и качество ответа будут зависеть от конкретного процессора. Чем больше модель и контекст, тем больше требуется оперативной памяти и, при GPU inference, видеопамяти.

Рациональная архитектура: не покупать мощный сервер только ради того, чтобы объединить Home Assistant и LLM в одной коробке. Надёжнее разделить критичную домашнюю автоматику и экспериментальную AI-нагрузку.

Что нужно подготовить на сервере с llama.cpp

До настройки Home Assistant должен уже работать сервер с OpenAI-compatible Chat Completions API. Для стандартного llama.cpp типичный адрес выглядит как http://IP_СЕРВЕРА:8080/v1, но порт может быть другим.

Перед подключением проверьте:

  • сервер с моделью запущен;
  • Home Assistant видит его IP-адрес;
  • межсетевой экран разрешает соединение из сети Home Assistant;
  • в URL указан правильный протокол, порт и путь /v1;
  • если включена авторизация, известен API key;
  • загруженная модель способна работать с требуемыми инструментами, если планируется управление домом.
Не публикуйте llama.cpp API напрямую в интернет. Если локальному серверу не нужна внешняя доступность, разрешайте подключение только из доверенных сегментов домашней сети.

Как подключить llama.cpp к Home Assistant

  1. 1

    Запустите локальный inference server

    Поднимите llama.cpp или другой совместимый OpenAI API backend и загрузите выбранную модель.

  2. 2

    Проверьте доступность из сети Home Assistant

    Home Assistant должен обращаться к API по IP/имени сервера и выбранному порту.

  3. 3

    Добавьте интеграцию llama.cpp

    Откройте «Настройки → Устройства и службы → Добавить интеграцию» и найдите llama.cpp.

  4. 4

    Укажите Base URL

    Например, http://192.168.1.50:8080/v1. Используйте реальный адрес своего inference-сервера.

  5. 5

    Укажите API key при необходимости

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

  6. 6

    Выберите модель

    После соединения Home Assistant предложит выбрать доступную chat model.

  7. 7

    Настройте параметры агента

    Можно регулировать максимальное число токенов ответа, temperature и top P. Для управления домом обычно полезнее более детерминированное поведение, чем высокая «креативность».

  8. 8

    Проверьте сначала без управления устройствами

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

Как разрешить LLM управлять Home Assistant

Для управления устройствами Conversation Agent использует Assist API. Список доступных объектов зависит от того, какие сущности владелец открыл для Assist.

Настройки → Голосовые ассистенты → Expose / Открытые сущности

Нет необходимости открывать модели весь дом. Наоборот, Home Assistant рекомендует оставлять доступ только к действительно нужным объектам. Это одновременно уменьшает контекст, ускоряет обработку и снижает вероятность ошибочного действия.

Разумно открыть

  • освещение;
  • температуру и влажность;
  • часть климатических устройств;
  • медиаплееры;
  • безопасные сценарии и датчики.

Требуют особой осторожности

  • замки;
  • ворота и калитки;
  • охранная система;
  • нагреватели;
  • силовые нагрузки;

Названия, Areas и aliases по-прежнему имеют значение. Чем чище структура Home Assistant, тем меньше лишнего контекста приходится передавать модели и тем понятнее ей устройство дома.

Меньше — лучше. В документации интеграции Ollama Home Assistant отдельно рекомендует при экспериментах с локальной LLM открывать менее 25 сущностей: небольшие модели чаще ошибаются, а большой контекст дополнительно усложняет задачу.

Скрипты Home Assistant становятся инструментами для LLM

Для LLM-based Conversation Agents скрипты Home Assistant имеют особое значение. Они не просто передаются модели как обычные сущности. Home Assistant может представить открытый скрипт как инструмент, который агент способен вызвать.

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

Например:

вместо предоставления модели прямого доступа к нескольким реле, термостатам и клапанам можно создать проверенный сценарий script.night_mode. Сам Home Assistant выполняет заранее определённую последовательность, а LLM лишь принимает решение вызвать этот инструмент.

Описание скрипта должно быть понятным. По нему LLM определяет, для чего предназначен инструмент и когда его следует использовать.

Для критичных действий сценарий лучше LLM-импровизации. Пусть модель выбирает заранее проверенную функцию, а не самостоятельно строит последовательность команд к исполнительным устройствам.

Насколько безопасно давать локальному ИИ доступ к дому

Локальная модель решает проблему передачи запросов внешнему AI-провайдеру, но не отменяет другие риски. LLM может неверно интерпретировать фразу, выбрать неподходящий инструмент или сформировать ошибочный ответ.

  • открывайте минимально необходимое количество сущностей;
  • не используйте LLM как единственный уровень защиты оборудования;
  • критичные действия реализуйте через проверенные Home Assistant scripts или штатную автоматику;
  • не выставляйте inference API наружу;
  • при разделении сети разрешите только необходимые соединения между Home Assistant и LLM server;
  • не помещайте секреты и пароли в system prompt;
  • проверяйте обновления inference server и Home Assistant;
  • сохраняйте обычное ручное управление инженерными системами.
LLM не является системой функциональной безопасности. Нейросеть не заменяет защитные термостаты, автоматы, УЗО, контроллеры безопасности, штатные блокировки котла, защиту насосов, сигнализацию или другие аппаратные средства.

Типичные ошибки при локальном AI в Home Assistant

Пытаются поставить LLM прямо на слабый Home Assistant

Домашняя автоматика начинает конкурировать с inference за CPU и RAM. Разделение серверов часто надёжнее.

Используют llama.cpp integration для Ollama

Технические схемы могут быть похожи, но Home Assistant имеет отдельную официальную Ollama integration и рекомендует её для Ollama server.

Открывают сотни сущностей

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

Путают модель и inference server

llama.cpp, Ollama и vLLM запускают модели. Они сами не являются LLM.

Ждут от маленькой модели облачного качества

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

Дают ИИ критичные полномочия

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

Какую архитектуру выбрать для дома

Вариант 1

Просто попробовать локальный AI

Home Assistant + отдельный Ollama server. Хороший старт, если важна простая установка и хочется быстро проверить несколько моделей.

Вариант 2

Гибкий локальный inference

Home Assistant + llama.cpp server. Подходит для тех, кому нужен контроль над запуском модели и прямой OpenAI-compatible API.

Вариант 3

Несколько моделей и backend

Home Assistant + LiteLLM + локальные inference servers. Полезно, если модели находятся на разных машинах или нужно централизовать маршрутизацию.

Вариант 4

Полностью локальный голосовой AI

Whisper/Speech-to-Phrase → LLM Conversation Agent → Home Assistant → Piper. В такой цепочке распознавание, понимание запроса, управление домом и синтез ответа могут выполняться внутри локальной инфраструктуры.

Для постоянно работающего дома наиболее здравый вариант — держать Home Assistant независимым от LLM-сервера. Если AI-машина выключится, базовые автоматизации, датчики, отопление и освещение должны продолжать работать.

Частые вопросы

Можно ли использовать Home Assistant с локальной LLM без интернета?

Да, если inference server, модель и остальные необходимые компоненты находятся в локальной сети. Интернет может понадобиться для первоначального скачивания модели и обновлений, но сами запросы необязательно отправлять во внешнее облако.

Обязательно ли устанавливать llama.cpp на сервер Home Assistant?

Нет. Более того, для тяжёлой модели часто лучше отдельная машина. Home Assistant обращается к серверу через сеть.

Можно ли подключить vLLM через интеграцию llama.cpp?

Официальная документация интеграции указывает vLLM среди совместимых backend, если сервер предоставляет требуемый OpenAI-compatible chat completions API.

Что выбрать: Ollama или llama.cpp?

Ollama проще для быстрого старта и имеет отдельную официальную интеграцию Home Assistant. llama.cpp удобен, если требуется более прямой контроль над inference или уже используется OpenAI-compatible сервер.

Может ли LLM включать свет и менять климат?

Да, если агенту разрешено управление Home Assistant и соответствующие сущности открыты Assist. Для критичных устройств права лучше ограничивать.

Заменяет ли LLM обычные автоматизации?

Нет. Детерминированная логика расписаний, датчиков, аварий и инженерных систем лучше остаётся в штатных автоматизациях. LLM полезна как разговорный интерфейс и слой интерпретации сложных запросов.

Нужна ли видеокарта?

Не обязательно. Некоторые модели работают на CPU, однако производительность зависит от размера модели, квантования и железа. GPU обычно позволяет существенно ускорить inference подходящих моделей.

Можно ли использовать локальную LLM вместе с Whisper и Piper?

Да. Whisper или Speech-to-Phrase преобразует голос в текст, LLM работает как Conversation Agent, Home Assistant выполняет разрешённые действия, а Piper формирует локальный голосовой ответ.

Стоит ли добавлять локальную LLM в Home Assistant

Для простых команд «включи свет» или «установи 22 градуса» большая языковая модель не нужна: встроенный Assist делает такие действия быстрее и предсказуемее. LLM становится полезной, когда нужен более естественный разговор, сложная интерпретация запроса, объединение нескольких фактов о доме или работа с дополнительными инструментами.

Ключевое преимущество локальной схемы — контроль архитектуры. Home Assistant остаётся владельцем устройств и прав доступа, Assist API ограничивает возможности агента, а inference можно вынести на отдельный сервер и не отправлять домашний контекст стороннему AI-провайдеру.

Лучше всего воспринимать LLM не как новый контроллер умного дома, а как дополнительный интерфейс поверх уже правильно построенной локальной автоматики.