找回密码
 立即注册

微信扫码登录

搜索
查看: 2021|回复: 63

[插件集成] 家庭广播系统 — 手机PWA按住说话,智能音箱全家播放

[复制链接]

2

主题

36

回帖

300

积分

论坛DIY达人

积分
300
金钱
252
HASS币
40
发表于 2026-7-4 00:09:06 | 显示全部楼层 |阅读模式
本帖最后由 mdj2812 于 2026-7-17 20:47 编辑

解决的问题

家里叫吃饭、喊孩子洗澡,以前得一个个房间跑。小爱音箱自带的全屋广播功能?先喊"小爱同学"→ 等它回应 → 再说"全屋广播"→ 再说内容,三步下来火气比声音先到,而且经常莫名其妙的广播失败。后来用 HA 的 TTS,打字太慢;用微信发语音,还得掏出手机解锁。就想像对讲机那样——按住按钮说话,松手全屋播放。

效果

打开手机浏览器访问一次 → 添加到主屏幕 → 之后就当 App 用:

  • 🟢 每个房间一张卡片,按住圆按钮说话,松手就播
  • 📢 顶部的「全部广播」卡片,一键喊全屋
  • 🟢/⚫ 每个房间名旁有个指示灯,绿色代表音箱在线,灰色离线
  • 录音时按钮变绿 + 波纹扩散动效,发送时有光环绕圈,发送成功显示大对勾
  • 🌐 支持中英文,右上角一键切换

UI 截图

架构


手机PWA → HA 原生集成 → Home Assistant API → 智能音箱
              ↕
    configuration.yaml / UI 配置
   (或 Docker 独立部署,仍支持)

v2.0.0 起推荐使用 HA 原生集成,直接跑在 Home Assistant 里,零额外容器。同时兼容 Docker 独立部署。

Flask 干所有事:收音频、PCM 封 WAV、调 HA 的 media_player.play_media 播放。
不需要 ffmpeg:浏览器原生录音 + 纯 Python PCM→WAV,Docker 镜像只有 131MB。
全屋广播:录一次 → 并行发给所有房间,fire-and-forget。

怎么用

方式一:HA 集成(推荐 · v2.0.0+)

1. 安装(HACS 或手动)

HACS:添加自定义仓库 https://github.com/mdj2812/home-intercom`[/url] → 搜索 "Home Intercom" → 安装。

手动:

