这几天,我做了一件很小、但让我很兴奋的事:把家里一堆原本互不相干的设备,统一接进了一个智能家居中枢。
一开始,它只是一个很具体的问题。
原有的灯控系统入口藏在一个小程序里。每次想开灯、关灯,都要打开小程序,点进设备管理,再一个个切换开关。
它能用,但很别扭。
它没法进入手机自动化、语音助手、智能家居面板,更没法成为 Agent 可以调用的执行工具。
于是我开始抓包。
最后,这套系统变成了这样:
- 通过小程序接口控制十几个灯和门锁 - 空调、插座、除湿机、加湿器、油烟机、音箱等设备接入智能家居中枢 - 不同设备被抽象成统一的实体:灯、开关、温控、传感器、门锁、媒体设备 - 手机快捷指令、语音助手、网页面板、自动化任务、Agent 都能调用同一套接口 - 智能家居中枢负责连接设备、保存状态、暴露服务、执行动作
做完之后,我更强烈地意识到一件事:
AI Agent 真正重要的能力,不只是回答问题、写代码、生成文档,而是能够可靠地进入现实世界,影响物理环境。
从一个开关开始
最早的问题很朴素:我想知道小程序里的每个接口,对应现实中的哪个开关。
我打开抓包工具,把每盏灯都点了一遍。每点一次,就看请求的 URL、Headers、Body。
很快我发现,灯控接口本身并不复杂。核心就是一个 POST 请求,Body 里有设备序列号、开关序列号、通道号和控制命令。
命令也很简单:
cmd = 1 打开cmd = 0 关闭这意味着,只要能拿到有效登录态,就可以把这些动作写成脚本。
我做的第一层封装,是一个命令行工具:
home_switch on 10home_switch off 10home_switch off all然后再把这个命令行工具放进智能家居中枢,用模板实体包装成标准灯光:
light.living_mainlight.kitchenlight.balcony到这里,最重要的一步已经完成了。
一个原本只能在小程序里点的开关,变成了系统里的标准 light 实体。
这不是简单地“写了个脚本”。它意味着这个设备进入了一套统一的控制语义。
标准实体,是智能家居的通用语言
智能家居最麻烦的地方,是设备来源很杂。
不同厂商有不同的云、不同的登录态、不同的 API、不同的 App。单看每个设备,好像都能用;放到一起,就变成一堆互不兼容的孤岛。
中枢的价值,就是把这些孤岛翻译成一套稳定的实体类型:
lightswitchclimatehumidifiernumberselectsensorlockbuttonnotifymedia_player这套抽象非常关键。
对 Agent 来说,它不应该关心一盏灯来自哪个 App、哪个云、哪个小程序。它只需要知道:
turn_on light.living_mainturn_off switch.humidifier_powerset_value number.humidifier_target_humidity 60unlock lock.main_door当设备被标准化之后,自动化、手机快捷指令、语音助手、Agent 都可以使用同一套动作语言。
这才是智能家居进入 Agent 时代的前提。
智能家居中枢是中端,不是终端
很多人会把智能家居中枢理解成一个控制面板。
但做完这次配置后,我越来越觉得,它更像一个中间层服务。
它不是最终交互界面。
最终交互界面可以是:
- 手机快捷指令 - 语音助手 - 网页控制台 - 聊天机器人 - 自己写的 Agent - 定时任务 - 地理围栏自动化
中枢真正负责的是:
- 连接设备 - 统一实体 - 保存状态 - 管理自动化 - 暴露服务 - 作为 Agent 的执行层
这很像后端系统里的 API Gateway。各种前端都可以接进来,但真实的设备控制逻辑在中间层。
这次我把中枢部署在云服务器上,再通过安全隧道暴露服务。这样手机不在家里局域网,也可以直接调用中枢服务。
例如,“关闭客厅主灯”在自动化里只是:
service: light.turn_offdata: entity_id: light.living_main“打开加湿器”也只是:
service: switch.turn_ondata: entity_id: switch.humidifier_power背后的复杂性,都被中间层吃掉了。
设备接入方式会很杂,但出口要一致
这次接入的设备,基本覆盖了智能家居里常见的几种模式。
第一类,是官方或社区集成。
一些设备可以直接接进来,自动生成开关、传感器、温控、媒体设备等实体。这是最舒服的情况。
第二类,是第三方云集成。
设备本身走厂商云,中枢通过云接口把电源、灯光、档位、模式等能力映射出来。
第三类,是设备厂商 App 背后的通用 IoT 云。
有些设备在官方集成里显示为 unsupported,不生成任何实体。但如果直接读取云端 Shadow Property,会发现它其实有完整的能力点:开关、目标湿度、档位、模式、倒计时、附加功能。
于是我把这些能力重新包装成:
switchnumberselectsensor第四类,是完全非标准的小程序系统。
这种没有现成集成,只能抓包、识别接口、处理登录态、写脚本,再包装成实体。
这些方式难度不同,但最后都通向同一个结果:变成中枢里的标准实体。
手机不是遥控器,而是自动化入口
接入中枢之后,手机快捷指令变得很好用。
过去要控制设备,必须打开不同 App。现在可以直接在快捷指令里调用中枢服务。
例如:
service: switch.toggledata: entity_id: switch.kitchen_fan_power这就是“切换厨房设备电源”。
快捷指令的价值不只是手动点击,而是可以和手机本身的自动化能力组合:
- 到家时打开玄关灯 - 离家时关闭全部灯 - 睡前关闭灯、空调、加湿器和厨房设备 - 湿度低于某个值时打开加湿器 - 早上起床时让音箱播报天气
手机不再只是一个遥控器,而是一个自动化入口。
语音助手不应该成为系统中心
语音助手也能接入这套系统,但它在里面的位置需要摆正。
有的音箱可以作为设备进入中枢:播放音乐、播报文本、切换麦克风状态。
有的语音助手更适合作为入口:把中枢里的设备同步过去,让它负责接收自然语言命令。
关键不是某个音箱多强,而是语音助手不应该成为系统中心。
真正的中心是中枢。
语音只是众多输入方式之一。
Agent 需要一个执行层
现在很多人讨论 AI Agent,重点都放在模型、推理、规划、工具调用上。
这些当然重要。
但如果 Agent 要进入现实世界,它必须有一个稳定的执行层。
对智能家居来说,这个执行层就是智能家居中枢。
Agent 可以理解一句自然语言:
我准备睡觉了。
然后规划动作:
- 关闭客厅主灯 - 关闭厨房灯 - 关闭厨房设备 - 把空调调到合适温度 - 把加湿器目标湿度设到某个值 - 确认门锁状态
最后通过标准服务执行:
light.turn_offswitch.turn_offclimate.set_temperaturenumber.set_valuelock.get_state这就是闭环:
感知状态 -> 理解意图 -> 制定计划 -> 调用工具 -> 改变物理世界 -> 再读取状态没有执行层,Agent 只能停留在对话里。
有了执行层,它才真正开始影响现实。
云端和本地,需要重新分工
这次我把中枢放在云端,好处很明显:手机、外部服务、自动化入口都很容易访问。
但也带来一个限制:云服务器默认访问不到家里的局域网设备。
比如光猫、路由器、电视、蓝牙设备、局域网传感器,如果要接进来,就必须打通云端和本地网络。
可以用几类方式:
- 安全组网 - 自建 VPN - 家里常开小主机 - 本地中枢 + 外部安全隧道
我现在的判断是:云端适合连接云 API、手机快捷指令、语音平台和 Agent;本地节点适合连接路由器、光猫、电视、蓝牙、局域网设备和低功耗设备。
更理想的结构可能是:
云端中枢 / Agent 中枢 -> 本地边缘节点 -> 局域网设备 / 蓝牙设备 / 低功耗智能设备可维护性来自抽象层
系统复杂之后,一个自然的问题是:以后搬家、换服务器、换设备怎么办?
答案是:只要抽象层做得对,迁移成本会低很多。
设备层可能变化:
- 新的灯 - 新的路由器 - 新的空调 - 新的传感器 - 新的控制入口
但中枢里的实体和自动化可以保持相对稳定。
例如“睡觉模式”不应该写死某个厂商接口,而应该依赖抽象实体:
light.bedroom_mainswitch.living_ac_powerswitch.humidifier_power只要新环境里的设备重新映射到这些实体,快捷指令、语音控制、Agent 逻辑都可以继续复用。
这就是中间层的价值。
从智能家居到物理世界 API
做完这套东西,我最大的感受是:智能家居不是一个消费电子问题,而是一个物理世界 API 问题。
灯、空调、门锁、油烟机、加湿器、除湿机只是开始。
接下来还可以是:
水电气监控 网络状态 摄像头和门磁 扫地机器人 空气质量 - 电表和能耗
车辆充电 日程和地理围栏
当这些东西都进入一个统一系统后,Agent 就不再只是屏幕里的助手。
它可以知道家里的状态,可以根据人的意图行动,可以在必要时提醒,也可以在明确授权后执行。
但这里有一个前提:不能让模型直接裸连设备。
更合理的方式,是让模型通过一个稳定的中间层,通过明确的权限、实体、服务、日志和状态,去控制现实。
这样才可靠,也方便审计和恢复。
最后
这次调试从一个小程序抓包开始,最后变成了一套家庭控制系统。
过程中有很多琐碎细节:
登录态会过期 - 云 API 会有区域和权限限制
设备可能显示 unsupported 实体 ID 需要重新命名 手机自动化要一个个填 service 和 entity_id 局域网设备需要额外的网络方案
但正是这些细节,让我更清楚地看到:
AI Agent 要真正进入物理世界,最缺的不是一个更会说话的模型,而是一套能把现实设备标准化、可维护、可迁移、可自动化的基础设施。
智能家居中枢不是终点。
它更像一个物理世界的 API 层。
当这个 API 层搭起来之后,Agent 才有了真正可以操作的世界。
夜雨聆风