本帖最后由 Jacob 于 2025-2-14 20:26 编辑
更优雅的和家亲(移动爱家)SP mini 3-AL 博联智能插座接入 Home Assistant
感谢 @avrilclc 提供的思路,我在此基础上进一步优化了方法,更简单且有更好的健壮性。
实现 Home Assistant 启动后,自动检测添加 SP mini 3-AL 的配置到 Broadlink 集成,自动判断 Python 版本和添加位置,后续更新都可用。
1. 创建替换脚本
在 Home Assistant 配置目录下,新建一个 `shell` 文件夹,其中创建一个 `add_spmini3.sh` 脚本。
mkdir shell
touch shell/add_spmini3.sh
打开 add_spmini3.sh 粘贴以下代码,保存:
此时,可以测试一下是否可以正常运行:
sh /config/shell/add_spmini3.sh
其实到这一步如果不想搞自动替换,已经可以结束了,Home Assistant 每次更新后手动执行上面的命令即可。
2. 添加 Home Assistant 配置
在 configuration.yaml 中,添加下面的配置:
shell_command:
add_spmini3: "bash /config/shell/add_spmini3.sh"
保存,重启 Home Assistant。
3. 创建自动化
进入 Home Assistant 添加一个自动化,右上角选择 YAML 编辑,粘贴下面的代码:
alias: add_spmini3
description: ""
triggers:
- trigger: homeassistant
event: start
conditions: []
actions:
- action: shell_command.add_spmini3
metadata: {}
data: {}
response_variable: response
- if:
- condition: template
value_template: |
{% if response['stdout'] == "已添加 SPmini3 到 Broadlink 集成!" %}
True
{% else %}
False
{% endif %}
then:
- action: notify.persistent_notification
metadata: {}
data:
title: SPmini3 已添加
message: |-
{{ response['stdout'] }}
将在 1 分钟后重启 Home Assistant,请做好准备。
enabled: true
- delay:
hours: 0
minutes: 1
seconds: 0
- action: homeassistant.restart
metadata: {}
data: {}
else:
- action: notify.persistent_notification
metadata: {}
data:
title: SPmini3 已存在
message: |-
{{ response['stdout'] }}
请前往 Broadlink 集成添加您的设备。
enabled: true
mode: single
完事。
每次 Home Assistant 启动时均会检查 SP mini 3-AL 的配置,若无则到 Broadlink 集成,并且重启 Home Assistant。执行结果可以在 Home Assistant 菜单栏的通知中查看。
参考文献
https://bbs.hassbian.com/thread-25030-1-1.html
https://bbs.hassbian.com/thread-18620-1-1.html
https://www.home-assistant.io/integrations/shell_command/
本文使用署名—非商业性使用—相同方式共享4.0 协议发布。
This work by Jacob is licensed under CC BY-NC-SA 4.0
Discuz! 的编辑器可以说是很难用了,Markdown 复制过来全乱了都要重新调整,有一种复古的美 : )
|