WiiuPRMm5kk">

  1. 🥀

      🌕😳
      📋
      💈
    • 🤢☕
      😃
      🤤
      🧕
    • 👵

      再见屎山:这次我要用 AI 重塑我的智能家居

      发布时间:2026-02-13 14:37  浏览量:2

      本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:期望氢气球

      最开始玩智能家居的时候,还只有自动化。那时候的逻辑很简单:IF 这个,THEN 那个。

      门打开了 → 开走廊灯日落了 AND 家里有人 → 开客厅灯温度高于 28 度 → 开空调手机连接家里 WiFi → 回家模式

      一条两条还好,几十条堆在一起,问题就来了。

      有些自动化互相冲突,有些条件写得像绕口令,还有些是当时不知道为什么这么写但现在不敢删的神秘代码。

      后来 AI 火了,我又给 Home Assistant 接入了大模型。本以为是如虎添翼,结果是屎上加屎。

      自动化和 AI 两套逻辑并行,说实话大部分情况用起来还不错,但是偶尔是有时候不知道是谁在控制设备,出了问题根本找不到原因。仪表盘上几十个按钮,automation.yaml 几百行代码,我自己都看不懂了。

      这次重装NAS之后,我决定全部推倒重来。

      不再写什么 IF-THEN,不再维护复杂的自动化脚本。

      这次,我要把控制权完全交给 AI。

      要用 AI 控制智能家居,第一步就是确保 API 能正常工作。

      Home Assistant 提供了完整的 REST API,任何程序都可以通过 API 来控制设备。你只需要一个

      Long-Lived Access Token

      import urllib.request import urllib.error import json HA_URL = "http://192.168.0.xxx:8123" # 换成你的地址 TOKEN = "你的token" def api_get(path): """调用 HA API""" req = urllib.request.Request( f"{HA_URL}/api/{path}", headers={ "Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json", }, ) with urllib.request.urlopen(req, timeout=10) as resp: return json.loads(resp.read.decode) # 测试:获取系统配置 config = api_get("config") print(f"Home Assistant 版本: {config['version']}") print(f"实例名称: {config['location_name']}")

      运行成功后,你会看到类似这样的输出:

      Home Assistant 版本: 2026.2.1 实例名称: 我的家

      # 获取所有设备状态 states = api_get("states") # 按类型统计 domains = {} for state in states: domain = state["entity_id"].split(".")[0] domains[domain] = domains.get(domain, 0) + 1 print("设备统计:") for domain, count in sorted(domains.items): print(f" {domain}: {count} 个")

      输出示例:

      设备统计: light: 12 个 sensor: 45 个 switch: 8 个 climate: 2 个 ...

      API 测试通过,接下来就可以让 AI 通过这些接口来控制全屋设备了。

      有了 API,AI 就能:

      读取所有设备状态控制灯光、空调、窗帘执行场景模式根据我的习惯自主学习

      不再写死板的自动化规则,而是让 AI 理解我的意图,自己决定该怎么操作。

      这才是真正的智能家居。

      本文是智能家居 AI 化改造系列的第一篇,后续会继续分享 AI 接入的具体实现。

      🥏🏂

      ♊🌸

      ➕📗

      AYCmDF">

      💒🥖
      🕹
        🚎🚷
        1. 🎛👀

      1. 🦎🏧
      2. 🐚