岩风:后续来了!不到400元给外婆造AI管家,保姆级复刻教程
岩风:后续来了!不到400元给外婆造AI管家,保姆级复刻教程
岩风:后续来了!不到400元给外婆造AI管家,保姆级复刻教程 岩风:后续来了!不到400元给外婆造AI管家,保姆级复刻教程 Modified December 10, 2025 除了配置HA里的集成,我们还需要安装一个网关服务软件作为桥梁打通两个系统,并在飞书/钉钉中添加相应的机器人服务,从而实现通讯软件和HA的对接(微信尚未推出机器人功能,因此当前无法接入) 飞书版本: 可参考岩风:我用飞书搭了个“家庭传话筒”,再也不怕女友“失联”了! 钉钉版本: 网关安装方法:https://github.com/yanfeng17/dingtalk ha gateway 机器人配置方法:https://open.dingtalk.com/document/dingstart/robot application overview 🚀 第五关:功能场景配置(核心篇) 终于来到了最激动人心的环节!至此你已经完成了所有模块的搭建。 现在,我们可以通过 自动化 (Automation) 脚本,将硬件、AI和通讯软件串联起来。 以下是核心场景的配置逻辑与代码,你可以直接复制到 Home Assistant 的 automations.yaml 中,稍作修改即可使用。 场景说明 1. 老人与家人联系场景 AI应用要点: 本场景只涉及语音识别和语音播报,可调用不同的AI语音模型api,实现方言和外国语言的切换 老人与家人联系场景 老人联系家人工作流: Code block YAML alias: 0 联络亲人 (最终正确版) description: 通过语音助手给儿子发钉钉消息 triggers: command: 告诉我儿子{message} 给儿子发个消息说{message} 问下我儿子{message} 给儿子说{message} 帮我给儿子带个话{message} 给儿子发{message} 问1下我儿子{message} 问一下我儿子{message} trigger: conversation conditions: [] actions: action: dingtalk gateway.send message metadata: {} data: target: "01250507064821552237" message: "{{ trigger.slots.message }}" action: assist satellite.announce metadata: {} data: message: 好的,已经给您儿子发消息了。 preannounce: true target: entity id: assist satellite.aku assist satellite mode: single 家人联系老人工作流: Code block YAML alias: 0 钉钉消息回复 description: 收到钉钉消息后播放并询问是否回复 triggers: event type: dingtalk gateway message trigger: event conditions: condition: template value template: "{{states('sensor.dingtalk last message') != \"我妈在干嘛\"}}" actions: action: assist satellite.ask question data: question: 奶奶,{{ state attr('sensor.dingtalk last message', 'sender name')}}发了消息给您: {{states('sensor.dingtalk last message') }}。需要回复吗? entity id: assist satellite.aku assist satellite response variable: answer variables: user text: "{{ answer.sentence | lower | trim }}" choose: conditions: condition: template value template: | {{ user text in ['不需要', '不用了', '算了', '取消', '不回复', '不用', '不'] }} sequence: action: assist satellite.announce data: message: 好的,已取消回复 target: entity id: assist satellite.aku assist satellite conditions: condition: template value template: | {{ user text.startswith('回复') or user text.startswith('发送') or user text.startswith('告诉他') or user text.startswith('需要回复') }} sequence: variables: reply content: | {% set text = user text %} {% if text.startswith('需要回复他') %} {{ text[5:] | trim }} {% elif text.startswith('需要回复') %} {{ text[4:] | trim }} {% elif text.startswith('回复他') %} {{ text[3:] | trim }} {% elif text.startswith('回复') %} {{ text[2:] | trim }} {% elif text.startswith('发送给他') %} {{ text[4:] | trim }} {% elif text.startswith('发送他') %} {{ text[3:] | trim }} {% elif text.startswith('发送') %} {{ text[2:] | trim }} {% elif text.startswith('告诉他') %} {{ text[3:] | trim }} {% elif text.startswith('告诉') %} {{ text[2:] | trim }} {% else %} {{ text }} {% endif %} data: target: "{{ state attr('sensor.dingtalk last message', 'sender') }}" message: "{{ reply content }}" action: dingtalk gateway.send message action: assist satellite.announce data: message: 已发送回复:{{ reply content }} target: entity id: assist satellite.aku assist satellite default: action: dingtalk gateway.send message data: target: "{{ state attr('sensor.dingtalk last message', 'sender')}}" message: "{{ user text }}" action: assist satellite.announce data: message: 已发送回复:{{ user text }} target: entity id: assist satellite.aku assist satellite mode: single 2. 钉钉询问老人状态场景 AI应用要点: 本场景需要设置合适的提示词,确保AI回复的结果不会涉及老人隐私,同时根据老人状态向子女提出建议 钉钉询问老人状态场景 Code block YAML alias: 0 我妈在干嘛 description: 收到钉钉消息后查询老人状态 triggers: event type: dingtalk gateway message trigger: event context: {} conditions: condition: template value template: "{{states('sensor.dingtalk last message') == \"我妈在干嘛\"}}" actions: action: camera.snapshot metadata: {} data: filename: /config/www/zaiganma.jpg target: entity id: camera.yanfeng action: ai task.generate data metadata: {} data: 老人离回家提醒钥匙场景 智能吃药提醒场景 老人未正常起床场景 岩风:我用飞书搭了个“家庭传话筒”,再也不怕女友“失联”了! 除了配置HA里的集成,我们还需要安装一个网关服务软件作为桥梁打通两个系统,并在飞书/钉钉中添加相应的机器人服务,从而实现通讯软件和HA的对接(微信尚未推出机器人功能,因此当前无法接入) 飞书版本: 可参考岩风:我用飞书搭了个“家庭传话筒”,再也不怕女友“失联”了! 岩风:我用飞书搭了个“家庭传话筒”,再也不怕女友“失联”了! 钉钉版本: 网关安装方法:https://github.com/yanfeng17/dingtalk ha gateway 机器人配置方法:https://open.dingtalk.com/document/dingstart/robot application overview 🚀 第五关:功能场景配置(核心篇) 终于来到了最激动人心的环节!至此你已经完成了所有模块的搭建。 现在,我们可以通过 自动化 (Automation) 脚本,将硬件、AI和通讯软件串联起来。 以下是核心场景的配置逻辑与代码,你可以直接复制到 Home Assistant 的 automations.yaml 中,稍作修改即可使用。 场景说明 1. 老人与家人联系场景 AI应用要点: 本场景只涉及语音识别和语音播报,可调用不同的AI语音模型api,实现方言和外国语言的切换 老人与家人联系场景 老人与家人联系场景 老人联系家人工作流: Code block YAML alias: 0 联络亲人 (最终正确版) description: 通过语音助手给儿子发钉钉消息 triggers: command: 告诉我儿子{message} 给儿子发个消息说{message} 问下我儿子{message} 给儿子说{message} 帮我给儿子带个话{message} 给儿子发{message} 问1下我儿子{message} 问一下我儿子{message} trigger: conversation conditions: [] actions: action: dingtalk gateway.send message metadata: {} data: target: "01250507064821552237" message: "{{ trigger.slots.message }}" action: assist satellite.announce metadata: {} data: message: 好的,已经给您儿子发消息了。 preannounce: true target: entity id: assist satellite.aku assist satellite mode: single Code block YAML alias: 0 联络亲人 (最终正确版) description: 通过语音助手给儿子发钉钉消息 triggers: command: 告诉我儿子{message} 给儿子发个消息说{message} 问下我儿子{message} 给儿子说{message} 帮我给儿子带个话{message} 给儿子发{message} 问1下我儿子{message} 问一下我儿子{message} trigger: conversation conditions: [] actions: action: dingtalk gateway.send message metadata: {} data: target: "01250507064821552237" message: "{{ trigger.slots.message }}" action: assist satellite.announce metadata: {} data: message: 好的,已经给您儿子发消息了。 preannounce: true target: entity id: assist satellite.aku assist satellite mode: single 家人联系老人工作流: 2. 钉钉询问老人状态场景 AI应用要点: 本场景需要设置合适的提示词,确保AI回复的结果不会涉及老人隐私,同时根据老人状态向子女提出建议 钉钉询问老人状态场景 钉钉询问老人状态场景 钉钉询问老人状态场景 钉钉询问老人状态场景 老人离回家提醒钥匙场景 老人离回家提醒钥匙场景 老人离回家提醒钥匙场景 老人离回家提醒钥匙场景 智能吃药提醒场景 智能吃药提醒场景 老人未正常起床场景 老人未正常起床场景 7. 老人跌倒场景 AI应用要点: 与老人起身通知场景思路基本一致,当有人移动时会触发AI分析,人离开后AI分析停止 No access 老人跌倒场景 00:00 No access 老人跌倒场景 00:00 8. 文字识别场景 AI应用要点: 摄像头提供的图片清晰度对AI分析影响较大,有条件建议选择高分辨率可变焦摄像头 No access 文字介绍场景 00:00 No access 文字介绍场景 00:00 No access 催泪央视公益广告:常回家看看……小时候看不懂,现在却泪流满面 00:00 No access 催泪央视公益广告:常回家看看……小时候看不懂,现在却泪流满面 00:00 总结 至此,一个具备了 亲情沟通、生活辅助、安全守护 三大能力的AI管家就诞生了。 在这个项目中,AI不再是冷冰冰的代码,而是变成了儿女不在身边时,那双替我们看护的眼睛,那个替我们叮嘱的声音。 文章发布后,有许多小伙伴给出了珍贵的反馈,其中一条让我深有共鸣:“科技可以改善独居老人的生活质量,但始终无法彻底治愈内心的孤独。” 是啊,再智能的管家,也比不上子女的一通电话、一次回家。科技是辅助,爱才是核心。就像那支经典的公益广告,小时候不明所以,长大后才听懂了其中的渴望: 一起交流 我是岩风,一位AI+智能家居领域的探索者。 如果你对这个项目感兴趣,或者有更多好玩的AI+智能家居的点子,欢迎来找我! 前言 上个月,我分享了参赛作品岩风:硬核DIY:不到400元,我给85岁外婆造了个AI管家,原本只是想抛砖引玉,没想到引起了大家对“AI养老”的强烈共鸣。 岩风:硬核DIY:不到400元,我给85岁外婆造了个AI管家 很多朋友都在私信我:“岩风,这个系统到底怎么搭?小白能行吗?” 今天,承诺的详细教程来了!无论你是想为家中长辈尽一份孝心,还是想探索AI落地的新玩法,这篇教程都将带你从零开始,打造一个有温度的AI管家。 💡 项目缘起:当AI遇见“银发守护” 最初是看到了魔搭举办的这个AI比赛,目光顿时锁定在了“银发守护”这一场景,因为想到了我那85岁,独自生活的外婆。虽然子女常去探望,但漫长的独居时光里,她仍然面临着很多老年人共同的痛点。 作为一个一直在探索“AI+智能家居”的开发者,我不禁产生了一个新的思考: 既然AI能让年轻人更舒服地“偷懒”,为什么不能帮老年人解决真正的“难题”? 某种意义上,年轻人使用智能家居是为了“省力”——把能做的事交给设备去代劳;而老年人使用智能家居,本质上是为了“赋能”——借助科技的拐杖,去独立完成那些力不从心的小事。 带着这个初衷,我才利用开源系统 Home Assistant (HA) 结合AI视觉能力,构建了这套成本低廉、隐私安全且无需老人学习的守护系统。 🛠️ 教程说明:AI管家的进阶之路 本项目的核心挑战,在于搭建一套能让AI在其中“穿针引线”、无缝连通老人与家人的完整系统。 必须承认,要点亮技能树的所有节点并不容易,涉及硬件、网络、AI等多个环节。因此,我将繁杂的开发过程拆解为了五层闯关模式,请大家带上一点点耐心和探索欲,我们开始闯关! 🧱 第一关:三大硬件准备 本项目用到的硬件设备为以下三个,遵循“低成本、利旧”原则,购入价分别为50+66+228=344元。 1. 音箱 a. 功能:作为AI管家的耳朵和嘴巴,接收和播报语音内容 b. 型号推荐: i. AKU智能音箱(本次使用):闲鱼50 100元左右,原为其他公司的库存淘汰产品,需刷机使用,刷机教程:https://mp.weixin.qq.com/s/vf4uUhGf5mgldwnDaxdc8w ii. 喵伴:官价299元,原为AI玩具产品,介绍链接:https://espressif.craft.me/1gOl65rON8G8FK,需刷机使用,刷机教程:https://github.com/RealDeco/xiaozhi esphome iii. Home Assistant Voice:淘宝官价386元,官方产品,无需刷机,推荐入门玩家使用 喵伴 Home Assistant Voice a. 功能:作为AI管家的耳朵和嘴巴,接收和播报语音内容 b. 型号推荐: i. AKU智能音箱(本次使用):闲鱼50 100元左右,原为其他公司的库存淘汰产品,需刷机使用,刷机教程:https://mp.weixin.qq.com/s/vf4uUhGf5mgldwnDaxdc8w ii. 喵伴:官价299元,原为AI玩具产品,介绍链接:https://espressif.craft.me/1gOl65rON8G8FK,需刷机使用,刷机教程:https://github.com/RealDeco/xiaozhi esphome iii. Home Assistant Voice:淘宝官价386元,官方产品,无需刷机,推荐入门玩家使用 喵伴 Home Assistant Voice i. AKU智能音箱(本次使用):闲鱼50 100元左右,原为其他公司的库存淘汰产品,需刷机使用,刷机教程:https://mp.weixin.qq.com/s/vf4uUhGf5mgldwnDaxdc8w ii. 喵伴:官价299元,原为AI玩具产品,介绍链接:https://espressif.craft.me/1gOl65rON8G8FK,需刷机使用,刷机教程:https://github.com/RealDeco/xiaozhi esphome iii. Home Assistant Voice:淘宝官价386元,官方产品,无需刷机,推荐入门玩家使用 喵伴 Home Assistant Voice 喵伴 Home Assistant Voice 喵伴 Home Assistant Voice Home Assistant Voice 2. 摄像头 a. 功能:作为AI管家的眼睛,获取画面内容 b. 型号推荐:所有支持onvif协议的摄像头均可,我购买的型号是TP LINK TL IPC43AN a. 功能:作为AI管家的眼睛,获取画面内容 b. 型号推荐:所有支持onvif协议的摄像头均可,我购买的型号是TP LINK TL IPC43AN 3. 主机 a. 功能:作为AI管家的硬件载体,用于安装Home Assistant,运行整套系统 b. 型号推荐:家里有NAS、树莓派或者旧电脑的可以直接复用设备,自行安装软件,如果没有设备,推荐直接淘宝购买成品小主机,已安装好Home Assistant方便省事 a. 功能:作为AI管家的硬件载体,用于安装Home Assistant,运行整套系统 b. 型号推荐:家里有NAS、树莓派或者旧电脑的可以直接复用设备,自行安装软件,如果没有设备,推荐直接淘宝购买成品小主机,已安装好Home Assistant方便省事 🖥️ 第二关:Home Assistant(HA)系统安装 Home Assistant 是目前全球最活跃的开源智能家居平台,它就像是AI管家的“躯体”,连接所有设备。 • 安装目标:在你的主机上运行 Home Assistant OS。 • 教程指路: ◦ 如果你买了预装好HA的成品盒子,恭喜你,直接跳过此关! ◦ 如果你是自建主机,推荐参考B站视频或社区教程张梦飞:这才叫智能家居!用AI把12个APP变成一个“超级遥控器”。 ◦ 注意:推荐安装 OS版本 而不是 Docker版本,因为OS版对后续插件(Add on)的支持最完善,对新手最友好。 张梦飞:这才叫智能家居!用AI把12个APP变成一个“超级遥控器” ◦ 如果你买了预装好HA的成品盒子,恭喜你,直接跳过此关! ◦ 如果你是自建主机,推荐参考B站视频或社区教程张梦飞:这才叫智能家居!用AI把12个APP变成一个“超级遥控器”。 张梦飞:这才叫智能家居!用AI把12个APP变成一个“超级遥控器” ◦ 注意:推荐安装 OS版本 而不是 Docker版本,因为OS版对后续插件(Add on)的支持最完善,对新手最友好。 🧩 第三关:Home Assistant内部插件安装 系统装好了,现在需要给它安装“APP”来获得超能力。我们需要在 HA 的 Add on Store 和 HACS 中安装以下核心组件: 1. Frigate (NVR) a. 作用:连接摄像头,利用本地CPU/TPU进行基础的人形检测(有人/无人),作为AI分析的“触发器”。 b. 安装参考:https://bbs.hassbian.com/thread 22179 1 1.html a. 作用:连接摄像头,利用本地CPU/TPU进行基础的人形检测(有人/无人),作为AI分析的“触发器”。 b. 安装参考:https://bbs.hassbian.com/thread 22179 1 1.html 2. 飞书/钉钉HA集成 a. 作用:连接飞书/钉钉网关,实现HA与通讯软件的联动 b. 安装方法(根据你的需求选择其一即可): ▪ 飞书HA集成:https://github.com/yanfeng17/feishu ha integration ▪ 钉钉HA集成:https://github.com/yanfeng17/dingtalk ha integration a. 作用:连接飞书/钉钉网关,实现HA与通讯软件的联动 b. 安装方法(根据你的需求选择其一即可): ▪ 飞书HA集成:https://github.com/yanfeng17/feishu ha integration ▪ 钉钉HA集成:https://github.com/yanfeng17/dingtalk ha integration ▪ 飞书HA集成:https://github.com/yanfeng17/feishu ha integration ▪ 钉钉HA集成:https://github.com/yanfeng17/dingtalk ha integration 3. Yanfeng AI Task集成 a. 作用:连接魔搭 (ModelScope) API,让管家拥有理解图片和自然语言的AI大脑(每天有免费调用额度)。 b. 安装方法:https://github.com/yanfeng17/yanfeng ai task a. 作用:连接魔搭 (ModelScope) API,让管家拥有理解图片和自然语言的AI大脑(每天有免费调用额度)。 b. 安装方法:https://github.com/yanfeng17/yanfeng ai task 🌉 第四关:网关安装&飞书/钉钉机器人设置 3. 老人离/回家提醒钥匙场景 AI应用要点: 提供给AI分析的图片如下,实测AI难以根据一张图片判断出门或回家,多轮调试后发现直接判断“图片中人物是在大门的左边还是右边”更加稳定,因此需要根据实际场景修改特定的判断提示词 4. 智能吃药提醒场景 AI应用要点: 当前提示词为:识别图片中的人是否正在进行‘吃药’相关的动作(例如:拿起药盒、倒水服药、喝水、将药片放入嘴中等)。因此若用户只是在画面中做喝水动作,会存在误触发问题,暂时没有更好的解决思路 5. 老人未正常起床场景 AI应用要点: 目前AI判断睡觉的前提是画面中必须看见人的身体,若露出部分过少容易无法识别,所以被子完全遮盖身体,只看到半个脑袋的情况下AI难以准确判断 6. 老人起身通知场景 AI应用要点: 通过frigate的本地模型监测是否有动作(画面是否发生变化),如果翻身会误触发AI分析,不过只要重新静止则会恢复,避免AI持续调用浪费token No access 老人起身通知场景 00:00 No access 老人起身通知场景 00:00