进阶 11 分钟智能家居

Home Assistant + 本地 LLM:保护隐私的智能家居,无需 cloud

云端智能家居系统——Google Home、Alexa、SmartThings——会持续将有关您家中情况的信息片段发送到远程服务器。用于智能家居的本地 LLM 则改变了这一隐私局面:您的 Home Assistant 服务器控制灯具和恒温器,Ollama 模型将您的请求转化为操作,所有数据都留在本地网络内。本指南介绍如何具体连接 Ollama 与 Home Assistant、选择哪种轻量级模型以将延迟保持在两秒以内,以及您在隐私保护方面实际能获得哪些收益。

作者: Mohamed Meguedmi·更新于 2026-08-27·已在 Windows、macOS 和 Linux 上测试

#为什么要在智能家居中使用本地 LLM?

在传统云设备上,每句语音都会被发送到远程服务器进行转录、理解并执行。转录内容会被保留,有时还会交由外包方用于模型训练,制造商也能够知道您何时回家、何时打开房间灯光、何时播放晚间歌单。对许多家庭而言,这种过度向第三方泄露的信息是不可接受的。

Home Assistant 从根源上解决了这个问题:它是一个开源平台,运行在您自己的硬件上,并在本地与智能设备通信(Zigbee、Z-Wave、Matter、MQTT)。通过 Ollama 为它添加本地 LLM 后,您就能获得一个能够理解自由表达的指令(“将客厅的暖气温度调低两度”、“关闭底层的所有灯”)的助手,整个过程中任何音频或指令都不会离开局域网。

真正的隐私保护
不会向第三方发送使用数据,也不会根据您的使用习惯建立广告画像。
离线运行
即使互联网中断或云服务提供商发生故障,您的智能家居仍会响应指令。
可预测延迟
无需往返数据中心;延迟仅取决于您的本地设备。
完全控制权
您可自行选择模型,随时更新,当有更优模型时可直接替换。
i
用两句话介绍 Home Assistant
这是一个用 Python 编写的服务器程序,将数百种智能家居集成汇集到同一个界面中。只需几分钟即可将其部署到 Raspberry Pi、NUC、迷你 PC 或 Docker 容器中,而且它无需依赖任何在线服务即可运行。

#先决条件

本地 AI 套件

只需 1 小时,即可在您的电脑上拥有专属的免费 ChatGPT — LM Studio、Ollama、Open WebUI、您的文档,无需云端。

  • 在线空间,终身可用
  • PDF + 文件
  • 终身更新
已部署 Home Assistant
最低版本 2024.6(包含原生 Ollama 集成)。理想情况下使用最新稳定版。HA OS、HA Container 或 HA Supervised 均适用。
一台用于 Ollama 的机器
如果运行 HA 的机器性能足够强,Ollama 可以与 HA 在同一台机器上运行,也可以在局域网内的一台独立 PC 上运行。Mac mini M4、NUC i7 或配备至少 8 GB 显存 GPU 的 PC 都能很好地胜任。
Ollama 已安装
守护进程在端口 11434 上运行。请使用 curl http://localhost:11434 检查——响应应为 Ollama is running。如果尚未安装,请先按照本站的 Ollama 安装指南操作。
稳定的局域网
理想情况下,HA 和 Ollama 应位于同一 VLAN,Ollama 服务器应使用固定 IP 地址。两者之间必须开放 11434 端口。
合适的模型
我们接下来就会讲到这一点。现阶段,请记住:需要一个支持 tool calling(工具调用)的模型。
!
仅使用 Raspberry Pi 5 就够了吗?
一台配备 8 GB 内存的 Pi 5 可以同时运行 Home Assistant,并在 CPU 上运行一个 3B 小模型来处理简短命令——但延迟很快就会升高(每次请求 4–8 秒)。为了让家人使用起来更流畅,请安排一台机器专门运行 Ollama,将 Pi 留给 HA。如果想把所有功能集中在一起,请参阅 Raspberry Pi 5 上运行 LLM 的指南。

#轻量级模型,适用于智能家居指令

