『瀚思彼岸』» 智能家居技术论坛

标题: 更优雅的和家亲SP mini 3-AL博联插座接入Home Assistant [打印本页]

作者: Jacob    时间: 2025-2-14 20:26
标题: 更优雅的和家亲SP mini 3-AL博联插座接入Home Assistant
本帖最后由 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` 脚本。

  1. mkdir shell
  2. touch shell/add_spmini3.sh
复制代码

打开 add_spmini3.sh 粘贴以下代码,保存:



此时,可以测试一下是否可以正常运行:

  1. sh /config/shell/add_spmini3.sh
复制代码

其实到这一步如果不想搞自动替换,已经可以结束了,Home Assistant 每次更新后手动执行上面的命令即可。

2. 添加 Home Assistant 配置

在 configuration.yaml 中,添加下面的配置:

  1. shell_command:
  2.   add_spmini3: "bash /config/shell/add_spmini3.sh"
复制代码

保存,重启 Home Assistant

3. 创建自动化

进入 Home Assistant 添加一个自动化,右上角选择  YAML 编辑,粘贴下面的代码:

  1. alias: add_spmini3
  2. description: ""
  3. triggers:
  4.   - trigger: homeassistant
  5.     event: start
  6. conditions: []
  7. actions:
  8.   - action: shell_command.add_spmini3
  9.     metadata: {}
  10.     data: {}
  11.     response_variable: response
  12.   - if:
  13.       - condition: template
  14.         value_template: |
  15.           {% if response['stdout'] == "已添加 SPmini3 到 Broadlink 集成!" %}
  16.             True
  17.           {% else %}
  18.             False
  19.           {% endif %}
  20.     then:
  21.       - action: notify.persistent_notification
  22.         metadata: {}
  23.         data:
  24.           title: SPmini3 已添加
  25.           message: |-
  26.             {{ response['stdout'] }}
  27.             将在 1 分钟后重启 Home Assistant,请做好准备。
  28.         enabled: true
  29.       - delay:
  30.           hours: 0
  31.           minutes: 1
  32.           seconds: 0
  33.       - action: homeassistant.restart
  34.         metadata: {}
  35.         data: {}
  36.     else:
  37.       - action: notify.persistent_notification
  38.         metadata: {}
  39.         data:
  40.           title: SPmini3 已存在
  41.           message: |-
  42.             {{ response['stdout'] }}
  43.             请前往 Broadlink 集成添加您的设备。
  44.         enabled: true
  45. 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 复制过来全乱了都要重新调整,有一种复古的美 : )




作者: 隔壁的王叔叔    时间: 2025-2-14 20:47
恩,比我的高级,我是直接命令行添加的,也搞了个自动化。
作者: wh1tequartz    时间: 2025-2-20 00:27
感谢分享!
作者: avrilclc    时间: 2025-2-20 03:20
本帖最后由 avrilclc 于 2025-2-20 03:21 编辑

确实要优雅一点,不用麻烦的判断版本,直接先执行然后判断需不需要重启;
我这个完全是靠deepseek v3写出来的

更优雅的是什么都不用做,https://github.com/mjg59/python-broadlink 我提交了pull,作者一直没更新

作者: 10386    时间: 2025-2-21 08:47
看看666看看666
作者: hhthht    时间: 2025-2-21 15:03
感谢分享!
作者: paopaoge    时间: 2025-2-23 20:52
太帅了,非常好。
作者: jane42070    时间: 2025-2-26 13:57
感谢分享
作者: okhtm    时间: 2025-2-27 15:37
楼主太牛了啊
作者: tssz    时间: 2025-2-27 20:55
可以添加和家亲里的智能插座,把电量统计弄上去吗?
作者: YesMax    时间: 2025-3-5 13:20
膜拜大佬
作者: amdin12    时间: 2025-3-5 16:06
123111111111111
作者: 739342280    时间: 2025-3-6 11:07
看看这个插座是不是本地
作者: dailaihs    时间: 2025-3-15 00:37
感谢分享!
作者: kuangchao332    时间: 2025-3-17 09:12
顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: tangyali    时间: 2025-4-6 17:31
ha能升级到新版吗
作者: penguinmm    时间: 2025-4-7 08:39
感谢分享!非常好
作者: luckfly    时间: 2025-4-8 09:59
look look,study study
作者: tangyali    时间: 2025-4-17 09:43
hassos好像无法执行python啊,求助大神
作者: zjhefang    时间: 2025-5-4 15:14
研究一下看看
作者: xilo    时间: 2025-5-5 17:20
正好需要,之前买了一堆这种插座,老脚本有很多问题。试试楼主的。感谢楼主。
作者: haha7654321    时间: 2025-5-6 09:33
感谢楼主分享
作者: mildrabbit    时间: 2025-5-6 13:54
好东西,感谢楼主分享。

作者: stavexs    时间: 2025-5-10 15:55
感谢楼主分享
作者: hbrl    时间: 2025-5-11 19:36
不错试试
作者: q409640976    时间: 2025-6-9 03:05
正好想看看
作者: tiger12110    时间: 2025-6-10 19:34
感谢楼主分享




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5