本帖最后由 dianxin11 于 2022-12-4 22:36 编辑
HomeKit缺点
大家在使用homekit 连接HA的时候,经常会遇到如下问题:
- 远程连接慢
- 没响应
- 一些设备无法连入
- 设备状态更新慢等等
这里我教大家一个新方法,在不使用HomeKit的情况下也能用实现HomeKit类似的功能。
用快捷指令代替
方法一 调用home assistant 服务
- 新建快捷指令。
- 添加词典。
- 词典里添加文本类型,key和value本别填入
entity_id 和你要要控制的设备idlight.bedroom 。
- 添加操作处搜索home,点击home assistant 并选择调用服务。
- 在新添加的『调用服务并传入服务所需数据』中的『服务』选择
light.toggle ,点击后面的「>」右箭头,选择服务器,并在下面传入数据处选取上面设置好的词典。
- 如果你不喜欢使用词典,这里你也可以传入json格式的数据。
- 最后,给它取个名字,方便你用siri控制它。
方法二 调用 Action
如果你想处理更复杂的逻辑,你可以使用home assistant 的自动化
-
home assistant App->配置->手机App->动作,点击添加新动作
-
配置名称处输入light ,配置背景色和图标,保存。
- home assistant App->配置->场景自动化->新建自动化
- 起名为
Light Action
- 触发条件『事件类型』一栏填入
ios.action_fired
- 『事件数据』一栏填入
actionName: light
- 新建自动化『动作』,选择对应的设备动作(light.toggle),保存。
- 新建快捷指令。
- 添加操作,选择『home assistant』。
- 选择执行命令下面对应的Action。
- 同样,给它取个名字。
如果你习惯用node-red,同样也可以使用。
-
重复上面的1,2两步。
-
在node-red中新建『event all』节点。
-
在『Event type』一栏输入ios.action_fired 。
-
添加『switch』节点。
-
在『属性』一栏输入payload.event.actionName 。
-
在下面的条件栏输入light
-
这样就node-red就可以接受到Action了,后续的逻辑安装自己的需求写吧。
-
重复上面8-10的步骤。
什么?你说你没装APP?@#$&~! 没关系,那也能用!
方法三 调用REST Api
- 确保你的configuration.yaml文件配置了
frontend:
或者
api:
- 左侧导航栏->用户资料(profile)->长期访问令牌 创建令牌,保留好token。
- 新建快捷指令。
- 添加『获取URL内容』。
- 将你的api url填入『URL』一栏。api url格式为:
http://YOUR-HASS-IP:8123/api/services/light/toggle 。REST API 相关文档请看这里- REST API
- 展开『获取URL内容』,方法选『POST』,在下面的头部一栏 key填入
Authorization ,value填入Bearer token ;再添加一行分别输入content-type 和 application/json 。
- 请求体一栏选择『JSON』,分别填入
entity_id 和 light.bedroom 。
- 取个名字,赶紧试试吧。
总结
用快捷指令来控制HA,有一个问题就是不能显示对应的状态,所以只适合开关一类的简单控制。如果你有更复杂的操作,还是老老实实用HomeKit 或者 HA吧。
|