智能家居场景下,合适的模型未必是参数最大的:它必须(1)正确支持工具调用以调用Home Assistant服务,(2)能流利使用法语,(3)响应速度快。3B至8B参数的Q4_K_M模型是最佳选择。

Qwen 3.5 9B(Q4_K_M,约 6.6 GB 显存)
2026 年 8 GB 显存配置的标杆选择。工具调用可靠,法语表现出色,支持视觉和 256k 上下文,在 GPU 上的延迟也较为合理。这是智能家居的良好起点。
Granite 4.2 8B(Q4_K_M,约5.3 GB VRAM)
IBM,Apache 2.0,支持 128k 上下文,非常节省 token。工具调用可靠且简洁:如果 Qwen 执行您的指令时出现偏差,这是一个不错的替代选择。
Granite 4.2 3B(Q4_K_M,约需 2.2 GB 显存)
适用于配置较低的设备(Pi 5、无 GPU 的 NUC)。资源消耗很低,支持工具调用,但处理复杂指令时可靠性较低——请使用简短、明确的语句。
Gemma 4 12B(Q4_K_M,约 7.6 GB 显存)
适合拥有 RTX 3060 12 GB 或更好显卡的用户。支持多模态,采用 Apache 2.0 许可证,对模糊指令(“在客厅营造温馨氛围”)和上下文的理解有明显提升。
Mistral Small 24B (Q4_K_M, ~14 GB VRAM)
法语能力和通用任务表现都很出色,仅适用于显存为 16 GB 及以上的显卡。除了严格控制家居设备外,也能轻松进行内容丰富的对话。
→
推荐量化方式:Q4_K_M
在智能家居场景中,Q4_K_M 在显存占用与质量之间提供了最佳平衡。无需提高到 Q5 或 Q8:对于简短且结构化的指令,差异看不出来。将较高精度的量化留给自由对话或 RAG。

#1. 将 Ollama 连接到 Home Assistant

Home Assistant 自 2024.6 版本起正式集成 Ollama,可通过界面完全配置,无需修改 configuration.yaml 文件。

  1. 01
    在 Ollama 端拉取模型
    在运行 Ollama 的机器上,执行以下 shell 命令。下载大小根据所选模型约为 3-5 GB。
终端 — 运行 Ollama 的机器
ollama pull qwen3.5:9b
ollama list  # vérifier que le modèle apparaît
  1. 01
    使 Ollama 在局域网中可访问
    默认情况下,Ollama 仅在 localhost 上监听。为了让 Home Assistant(可能运行在另一台设备上)能够调用它,请让该服务在所有网络接口上监听。
Linux/macOS — 在局域网中暴露 Ollama
# systemd (Linux)
sudo systemctl edit ollama
# ajouter dans le bloc [Service]
# Environment="OLLAMA_HOST=0.0.0.0:11434"
sudo systemctl restart ollama

# macOS (lancement manuel ou launchctl)
launchctl setenv OLLAMA_HOST "0.0.0.0:11434"
# puis relancer Ollama
  1. 01
    在 Home Assistant 中添加集成
    设置 > 设备与服务 > 添加集成 > 搜索“Ollama”。
  2. 02
    填写URL
    URL : http://IP-DU-SERVEUR-OLLAMA:11434 (例如:http://192.168.1.42:11434). 若 Ollama 与 HA Container 运行在同一台机器上,请使用 http://host.docker.internal:11434.
  3. 03
    选择模型
    Home Assistant 会自动查询 Ollama 并显示可用模型列表。请选择 qwen3.5:9b。
  4. 04
    启用控制(Control Home Assistant)
    在集成选项中,勾选「Control Home Assistant」。这使得LLM能够调用服务(如开关设备、调节温度)。若未勾选,LLM仅能进行对话。
!
默认情况下,Ollama 不开启认证
Ollama 没有内置身份验证。如果您在局域网上开放 11434 端口,请确保路由器不会把该端口暴露到互联网。若要进一步加强访问控制,可将 Ollama 放在启用基本身份验证的反向代理(Caddy、nginx)后面,或在防火墙中按 IP 限制访问。

#2. 向助手开放适当的实体

