本帖最后由 lidicn 于 2018-9-23 02:54 编辑
原理简述
- 通过pybluez获取蓝牙信号rssi
- 将rssi换算成距离
前置需求
- 免驱usb蓝牙适配器【树莓派自带】2. 蓝牙手环、蓝牙标签【需要支持ble】
- 安卓手机需要安装Beacon Simulator模拟beacon才能实现检测
安装插件
- 下载ble_presence.py文件,复制到\config\custom_components\sensor
sudo apt-get install bluez bluez-hcidump
获取蓝牙设备mac地址
bash-4.4# sudo hcitool lescan
Set scan parameters failed: Operation timed out
bash-4.4# hcitool lescan
LE Scan ...
11:22:33:AA:BB:CC MJ_HT_V1
配置Yaml
sensor:
- platform: ble_presence
mac: 11:22:33:aa:bb:cc
name: miband2
friendly_name: 小米手环2
arg_a: 85
arg_n: 1.9
- platform: ble_presence
mac: 11:22:33:aa:bb:cc
name: mix2_presence
friendly_name: 小米mix2
arg_a: 85
arg_n: 1.9
参数详解
- arg_a 是当蓝牙标签与蓝牙基站相距1米时的rssi的绝对值【可选参数,但建议设置】
- arg_n 环境衰减因子【float型】【可选参数,但建议设置】
- name用于entity_id,如上例,将生成sensor.miband2跟sensor.mix2_presence【可选参数】
- friendly_name 【可选参数】
- mac,蓝牙标签的mac地址【必要参数】
参考文档
- Bluetooth RSSI Distance MPU
|