本帖最后由 ryanh7 于 2023-12-3 03:16 编辑
太简单了没啥说的https://github.com/ryanh7/ha-bluetooth-proxy
安装插件后需要开放ha上的5038端口。如果是用docker以端口映射的模式运行ha的,指定端口号的时候需要特别指定为udp协议,否则默认开放的是tcp协议,即
docker run -p 5038:5038/udp ...
目前的版本原理上是随身wifi上运行脚本,发送蓝牙ble信息到ha集成的5038端口,ha接收后识别为蓝牙广播。可以同时部署多个随身wifi以扩充接收范围。目前的版本并不支持主动连接,原因是我没那样的设备。支持主动连接的话需要重写ha与随身wifi之间的连接方式,会大改。
仓库的agent目录下提供了一个ble_agent.py脚本,在随身wifi上运行python脚本即可发送蓝牙ble广播至ha。随身wifi需提前安装python3和bleak包。
debian系统可运行:
openwrt系统需安装python3和python3-bleak两个包
opkg update
opkg install python3 python3-bleak
安装不了的联系自己使用的openwrt镜像提供者或者自己编译。
后台运行脚本:
python3 ble_agent.py -H ha主机地址
例如在/etc/rc.local中加入:
python3 /脚本所在目录/ble_agent.py -H ha主机 > /dev/null 2>&1 &
检查脚本是否成功获得ble广播可添加-v参数查看
python3 ble_agent.py -H ha主机 -v
一切顺利的话,ha会自动识别收到的蓝牙广播信息,并在ha配置>设备与服务 中提示发现的蓝牙设备。
其实不只是随身wifi,树莓派或者其他linux主机也能运行脚本充当蓝牙网关。windows或许也行,不过应该没人这么干吧。
|