Home Assistant 有时会管理数百个实体(传感器、插座、灯泡、视图、自动化等)。将所有实体发送给大语言模型会耗尽上下文并干扰模型推理。技巧在于:仅暴露助手实际需要控制的内容。

  1. 01
    设置 > 语音 > 暴露
    这里列出了所有实体。启用助手需要控制的实体:灯光、温控器、插座、卷帘。禁用内部传感器(如树莓派的内存、Zigbee 信号等),这些对人类用户没有用处。
  2. 02
    用自然语言重新命名
    像 light.salon_lampe_principale_zigbee_3 这样的实体名称很难看懂。请将其重命名为“客厅主灯”。使用便于人理解的名称,LLM 就能更可靠地选中正确的实体。
  3. 03
    按区域分组
    为每个实体分配一个区域(客厅、厨房、卧室等)。LLM即可理解「关闭客厅的灯」,而无需手动列出每盏灯。
  4. 04
    测试
    在设置 > 语音 > 助手中,点击您的 Ollama 流水线的聊天图标,然后尝试:“卧室的温度是多少?”接着尝试:“打开客厅的主灯”。
→
合理限制:最多暴露30至50个实体
超过这一数量后,7–8B 参数的模型就开始混淆相似的实体(如「床头灯」与「书桌灯」)。如果您有 200 个灯泡,请使用 HA 的区域和分组,而不是逐个开放实体。

#3. 100% 本地语音流水线(可选)

如果您希望以语音方式发言(而非在HA应用中输入文本),Assist可实现语音识别 → LLM → 语音合成的本地链路,无需依赖Google或Amazon。

唤醒词 — openWakeWord
HA 官方附加组件。在 Pi 或 ESP32 卫星设备(Atom Echo、M5Stack)上检测唤醒词(“Hey Jarvis”、“Nabu”)。
STT(语音转文本)——Whisper
基于faster-whisper的官方HA插件。tiny或base模型足以处理简短的法语指令。在性能尚可的CPU上,转录耗时约1–2秒。
LLM — Ollama (已配置)
接收语音转录,调用合适的 HA 工具,返回确认语句。
TTS(文本转语音)—— Piper
Home Assistant 官方附加组件。提供原生法语语音(fr_FR-siwis-medium、fr_FR-tom-medium)。速度很快,每句话约需 200 毫秒。

安装并启动四个插件后,可在“设置 > 语音 > 助手”中配置处理流程:选择 Whisper 作为语音识别(STT)组件,选择您配置的 Ollama 集成作为对话智能体,选择 Piper 作为文本转语音(TTS)组件。此时,您就可以通过语音控制家中的设备,无需任何出站网络连接。

i
无需电脑麦克风的语音卫星设备
刷入 ESPHome 的 ESP32-S3-BOX 或 M5Stack Atom Echo 可成为 Assist 卫星设备:检测唤醒词,将音频发送给 HA,并播放 TTS 回复。成本:20 至 30 欧元。同一住宅内可以同时使用多个卫星设备。

#延迟:本地 vs 云端

这一点常常被忽视。云端并没有什么魔法:每条指令都要往返数据中心,还要在服务器端排队。本地运行则能省去一半的传输路径。

云端(Google/Alexa)
云端语音识别(STT,约 400 毫秒)+ 云端意图识别(约 300 毫秒)+ 经云端执行 Home Assistant(HA)操作(约 200 毫秒)+ 语音合成(TTS,约 300 毫秒)= 平均 1.2–1.8 秒,网络负载高时会更长。
本地 — Pi 5 + 在 CPU 上运行的 3B LLM
STT Whisper tiny(约 800 毫秒)+ LLM 3B(CPU 上约 3–5 秒)+ 动作执行(约 50 毫秒)+ TTS Piper(约 200 毫秒)= 4–6 秒。执行一条指令时尚可接受,但频繁使用时会让人感到沮丧。
本地 — PC + 8B LLM + 8 GB 显存的 GPU
Whisper base(约 400 ms)+ LLM 8B Q4(约 600–900 ms)+ 执行动作(约 50 ms)+ TTS(约 200 ms)= 1.3–1.6 秒。与 Google Home 一样快,无需云端。
本地 — Mac mini M4 24GB
完整管道约 1.1-1.4 秒,得益于集成 GPU 和统一内存。这可能是 24/7 家庭自动化 LLM 最佳的性能/功耗比。
→
保持模型处于加载状态
Ollama 默认在 5 分钟后卸载不活跃的模型。对于智能家居,使用 OLLAMA_KEEP_ALIVE=24h 启动 Ollama——模型将保留在 VRAM 中,且在数小时静默后的第一条命令与第一百条命令响应速度一样快。

