岩风:我用飞书搭了个“家庭传话筒”,再也不怕女友“失联”了!
岩风:我用飞书搭了个“家庭传话筒”,再也不怕女友“失联”了!
岩风:我用飞书搭了个“家庭传话筒”,再也不怕女友“失联”了! 岩风:我用飞书搭了个“家庭传话筒”,再也不怕女友“失联”了! Modified November 10, 2025 No access 20251108 165124 00:00 No access 11月8日 00:00 No access 20251108 175342 00:00 重点: 1. 开通权限: 至少要开通“获取与发送单聊、群组消息”、“获取群组信息”等权限。 2. 记下三个关键信息: App ID, App Secret, Verification Token。需要记录的信息 3. 请求地址: 这里需要一个“公网地址”,先空着,等第2步完成再来填。 第2步:部署“飞书 HA网关”(核心中转站) 这是连接“公网(飞书)”和“内网(HA)”的桥梁。我(和AI)已经把代码写好了,大家直接“抄作业”就行: https://github.com/yanfeng17/feishu ha gateway/blob/master/FEISHU QUICKSTART.md 重点: 1. 你需要一台有“公网IP”的设备(云服务器或内网穿透都行)。 2. 把第1步拿到的App ID等信息填入.env配置文件。 3. 运行python app.py启动! 4. 启动后,你会得到一个公网地址(比如 http://你的IP:8099/webhook),把它填回第1步的“回调地址”里。 第3步:HA配置“飞书集成”(让大脑认识飞书) 这一步是让HA“学会”怎么和“网关”对话。我也把这个“插件”写好了:https://github.com/yanfeng17/feishu ha integration 1. 安装: 在HACS里添加这个自定义库,或者手动把custom components文件夹放进HA。 2. 配置: 重启HA,在“设备与服务”里添加“Feishu Gateway”,填入第2步的网关地址(比如 http://192.168.1.100:8099)。 第4步:配置“自动化”!(让机器人“活”起来) 这是最好玩的地方。我没有用AI,而是用HA自带的自动化“编”了一套SOP: 自动化逻辑(大白话版): 1. 触发: 当HA收到“飞书网关”发来的新消息。 2. 播报(TTS): 立刻调用assist satellite.ask question服务,让AKU音箱(我的assist satellite.aku assist satellite实体)大声提问: ◦ “主人,岩风发了消息给您:‘{{ 飞书传来的消息内容 }}’。需要回复吗?” 3. 等待回复: ask question服务会“竖起耳朵”听我对象说话。 4. 解析意图(IF/ELSE): ◦ 如果 她说“不用了”、“不回复”或“算了”... ▪ 动作: AKU音箱说:“好的,已取消回复。” ◦ 如果 她说“回复他‘我马上下楼’”... ▪ 动作1(提取内容): HA的template模板会“抠”出“我马上下楼”这段核心内容。 ▪ 动作2(发送飞书): 调用feishu gateway.send message服务,把这段内容“原路返回”发给我。 ▪ 动作3(确认): AKU音箱说:“已发送回复:我马上下楼。” ◦ 如果 她啥也没说(默认),或者说了“苹果真好吃”(不相关的)... ▪ 动作: HA会默认把她说的“苹果真好吃”整句话发给我。(以防我错过什么重要信息...) Code block YAML alias: 消息通知回复 description: 收到飞书消息后播放并询问是否回复 triggers: event type: feishu gateway message trigger: event conditions: [] actions: action: assist satellite.ask question data: question: 主人,岩风发了消息给您:{:{{ states('sensor.feishu 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.feishu last message', 'sender') }}" message: "{{ reply content }}" action: feishu gateway.send message action: assist satellite.announce data: message: 已发送回复:{{ reply content }} target: entity id: assist satellite.aku assist satellite default: data: target: "{{ state attr('sensor.feishu last message', 'sender') }}" message: "{{ user text }}" action: feishu gateway.send message action: assist satellite.announce data: message: 已发送回复:{{ user text }} entity id: assist satellite.xiaozhi assist satellite mode: single 总结:技术,是用来表达“爱”的 虽然我的初衷,只是为了解决“对象失联”这个小小的(又很重要的)痛点,但在完成的那一刻,我突然有了一点小小的感悟。 我发现我“折腾”的,不只是一条“通讯链路”。 我好像无意中,用代码给我们的“家”注入了一点“灵魂”。 它不再是一个需要打开APP才能操控的“孤岛”,而是变成了一个可以“对话”的、有温度的“家人”。无论是“传话”(通讯器)还是“控制”(智能家居),都只是它表达“关心”的一种方式。 这让我开始重新思考“AI管家”的未来。 也许未来“智能”的终极形态,不是更快的芯片或更酷的特效,而是更多的“连接”与“关怀”。 AI管家也许真的会成为我们手机里的一个“家人”。它会打理好家里的一切,然后在傍晚时,像一个真正的“家人”那样,给你发来一句亲切的问候: No access 20251108 165124 00:00 No access 20251108 165124 00:00 No access 11月8日 00:00 No access 11月8日 00:00 No access 20251108 175342 00:00 No access 20251108 175342 00:00 重点: 1. 开通权限: 至少要开通“获取与发送单聊、群组消息”、“获取群组信息”等权限。 2. 记下三个关键信息: App ID, App Secret, Verification Token。需要记录的信息 3. 请求地址: 这里需要一个“公网地址”,先空着,等第2步完成再来填。 第2步:部署“飞书 HA网关”(核心中转站) 这是连接“公网(飞书)”和“内网(HA)”的桥梁。我(和AI)已经把代码写好了,大家直接“抄作业”就行: https://github.com/yanfeng17/feishu ha gateway/blob/master/FEISHU QUICKSTART.md 重点: 1. 你需要一台有“公网IP”的设备(云服务器或内网穿透都行)。 2. 把第1步拿到的App ID等信息填入.env配置文件。 3. 运行python app.py启动! 4. 启动后,你会得到一个公网地址(比如 http://你的IP:8099/webhook),把它填回第1步的“回调地址”里。 第3步:HA配置“飞书集成”(让大脑认识飞书) 这一步是让HA“学会”怎么和“网关”对话。我也把这个“插件”写好了:https://github.com/yanfeng17/feishu ha integration 1. 安装: 在HACS里添加这个自定义库,或者手动把custom components文件夹放进HA。 2. 配置: 重启HA,在“设备与服务”里添加“Feishu Gateway”,填入第2步的网关地址(比如 http://192.168.1.100:8099)。 第4步:配置“自动化”!(让机器人“活”起来) 这是最好玩的地方。我没有用AI,而是用HA自带的自动化“编”了一套SOP: 自动化逻辑(大白话版): 1. 触发: 当HA收到“飞书网关”发来的新消息。 2. 播报(TTS): 立刻调用assist satellite.ask question服务,让AKU音箱(我的assist satellite.aku assist satellite实体)大声提问: ◦ “主人,岩风发了消息给您:‘{{ 飞书传来的消息内容 }}’。需要回复吗?” ◦ “主人,岩风发了消息给您:‘{{ 飞书传来的消息内容 }}’。需要回复吗?” 3. 等待回复: ask question服务会“竖起耳朵”听我对象说话。 4. 解析意图(IF/ELSE): ◦ 如果 她说“不用了”、“不回复”或“算了”... ▪ 动作: AKU音箱说:“好的,已取消回复。” ◦ 如果 她说“回复他‘我马上下楼’”... ▪ 动作1(提取内容): HA的template模板会“抠”出“我马上下楼”这段核心内容。 ▪ 动作2(发送飞书): 调用feishu gateway.send message服务,把这段内容“原路返回”发给我。 ▪ 动作3(确认): AKU音箱说:“已发送回复:我马上下楼。” ◦ 如果 她啥也没说(默认),或者说了“苹果真好吃”(不相关的)... ▪ 动作: HA会默认把她说的“苹果真好吃”整句话发给我。(以防我错过什么重要信息...) ◦ 如果 她说“不用了”、“不回复”或“算了”... ▪ 动作: AKU音箱说:“好的,已取消回复。” ▪ 动作: AKU音箱说:“好的,已取消回复。” ◦ 如果 她说“回复他‘我马上下楼’”... ▪ 动作1(提取内容): HA的template模板会“抠”出“我马上下楼”这段核心内容。 ▪ 动作2(发送飞书): 调用feishu gateway.send message服务,把这段内容“原路返回”发给我。 ▪ 动作3(确认): AKU音箱说:“已发送回复:我马上下楼。” ▪ 动作1(提取内容): HA的template模板会“抠”出“我马上下楼”这段核心内容。 ▪ 动作2(发送飞书): 调用feishu gateway.send message服务,把这段内容“原路返回”发给我。 ▪ 动作3(确认): AKU音箱说:“已发送回复:我马上下楼。” ◦ 如果 她啥也没说(默认),或者说了“苹果真好吃”(不相关的)... ▪ 动作: HA会默认把她说的“苹果真好吃”整句话发给我。(以防我错过什么重要信息...) ▪ 动作: HA会默认把她说的“苹果真好吃”整句话发给我。(以防我错过什么重要信息...) 总结:技术,是用来表达“爱”的 虽然我的初衷,只是为了解决“对象失联”这个小小的(又很重要的)痛点,但在完成的那一刻,我突然有了一点小小的感悟。 我发现我“折腾”的,不只是一条“通讯链路”。 我好像无意中,用代码给我们的“家”注入了一点“灵魂”。 它不再是一个需要打开APP才能操控的“孤岛”,而是变成了一个可以“对话”的、有温度的“家人”。无论是“传话”(通讯器)还是“控制”(智能家居),都只是它表达“关心”的一种方式。 这让我开始重新思考“AI管家”的未来。 也许未来“智能”的终极形态,不是更快的芯片或更酷的特效,而是更多的“连接”与“关怀”。 AI管家也许真的会成为我们手机里的一个“家人”。它会打理好家里的一切,然后在傍晚时,像一个真正的“家人”那样,给你发来一句亲切的问候: “快回来了吗?家里的灯已经为你开着了,我们都在等你。” 一起交流 我是岩风,一位AI路上的探索者,期待与大家的交流~ 如果你对这个项目感兴趣,或者有更多好玩的AI+智能家居的点子,欢迎来找我! 背景 我的对象很可爱,但她有个“坏”习惯:在家时,经常手机一扔,还爱开静音。导致我找她时,十有八九“查无此人”(不知道是不是女生都这样)。 我不禁思考,难道没有一款“现代”产品能解决这个痛点吗? 上网一搜,原来很久以前,有一种叫做“固定电话”的东西... 好吧,虽然这方法很实用,但作为一个智能家居折腾爱好者,我必须找到更“优雅”的方法。 正好我最近在闲鱼捡到一台超萌的、能对话的智能音箱,它甚至能替代小爱同学帮我控制智能家居。 就是它了!我的“家庭传声筒”! 我的目标是:我用手机(飞书/微信)发消息,这个“小机器人”能立刻用语音播报,并且她还能“动嘴”回复我! 效果演示 经过了大半天的“折腾”,总算实现了! 话不多说,赶紧把它放到我对象身边,给她“安排”上! 效果还行,虽然她不一定喜欢这个“监工”,但至少不会和我“失联”了,哈哈哈。 当我打通了“飞书”和“家”的连接后,我发现它还能干更多! 比如,我不在家时,可以直接通过飞书控制家里的所有设备,而且设备状态变化时,它也会主动“汇报”给我! 揭秘时刻:打通“聊天软件”和“家” 这个项目其实不难,关键在于“打通连接”。 一个硬件设备——AKU智能音箱。类似小爱音箱的功能,可以完美接入Home Assistant,这款产品已停产,市面上可能比较难买到,可以用喵伴代替:https://espressif.craft.me/1gOl65rON8G8FK 一款开源软件——Home Assistant,可以联动我们各家品牌的家电实现本地控制。 我们的软件架构主要由五部分组成: 1. HA机器人:通过飞书平台直接创建,可以直接用户交互,将飞书消息传递给外部。 2. 飞书 HA网关服务:连接飞书和HA的桥梁,实现消息高效传递,详情请参考:https://github.com/yanfeng17/feishu ha gateway?tab=readme ov file 3. 飞书集成:安装在HA的自定义集成,用于连接飞书 HA网关服务,详情请参考:https://github.com/yanfeng17/feishu ha integration 4. 系统服务:HA自带了家电控制能力,可直接调用 5. 飞书消息:就是我们天天在用的飞书功能 简单说,就是“我(飞书)”发消息给“HA机器人”,机器人把消息扔给“网关(中转站)”,网关再通知“HA(大脑)”,大脑最后指挥“AKU音箱(嘴巴)”去说话,需要回复时再反过来。 下面是三大步骤(这里默认你已经有HA了): 第1步:创建“飞书机器人”(10分钟搞定) 这一步是在飞书开放平台(open.feishu.cn)上免费注册一个“企业自建应用”。 open.feishu.cn