cd /config/custom_components
curl -LO [url=https://github.com/mdj2812/home-intercom/releases/latest/download/home_intercom.zip]https://github.com/mdj2812/home- ... d/home_intercom.zip
unzip -o home_intercom.zip -d home_intercom && rm home_intercom.zip
ha core restart

2. 配置

设置 → 设备与服务 → 添加集成 → 搜索 "Home Intercom" → 选择区域、播放器 → 完成。

已有 YAML 配置(configuration.yaml)会自动导入,无需手动迁移。

3. 添加到侧边栏

创建仪表盘 → 添加网页卡片 → URL 填 /home_intercom

方式二:Docker(旧版,仍支持)

git clone https://github.com/mdj2812/home-intercom.git
cd home-intercom

cat > docker/.env << EOF
HA_URL=http://192.168.1.10:8123
HA_TOKEN=你的HA长期令牌
EOF

export IMAGE=ghcr.io/mdj2812/home-intercom:v2.0.0
docker compose -f docker/docker-compose.example.yml up -d

⚠️ Docker 模式下必须配置 HTTPS(Caddy/Nginx 反代),否则浏览器不给麦克风权限。

链接


欢迎 star、提 issue、PR。有任何部署问题直接回帖问我。


ESP32 实体按键已开源


更新

v2.0.0(2026-07-16)— 正式版 🎉

  • 原生 HA 集成:不再依赖 Docker,直接跑在 HA 里。支持 Config Flow(UI 添加房间)、Options Flow(UI 管理参数)、Device Registry(房间自动注册为 HA 设备)
  • 双配置入口:YAML + UI 共存,自动合并,UI 配置优先
  • PWA 认证修复:改用共享密钥认证,Companion App WebView 稳定工作
  • 小爱屏幕修复:播报后自动清除播放信息,不再显示随机云数据
  • HTTP 安全提示:通过非 HTTPS 访问时自动禁用按钮,提示用户切换外部地址
  • 三层播放策略:Music Assistant play_announcementrepeat_set(off) → 定时暂停,根据音箱能力自动选最优方案

image.png image.png image.png

Docker: ghcr.io/mdj2812/home-intercom:v2.0.0
HACS: 添加自定义仓库后一键安装

v1.6.3:房间卡片显示设备名称,离线音箱按钮自动灰显,STATE_TIMEOUT 适配蓝牙/MA 慢设备,UI 翻新。

v1.6.2:门铃提示音——按下对讲话筒先响"叮"再播报。MA 播放器原生支持,标准播放器直接拼进音频。房间可配播报音量、离线音箱自动灰掉。

v1.6.1:三层自动停止。MA 播放器原生 play_announcement → HomePod/Chromecast 用 repeat_set(off) → 小爱等用 PAUSE_BUFFER 可配定时暂停。














评分

参与人数 3金钱 +50 HASS币 +20 收起 理由
admin + 20 + 20 牛而逼之!
rf5 + 10 高手,这是高手!
sorrypqa + 20 高手,这是高手!

查看全部评分

回复

使用道具 举报

14

主题

253

回帖

2153

积分

论坛技术达人

积分
2153
金钱
1886
HASS币
0
发表于 2026-7-4 01:33:21 | 显示全部楼层
我以前也想做一个对讲系统. 后面也用了全屋广播,然后 增加了点技能比如 小爱同学-吃饭....然后其他房间音箱就播放特定内容.
感觉没啥必要 还要按键 和掏手机发微信差不多.
回复

使用道具 举报

0

主题

28

回帖

119

积分

注册会员

积分
119
金钱
91
HASS币
0
发表于 2026-7-4 06:39:13 来自手机 | 显示全部楼层
学习一下
回复

使用道具 举报

46

主题

558

回帖

3812

积分

论坛元老

积分
3812
金钱
3208
HASS币
10
发表于 2026-7-4 13:55:30 | 显示全部楼层
直接iphone快捷方式调用TTS不是更省事,直接喊siri执行快捷方式即可。安卓应该也有类似功能的吧。
回复

使用道具 举报

2

主题

36

回帖

300

积分

论坛DIY达人

积分
300
金钱
252
HASS币
40
 楼主| 发表于 2026-7-4 23:38:00 | 显示全部楼层
xxlxmd 发表于 2026-7-4 01:33
我以前也想做一个对讲系统. 后面也用了全屋广播,然后 增加了点技能比如 小爱同学-吃饭....然后其他房间音箱 ...

首先我要说的是这个项目的关键在于后端,前段的这个网页对于我来说原本其实是个概念验证。后续我是要开发一个实体按钮和麦克风的广播台装置。你可以想象成学校的广播室,一个按钮对应一个房间,按下开始广播。我会另开个帖子来更新那个的进度。目前这个网页我老婆已经在用了,因为她的对于小爱自带的播报功能非常不满意,繁琐并且不可靠,可能是由于要从服务器绕一圈的缘故。所以设计原则就是简单和完全本地化。
虽然整个是从小爱音箱出发的,但是这个可以用于所有HA的media_player,比如已经有个老外用于HomePod了。另外所有支持DLNA的音箱也可以,像我家里的电视条形音箱也能用。
最后关于适应体验,我觉得目前网页版来说主要受益方是收听方,他听着就行了,不用掏手机。还有一个有趣的场景,我比如在外面,我手机连上家里的VPN也可以往家里发广播。比如我下班回家接人出去吃饭,到楼下了我可以直接广播让下楼了,家里在各个房间里的家人就能马上知道然后动身下楼了。
回复

使用道具 举报

2

主题

36

回帖

300

积分

论坛DIY达人

积分
300
金钱
252
HASS币
40
 楼主| 发表于 2026-7-4 23:43:48 | 显示全部楼层
本帖最后由 mdj2812 于 2026-7-4 23:45 编辑
yinghu183 发表于 2026-7-4 13:55
直接iphone快捷方式调用TTS不是更省事,直接喊siri执行快捷方式即可。安卓应该也有类似功能的吧。 ...

TTS不还得打字么。你可以看看我在五楼的回复。
当然我也考虑过快捷方式之类的方式,但还是觉得网页更普世,不管什么设备,只要打开网页就能用,不用上我老婆手机和她的iPad分别配置了。但最后的目标还是实体按钮,摆脱手机终端,这样我娃都可以上手。
回复

使用道具 举报

46

主题

558

回帖

3812

积分

论坛元老

积分
3812
金钱
3208
HASS币
10
发表于 2026-7-5 10:35:58 | 显示全部楼层
mdj2812 发表于 2026-7-4 23:43
TTS不还得打字么。你可以看看我在五楼的回复。
当然我也考虑过快捷方式之类的方式,但还是觉得网页更普世 ...

不用打字,喊siri语音告诉它要对哪个音箱说什么话即可。快捷方式里操作很方便的。
回复

使用道具 举报

26

主题

604

回帖

4371

积分

论坛元老

积分
4371
金钱
3741
HASS币
18
发表于 2026-7-6 09:44:36 | 显示全部楼层
这个项目适合多层大豪斯,小窝直接嚎一嗓子就行
回复

使用道具 举报

21

主题

513

回帖

2451

积分

金牌会员

积分
2451
金钱
1907
HASS币
40
发表于 2026-7-6 09:45:45 | 显示全部楼层
不是实时对讲,还是不够方便。
我目前是海康摄像头,ha里面用webrtc可以对讲,只是不能全屋对讲
回复

使用道具 举报

0

主题

169

回帖

1700

积分

金牌会员

积分
1700
金钱
1531
HASS币
0
发表于 2026-7-6 10:37:31 | 显示全部楼层
原创都要支持
感谢分享,学习一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )|网站地图

GMT+8, 2026-7-23 04:37 , Processed in 0.016514 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表