#究竟有哪些数据会离开局域网(没有任何数据)

我们来实际验证数据范围。在一个 HA + Ollama + Whisper + Piper 配置良好的环境中:

通过麦克风捕获的音频
通过本地 Whisper 处理。音频不会离开本地网络。
您的语音指令转录成的文本
发送至本地 Ollama。任何转录内容都不会离开本地网络。
您的设备与区域列表
与 Ollama 本地实例共享,以确保调用正确的实体。仍限于局域网(LAN)内。
HA 决策与操作
由HA执行,可直接与本地Zigbee/Z-Wave/Matter/MQTT通信。
Piper 语音回复
本地音频合成。不通过网络获取任何语音合成内容。

唯一可能的出站流量是 Home Assistant(HA)、Ollama 和模型的更新流量——由您决定何时进行更新。如果需要严格限制联网,安装完成后可以切断 HA 主机的互联网连接:所有功能仍可正常运行。

i
自行验证
在您的路由器上(或在主机上使用tcpdump),在使用助手期间筛选并查看HA和Ollama的IP地址产生的出站流量。您将仅看到DNS解析和可能的NTP流量——不会有任何通往第三方AI服务的通信。

#技巧与故障排除

LLM以英文回答
在 Ollama 集成中添加系统提示:“你是家里的智能家居助手。始终用法语回答,只用一句简短的话。”对于 Qwen 3.5 或 Granite 4.2,这条指令就足够了。
它会编造不存在的实体
这是模型太小或实体名称含义不明确的表现。请用自然语言重新命名实体,减少开放的实体数量,或在显存足够时切换到 Gemma 4 12B。
调用了正确的服务,却作用于错误的区域
请检查 HA 中的每个实体是否都已分配「area」。如果没有分配区域,模型就会自行猜测,并在名称相近时出错。
延迟在几小时后迅速下降
Ollama 已将模型从内存中卸载。请设置 OLLAMA_KEEP_ALIVE=24h 后启动服务(如需保持一周,则设置为 168h)。
从 HA 连接时出现 Connection refused
Ollama 仍监听在127.0.0.1上。请检查systemd单元中的OLLAMA_HOST=0.0.0.0:11434,重启服务,并从HA机器使用curl进行测试。
Pi 5 进行 CPU 运算时发热
在 CPU 上运行 LLM 会让 4 个核心的利用率都达到 100%。如果您坚持让所有任务都在树莓派上运行,请加装散热风扇(或使用 Argon ONE V3 树莓派 5 机箱)。否则,请将 Ollama 部署到另一台主机上。
希望将 Ollama 的访问范围限制在局域网内
请监听具体的局域网 IP,而不是 0.0.0.0:11434(例如 OLLAMA_HOST=192.168.1.42:11434)。Ollama 将不再接受来自其他网络接口的连接。

#深入了解

您现在已经有了一个可正常运行、基于本地 LLM 的智能家居助手。以下是一些进一步探索的方向:

在 Linux 上安装 Ollama
如果您希望将一台 Linux 机器专用于 Ollama(24/7 家居自动化最干净的场景),Linux 安装指南涵盖了 systemd、GPU NVIDIA / AMD 以及网络配置。
在 Raspberry Pi 5 上运行 LLM
用于具体评估配备 8 GB 内存的 Pi 5 在仅使用 CPU 时能运行哪些模型,包含以 tokens/sec 衡量的速度基准测试,以及 1–3B 模型的选择建议。
选择量化方式(Q4、Q5、Q8)
了解为什么 Q4_K_M 是智能家居场景中的最佳平衡点,以及何时提高到 Q5_K_M 或降低到 Q3 才合理。
这份指南对您有帮助吗?

有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。