Локальный ИИ в Home Assistant: как подключить LLM через llama.cpp без облака
Home Assistant умеет использовать локальную языковую модель как Conversation Agent. Модель может отвечать на вопросы о доме и, если ей разрешить, управлять выбранными устройствами через Assist API. Саму LLM можно запускать на отдельном компьютере или сервере в локальной сети через llama.cpp, Ollama, vLLM или другой совместимый backend.
Что означает «локальный ИИ» в Home Assistant
Локальная LLM — это языковая модель, вычисления которой выполняются на оборудовании владельца, а не на сервере облачного AI-провайдера. Home Assistant отправляет запрос по локальной сети на inference-сервер, получает ответ и использует модель как разговорного агента.
Важно разделять три вещи: модель, программу для её запуска и Home Assistant. Например, llama.cpp — не языковая модель. Это программный движок, который способен запускать совместимые модели и предоставлять API для обращения к ним.
Inference-сервер не обязан находиться на той же машине, где работает Home Assistant. Например, Home Assistant может работать круглосуточно на компактном энергоэффективном мини-ПК, а LLM — на другом компьютере с более мощным процессором или видеокартой.
Как Home Assistant даёт LLM доступ к умному дому
Home Assistant имеет встроенный LLM API. Он предоставляет языковой модели инструменты, через которые она может получать информацию и выполнять действия в рамках разрешённых возможностей Assist.
Это принципиально безопаснее идеи «дать нейросети полный доступ к Home Assistant». Модель не получает административную панель, конфигурационные файлы или произвольный системный доступ. Встроенный Assist API ограничивает её возможностями, которые Home 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 сам по себе требует несравнимо меньше ресурсов, чем современная языковая модель.
Лучше оставить на стабильном энергоэффективном сервере, который работает 24/7.
Требования зависят от размера модели, квантования, длины контекста и желаемой скорости ответа.
Не обязателен для самого факта локального inference, но может радикально ускорить работу подходящей модели.
Небольшие квантованные модели могут работать только на CPU, но скорость и качество ответа будут зависеть от конкретного процессора. Чем больше модель и контекст, тем больше требуется оперативной памяти и, при GPU inference, видеопамяти.
Что нужно подготовить на сервере с 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 к Home Assistant
- 1
Запустите локальный inference server
Поднимите llama.cpp или другой совместимый OpenAI API backend и загрузите выбранную модель.
- 2
Проверьте доступность из сети Home Assistant
Home Assistant должен обращаться к API по IP/имени сервера и выбранному порту.
- 3
Добавьте интеграцию llama.cpp
Откройте «Настройки → Устройства и службы → Добавить интеграцию» и найдите llama.cpp.
- 4
Укажите Base URL
Например,
http://192.168.1.50:8080/v1. Используйте реальный адрес своего inference-сервера. - 5
Укажите API key при необходимости
Если сервер работает без авторизации внутри доверенной LAN, поле может быть необязательным. Безопасность сети от этого становится особенно важной.
- 6
Выберите модель
После соединения Home Assistant предложит выбрать доступную chat model.
- 7
Настройте параметры агента
Можно регулировать максимальное число токенов ответа, temperature и top P. Для управления домом обычно полезнее более детерминированное поведение, чем высокая «креативность».
- 8
Проверьте сначала без управления устройствами
Убедитесь, что агент стабильно отвечает на текстовые запросы, прежде чем выдавать ему инструменты управления.
Как разрешить LLM управлять Home Assistant
Для управления устройствами Conversation Agent использует Assist API. Список доступных объектов зависит от того, какие сущности владелец открыл для Assist.
Нет необходимости открывать модели весь дом. Наоборот, Home Assistant рекомендует оставлять доступ только к действительно нужным объектам. Это одновременно уменьшает контекст, ускоряет обработку и снижает вероятность ошибочного действия.
Разумно открыть
- освещение;
- температуру и влажность;
- часть климатических устройств;
- медиаплееры;
- безопасные сценарии и датчики.
Требуют особой осторожности
- замки;
- ворота и калитки;
- охранная система;
- нагреватели;
- силовые нагрузки;
Названия, Areas и aliases по-прежнему имеют значение. Чем чище структура Home Assistant, тем меньше лишнего контекста приходится передавать модели и тем понятнее ей устройство дома.
Скрипты Home Assistant становятся инструментами для LLM
Для LLM-based Conversation Agents скрипты Home Assistant имеют особое значение. Они не просто передаются модели как обычные сущности. Home Assistant может представить открытый скрипт как инструмент, который агент способен вызвать.
Это позволяет вместо доступа к множеству низкоуровневых устройств дать модели одну строго заданную операцию.
вместо предоставления модели прямого доступа к нескольким реле, термостатам и клапанам можно создать проверенный сценарий script.night_mode. Сам Home Assistant выполняет заранее определённую последовательность, а LLM лишь принимает решение вызвать этот инструмент.
Описание скрипта должно быть понятным. По нему LLM определяет, для чего предназначен инструмент и когда его следует использовать.
Насколько безопасно давать локальному ИИ доступ к дому
Локальная модель решает проблему передачи запросов внешнему AI-провайдеру, но не отменяет другие риски. LLM может неверно интерпретировать фразу, выбрать неподходящий инструмент или сформировать ошибочный ответ.
- открывайте минимально необходимое количество сущностей;
- не используйте LLM как единственный уровень защиты оборудования;
- критичные действия реализуйте через проверенные Home Assistant scripts или штатную автоматику;
- не выставляйте inference API наружу;
- при разделении сети разрешите только необходимые соединения между Home Assistant и LLM server;
- не помещайте секреты и пароли в system prompt;
- проверяйте обновления inference server и Home Assistant;
- сохраняйте обычное ручное управление инженерными системами.
Типичные ошибки при локальном 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.
Ждут от маленькой модели облачного качества
Локальность, скорость, размер модели и качество приходится балансировать под доступное железо.
Дают ИИ критичные полномочия
Свободный разговорный агент не должен становиться единственным контроллером отопления, электрики или физического доступа.
Какую архитектуру выбрать для дома
Просто попробовать локальный AI
Home Assistant + отдельный Ollama server. Хороший старт, если важна простая установка и хочется быстро проверить несколько моделей.
Гибкий локальный inference
Home Assistant + llama.cpp server. Подходит для тех, кому нужен контроль над запуском модели и прямой OpenAI-compatible API.
Несколько моделей и backend
Home Assistant + LiteLLM + локальные inference servers. Полезно, если модели находятся на разных машинах или нужно централизовать маршрутизацию.
Полностью локальный голосовой 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 не как новый контроллер умного дома, а как дополнительный интерфейс поверх уже правильно построенной локальной автоматики.
