Home Assistant
Macro Deck 自带在面板上开关灯光、运行场景和脚本,并显示 Home Assistant 的实时状态。
“连接 Home Assistant”对话框,包含“地址”和“长期访问令牌”字段
- 打开、关闭或切换实体,按键会显示其状态
- 设置灯光、遮盖设备、恒温器和媒体播放器
- 运行场景、脚本和自动化,或调用任意服务
- 任意实体状态或属性的实时变量
- 状态变化和事件总线上的事件触发器
Home Assistant 集成通过 WebSocket API 将 Macro Deck 连接到 Home Assistant。Macro Deck 会保持一个连接,因此 Home Assistant 中的状态一变化就会立即传来,动作也会立即执行。Home Assistant 可以运行在 Macro Deck 能访问的任何地方:同一台电脑上、网络中的 Raspberry Pi 或服务器上,或者一个远程地址。
可以做什么
- 打开或关闭一个或多个实体,或切换它们的状态。使用 切换 的按键在实体开启时会亮起。
- 使用 设置灯光 设置灯的状态、亮度、颜色、色温和渐变时间。
- 打开、关闭、停止遮盖设备或设置其位置,设置恒温器的温度、模式、风扇模式和预设,并控制媒体播放器的播放和音量。
- 激活场景、带变量运行脚本,以及触发、启用或禁用自动化。
- 使用 调用服务 调用任意服务,以实体、设备或区域为目标,并以 JSON 提供数据。
- 使用 获取实体状态 将实体的状态或属性读取到 Macro Deck 变量中。
一些示例设置:
- 一个使用 切换 控制台灯的按键,显示台灯是否开着。
- 一个 看电影 按键,激活观影场景并暂停媒体播放器上的音乐。
- 一个绑定到灯光亮度的滑块,既可以在面板上调暗灯光,也能看到在 Home Assistant 中所做的更改。
- 一个标签显示传感器温度的按键,以及一个由 实体状态已更改 触发的流程,在前门打开时显示通知。
变量和实时更新
Home Assistant 提供的值远多于 Macro Deck 预先列出的。每个实体都位于集成变量中默认折叠的 未绑定的变量 分组里,该分组出现在 变量 页面和每个变量选择器中。打开一个实体即可查看其状态和属性,在需要的那一项上选择 绑定:它就会成为一个实时更新的普通变量。通过这种方式,滑块可以控制灯的亮度、风扇的转速、遮盖设备的位置、媒体播放器的音量或恒温器的温度。
连接中断时,Macro Deck 会自动重新连接,每次尝试失败后等待的时间会稍长一些,最长一分钟。此时会触发 已连接 和 已断开连接 触发器;Home Assistant 未连接期间,动作会失败并显示消息。可以连接一个 Home Assistant。
准备工作
- Macro Deck 能够访问的、正在运行的 Home Assistant,例如
http://homeassistant.local:8123。 - 一个用于创建长期访问令牌的 Home Assistant 用户账户。
- 对于
https://地址:电脑信任的证书。
设置步骤
第 1 步: 创建长期访问令牌
在 Home Assistant 中打开个人资料,进入 安全 选项卡。滚动到 长期访问令牌,创建一个令牌,命名为
Macro Deck并复制。Home Assistant 只会显示一次。第 2 步: 打开 Home Assistant 集成
在 Macro Deck 中,点击侧边栏中的 集成,然后点击 Home Assistant。在 概览 选项卡的 配置 部分中点击 设置。打开右上角的开关也会打开同一个对话框,完成设置后集成即会启用。
第 3 步: 输入地址和令牌
在 连接 Home Assistant 对话框中输入:
- 地址:打开 Home Assistant 所用的地址,包含端口,例如
http://homeassistant.local:8123。 - 长期访问令牌:刚刚复制的令牌。
点击 继续 后,Macro Deck 会测试连接,并以 Home Assistant 加括号内的家庭名称保存该连接。
- 地址:打开 Home Assistant 所用的地址,包含端口,例如
第 4 步: 为按键添加动作
在 面板 页面上点击一个按键。面板必须处于解锁状态:右上角显示 锁定 按钮时,面板即为解锁状态。编辑器打开时已选中 短按。点击 + 添加动作,在 添加动作 对话框左侧选择 Home Assistant,选择 切换,然后选择一个或多个 实体,例如一盏灯。
第 5 步: 按下按键
在面板上按下该按键。Home Assistant 中的灯会切换状态,按键会显示它是否开着。
第 6 步: 绑定一个值以显示在按键上
如需显示某个值,请打开 Home Assistant 页面的 变量 选项卡,然后展开 未绑定的变量 分组。打开一个实体,然后在其状态或某个属性上点击 绑定。在标签中使用新变量,例如
{{ vars.ha_sensor_living_room_temperature }}。
动作12
可以放在按键上,也可以在流程中运行。
- 调用服务
- 调用任意 Home Assistant 服务,可指定实体、设备、区域,并以 JSON 提供数据。
- 打开
- 打开一个或多个实体。
- 关闭
- 关闭一个或多个实体。
- 切换
- 切换一个或多个实体的状态,并在按键上显示它们是否开启。
- 设置灯光
- 开关灯,并设置其亮度、颜色、色温和渐变时间。
- 控制遮盖设备
- 打开、关闭或停止遮盖设备,或设置其位置或倾斜位置。
- 控制媒体播放器
- 播放、暂停、停止、切换曲目、静音或设置媒体播放器的音量。
- 设置恒温器
- 设置恒温器的目标温度、模式、风扇模式和预设。
- 激活场景
- 激活场景,可设置渐变时间。
- 运行脚本
- 运行脚本,可选择以 JSON 对象提供变量。
- 控制自动化
- 触发、启用、禁用或切换自动化,可选择忽略其条件。
- 获取实体状态
- 将实体的状态或其某个属性读取到 Macro Deck 变量中。
触发器4
按键或流程可以对这些事件做出响应。
- 已连接
- Macro Deck 已连接到 Home Assistant。
- 已断开连接
- 与 Home Assistant 的连接已中断。
- 实体状态已更改
- 实体状态发生了变化,可选择仅限某个域、某个实体,或从某个状态变为某个状态的变化。
- Home Assistant 事件
- Home Assistant 事件总线上的任何事件,例如自动化、脚本、ZHA 和 deCONZ 按钮按下或自定义事件,可选择仅限某一种事件类型。
变量5
在按键和组件上显示这些值,或在条件中使用它们。
homeassistant_is_connected- Macro Deck 是否已连接到 Home Assistant。
homeassistant_version- Home Assistant 的版本。
homeassistant_location_name- 家庭的名称。
homeassistant_entity_count- Home Assistant 中的实体数量。
ha_<entity>,ha_<entity>_<attribute>- 实体的状态或任意属性,从 未绑定的变量 中绑定后可用。名称会根据实体 ID 自动建议,例如
ha_light_office_lamp或ha_light_office_lamp_brightness_pct。其中许多也可以设置,例如灯的brightness_pct。
常见问题解答
Home Assistant 必须运行在同一台电脑上吗?
不必。Macro Deck 通过网络连接,因此 Home Assistant 可以运行在 Raspberry Pi、服务器或远程地址上,只要 Macro Deck 能访问即可。
可以连接多个 Home Assistant 吗?
不可以。该集成只支持一个 Home Assistant。再次运行设置会替换现有连接,按键会继续正常工作。
设置提示无法验证证书,该怎么办?
电脑不信任 https:// 地址的证书。请在操作系统的证书存储中信任该证书,或者在本地网络中通过 http:// 连接。
位于反向代理之后的 Home Assistant 无法连接,为什么?
有些代理会拦截被其视为自动化流量的请求。请打开 设置 > 高级 > HTTP,并在 HTTP User-Agent 下输入代理接受的值。
连接中断时会怎样?
Macro Deck 会自动重新连接,并触发 已断开连接 和 已连接 触发器。如果一段时间内都无法访问 Home Assistant,集成会显示 无法连接 Home Assistant,并在后台持续重试。
访问令牌存储在哪里?
令牌加密存储在电脑上,除了与 Home Assistant 通信外绝不会离开电脑。如果 Home Assistant 拒绝了令牌,集成会显示一个问题:请创建新令牌并重新运行设置。
“智能家居和网络”分类中的更多集成
AdGuard Home
Macro Deck 自带开启、关闭或暂停 AdGuard Home 防护,并在面板上显示其统计信息。
RSS 订阅源
Macro Deck 自带关注 RSS 和 Atom 订阅源,在组件中显示最新文章,并在有新文章时做出响应。
HTTP
Macro Deck 自带通过按键发送 HTTP 请求,并将响应中的值保存到变量中。
天气
Macro Deck 自带在面板上显示各个位置的当前天气和预报,无需 API 密钥。