
https://github.com/ismarslomic/google-assistant-broadcast/actions/workflows/docker-image.yml/badge.svg?branch=main](https://github.com/ismarslomic/google-assistant-broadcast/actions/workflows/docker-image.yml)
运行小型Web服务器,通过Google Assistant Service提供REST API,用于向Google Assistant发送广播文本消息。
====== 重要 - 已被Home Assistant中的Google Assistant SDK替代! ======
Home Assistant从v2023.1.0版本开始提供Google Assistant SDK集成。它支持在不中断音乐/视频播放的情况下广播消息,还能发送文本命令。这正是google-assistant-broadcast Docker容器提供的功能。由于官方集成已满足需求且设置更简单,作者将不再维护此仓库。您可以继续使用、或 fork 该仓库进行改进。
====== 重要! ======
与源代码和Docker镜像相关的错误和问题,可在https://github.com/ismarslomic/google-assistant-broadcast%E4%BB%93%E5%BA%93%E7%9A%84https://github.com/ismarslomic/google-assistant-broadcast/issues%E4%B8%AD%E6%8A%A5%E5%91%8A%E3%80%82
是否曾想过在不中断当前播放音乐的情况下,向家中的Google Assistant智能音箱广播语音消息?现在可以实现了,且设置过程已尽可能简化。
该项目源于大量研究,最初始于Home Assistant论坛上的这个帖子。
致谢:
默认情况下,无需在消息前添加broadcast、shout或tell等前缀,系统会自动处理。消息将广播到与您Google账户关联的所有扬声器。
根据Google Assistant文档,您也可以广播到特定扬声器,消息格式为Broadcast to <扬声器所在房间名称>, Hello world.(例如:Broadcast to 客厅, 大家好)。
通过禁用默认消息前缀(含"broadcast"),您还可以向Google Assistant发送命令,例如Turn off lights in living room(关闭客厅灯光)。
在docker run命令或docker-compose文件中添加环境变量APPEND_BROADCAST_TO_MESSAGE=false,然后发送POST请求:
json{ "message": "关闭客厅灯光" }
docker-compose运行容器创建子文件夹(如/home/pi/config),并添加client_secret.json和tokens.json文件。
docker-compose.yml
yamlversion: '3.8' services: google-assistant-broadcast: container_name: google-assistant-broadcast image: ismarslomic/google-assistant-broadcast:latest restart: unless-stopped ports: - "8085:8085" volumes: - /home/pi/config:/usr/src/config
启动容器:
bashdocker-compose up -d
docker run运行容器创建子文件夹(如/home/pi/config),并添加client_secret.json和tokens.json文件。
bashdocker run -d --name google-assistant-broadcast \ -p 8085:8085 \ -v /home/pi/config:/usr/src/config \ --restart unless-stopped \ ismarslomic/google-assistant-broadcast:latest
可通过RESTful Notifications平台将此REST API集成到Home Assistant。
在configuration.yaml文件中添加:
yaml# Google Assistant Broadcast - REST API notify: - platform: rest name: ga_broadcast resource: http://localhost:8085/broadcast method: POST_JSON
调用通知服务ga_broadcast(上述步骤定义)广播消息:
yamlservice: notify.ga_broadcast data: message: 你好,世界!
端点: POST http://localhost:8085/broadcast
请求体:
json{ "message": "你好,世界!" }
curl示例
bashcurl -X POST http://localhost:8085/broadcast \ -d '{"message":"你好,世界!"}' \ -H "Content-Type: application/json"
1. 广播请求已发送,但未在扬声器上播放
容器运行正常,但通过Postman/CURL/Home Assistant发送广播请求后,扬声器未播放消息,日志中出现以下内容(详见https://github.com/ismarslomic/google-assistant-broadcast/issues/5%EF%BC%89%EF%BC%9A
bashSending message: Broadcast Hello world! [OK] Conversation Response: empty [OK] Conversation Completed
可能的解决方案1
在Google Actions Console中删除现有设备注册并重新创建,详见https://github.com/ismarslomic/google-assistant-broadcast/issues/5%E7%9A%84https://github.com/ismarslomic/google-assistant-broadcast/issues/5#issuecomment-***%E3%80%82
可能的解决方案2
此问题与容器中Google Assistant SDK的语言设置有关(默认语言为en-GB)。具体原因尚不明确,但将语言从en-US切换为en-GB对作者有效。您可能还需要调整同一Google账户在Google Assistant应用中的语言设置。
可通过设置环境变量LANGUAGE更改语言,支持的语言代码见支持的语言代码。
使用docker run时添加-e LANGUAGE=<语言代码>参数,或在docker-compose中添加environment配置:
yamlversion: '3.8' services: google-assistant-broadcast: ... environment: - LANGUAGE=<语言代码>
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务