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

 找回密码
 立即注册
查看: 2439|回复: 10

[新奇玩法] 随身wifi当蓝牙网关

[复制链接]

55

主题

299

帖子

5049

积分

元老级技术达人

积分
5049
金钱
4740
HASS币
80
发表于 2023-12-3 03:11:22 | 显示全部楼层 |阅读模式
本帖最后由 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系统可运行:
pip3 install bleak
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或许也行,不过应该没人这么干吧。
ble.png

评分

参与人数 3金钱 +31 收起 理由
pengguilian + 5 感谢楼主分享!
linoul + 10 高手,这是高手!
sorrypqa + 16 大神666!

查看全部评分

回复

使用道具 举报

17

主题

798

帖子

5730

积分

论坛元老

Rank: 8Rank: 8

积分
5730
金钱
4927
HASS币
0
发表于 2023-12-3 10:23:33 | 显示全部楼层
这个需要特定硬件的随身wifi吧?

我这边主要用passive ble monitor来被动接收ble设备广播,用有线esphome+BLE Gateway扩展的。走wifi会丢蓝牙信号。。
回复

使用道具 举报

55

主题

299

帖子

5049

积分

元老级技术达人

积分
5049
金钱
4740
HASS币
80
 楼主| 发表于 2023-12-3 11:33:09 | 显示全部楼层
sirakawa 发表于 2023-12-3 10:23
这个需要特定硬件的随身wifi吧?

我这边主要用passive ble monitor来被动接收ble设备广播,用有线esphome+ ...

骁龙410系列的随身wifi,有蓝牙能跑linux的板子也可以。
回复

使用道具 举报

17

主题

798

帖子

5730

积分

论坛元老

Rank: 8Rank: 8

积分
5730
金钱
4927
HASS币
0
发表于 2023-12-3 11:54:18 | 显示全部楼层
ryanh7 发表于 2023-12-3 11:33
骁龙410系列的随身wifi,有蓝牙能跑linux的板子也可以。

找找看去~~
回复

使用道具 举报

6

主题

170

帖子

2214

积分

金牌会员

Rank: 6Rank: 6

积分
2214
金钱
2044
HASS币
20
发表于 2023-12-3 20:42:06 | 显示全部楼层
大佬厉害
回复

使用道具 举报

1

主题

34

帖子

349

积分

中级会员

Rank: 3Rank: 3

积分
349
金钱
315
HASS币
0
发表于 2023-12-3 21:02:26 | 显示全部楼层
哪一款随身WiFi有蓝牙,推荐一下
回复

使用道具 举报

1

主题

7

帖子

76

积分

注册会员

Rank: 2

积分
76
金钱
69
HASS币
0
发表于 2024-7-11 15:44:37 | 显示全部楼层
File "/root/ble_agent.py", line 7
    <!DOCTYPE html>
    ^
SyntaxError: invalid syntax
提示第七行命令失效,楼主可以帮忙看看吗
回复

使用道具 举报

0

主题

22

帖子

391

积分

中级会员

Rank: 3Rank: 3

积分
391
金钱
369
HASS币
0
发表于 2024-7-12 22:32:22 | 显示全部楼层
a5824420 发表于 2024-7-11 15:44
File "/root/ble_agent.py", line 7
   
    ^

人家Github上的那个 ble_Agent.py 文件,总共就67行。

第7行是  from typing import Dict
你下载的都是些啥?  这么明显的问题!
回复

使用道具 举报

1

主题

7

帖子

76

积分

注册会员

Rank: 2

积分
76
金钱
69
HASS币
0
发表于 2024-7-12 22:49:26 | 显示全部楼层
maidoo 发表于 2024-7-12 22:32
人家Github上的那个 ble_Agent.py 文件,总共就67行。

第7行是  from typing import Dict

应该没有错呀,都是直接打包下来的压缩包解压出来,再上传到根目录再执行的指令,不知道是哪一步不对
回复

使用道具 举报

0

主题

22

帖子

391

积分

中级会员

Rank: 3Rank: 3

积分
391
金钱
369
HASS币
0
发表于 2024-7-12 23:09:22 | 显示全部楼层
这就是你自己操作的基本功问题了,和Ryanh7大神的脚本毫无关系,自己对比琢磨搞定吧,不要来麻烦大神了。
你自己用cat命令,看看解压后的 py文件,里面都是啥?
你看你的错误内容,里面是HTML文件,哪是 python 语言啊?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 18:36 , Processed in 0.222636 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表