Home Assistant Companion App 功能全景
什么是 Companion App
Home Assistant 官方出品的手机客户端——iOS 和 Android 都有。它不只是一个远程仪表盘,更是 Home Assistant 和手机之间的双向通信接口:
- 手机看 Home Assistant 的仪表盘
- 手机的 GPS / 电量 / 网络状态 → 回传给 Home Assistant(Home Assistant 能知道你在哪、手机还有多少电)
- Home Assistant → 手机推送通知
- 手机上的麦克风 → Home Assistant Assist 语音助手
在哪里下载
- iOS:App Store → 搜索 Home Assistant
- Android:Google Play / F-Droid(F-Droid 版本是不含 Google 服务的"纯净版")
- iOS 测试版:Testflight 申请(官方 companion 页面有链接)
- Android 测试版:Google Play Beta 渠道
连接 Home Assistant
前置条件
- Home Assistant 实例(本地地址
http://homeassistant.local:8123或 Nabu Casa Cloud 地址https://xxx.nabu.casa) - 手机和 Home Assistant 在同一局域网(首次连接推荐局域网)
iPhone 连接
- 打开 Home Assistant App
- 系统会自动扫描局域网里的 Home Assistant 实例 → 点 Connect
- 首次连接需要 Home Assistant 在 Settings → Devices & services → Mobile App 集成里启用(Home Assistant OS 默认启用)
- 登录 Home Assistant 管理员账号
- 连接完成
Android 连接
- 打开 Home Assistant App
- 点右下角 Configure manually(自动扫描可能失败)
- 填 Home Assistant 地址 + Nabu Casa 地址 → Save
- 登录 Home Assistant 管理员账号
- 连接完成
首次连接后 Home Assistant 自动创建
连接成功后,Home Assistant 会自动:
- 创建一个新的设备(
device_tracker.my_iphone) - 创建 Person 实体,关联你的手机位置
- 创建一个推送通知服务
notify.mobile_app_<你的设备ID> - 创建手机相关的传感器(电量、WiFi、蜂窝网络等)
主要功能
1. 移动仪表盘
手机 App 直接渲染 Home Assistant 的 Lovelace 仪表盘——和桌面版看到的一样,但自动适配手机屏幕:
- 卡片单列垂直堆叠
- 支持左右滑动切换仪表盘
- 支持 Force Touch / 长按快速操作
- 可以在手机上编辑仪表盘(Settings → 右上角 Edit Dashboard)
2. 推送通知(最重要)
Home Assistant 可以主动给你手机发通知:
action:
- service: notify.mobile_app_me
data:
title: "车库门提醒"
message: "车库门开了 10 分钟没关"
data:
ttl: 0
priority: high
clickAction: "/lovelace/garage" # 点通知跳转到车库仪表盘
3. 手机位置追踪
Home Assistant 通过 Companion App 的 GPS 数据追踪你在哪:
| 区域 | 定义 | 用法 |
|---|---|---|
| zone.home | 家(默认 50m 半径) | person.me 状态为 home |
| zone.work | 公司 | person.me 状态为 work |
| 自定义区域 | 任意位置 | 便利店、健身房、孩子学校… |
Home Assistant 可以触发"当你到家"和"当你离开家"的自动化。
4. 手机传感器回传
Companion App 会把手机上的传感器数据回传给 Home Assistant:
| 实体 | 含义 |
|---|---|
sensor.battery_level | 手机电量百分比 |
sensor.battery_state | Charging / Not charging / Full |
sensor.network_type | WiFi / Cellular |
sensor.wifi_ssid | 当前连接的 WiFi 名称 |
sensor.wifi_bssid | WiFi BSSID |
sensor.geocoded_location | 反地理编码的位置文字 |
binary_sensor.is_charging | 是否在充电 |
binary_sensor.wifi_connected | 是否连接 WiFi |
device_tracker.xxx | 精确定位(GPS 坐标) |
sensor.screen_on(Android) | 屏幕是否开启 |
5. 快捷操作(iOS 专属)
在 iOS 上可以通过 Shortcuts(快捷指令) 和 Home Assistant 集成:
- 创建自定义快捷指令 → 点一下就触发 Home Assistant 服务
- 可以放到 iOS 主屏
- 和 Assist(iOS 语音助手)联动
6. 常驻通知(Android)
Android 可以把 Home Assistant 的状态做成常驻通知(如太阳能发电、电池电量、家中温度),下拉通知栏就能看到。
7. 手机作为蓝牙扫描器
Companion App 的 Android 版本可以把手机的蓝牙扫描数据传回 Home Assistant——远距离的蓝牙设备(如花园里的 BLE 传感器)可以被手机发现后推给 Home Assistant。
8. 通知触发 Home Assistant 动作
iOS 支持通知上的快捷按钮——收到通知时直接在通知栏点按钮触发 Home Assistant 动作:
action:
- service: notify.mobile_app_me
data:
title: "前门有人"
message: "按门铃的是张阿姨"
data:
actions:
- action: "HOME_ASSISTANT_OPEN_DOOR"
title: "开门"
icon: "mdi:door-open"
- action: "HOME_ASSISTANT_DECLINE"
title: "不在家"
icon: "mdi:close"
常见问题
App 显示"无法连接"
- 确认 Home Assistant 在同一局域网(首次连接)
- 检查 Home Assistant Settings → Devices & services → Mobile App 是否已启用
- 检查手机上的 Home Assistant App 是否有通知权限(推送需要)
- 如果远程连接,确认 Nabu Casa 或 Tailscale 等方案已配置好
Companion App 创建的实体不见了
Home Assistant 重启后实体可能重新加载。等 1~2 分钟,或在 App 里触发一次位置更新(打开 App → 下拉刷新)。
位置追踪不准
GPS 在室内会偏差较大。可以:
- 在 Home Assistant 里把
zone.home的半径调大(比如从 50m 调到 100m) - 启用 WiFi SSID 识别——检测到连家里 WiFi 就判定为 home
- 如果有蓝牙信标,配置基于蓝牙的 Presence Detection