Python API读取Victron即时读数广告
项目描述
victron_ble
一个Python库,用于解析Victron设备发出的即时读数广告数据。
免责声明:此软件不是Victron官方支持的接口,提供完全“原样”。
支持设备
- SmartShunt 500A/500mv和BMV-712/702提供以下数据
- 电压
- 警报状态
- 电流
- 剩余时间
- 充电状态(%)
- 消耗安时数
- 辅助输入(温度、中点电压或启动电池电压)
- 智能电池感知
- 电压
- 温度(°C)
- 太阳能充电器(与BlueSolar 75/15测试过)
- 充电器状态(关闭、吸收、浮充)
- 电池电压(V)
- 电池充电电流(A)
- 太阳能功率(W)
- 今日产出(Wh)
- 外部设备负载(A)
如果您想支持对其他设备的开发,请考虑赞助此项目
从PyPI安装
pip install victron_ble
用法
为了能够解密广告内容,您首先需要从官方Victron应用程序获取每个设备的加密密钥。此方法因平台而异,下面的说明如下
获取密钥
OSX
MacOS的bleak后端 使用蓝牙UUID地址而不是更传统的MAC地址来识别蓝牙设备。此UUID地址通常是扫描的设备和正在扫描的设备的唯一标识,因此不能用于从另一台计算机连接到同一设备。
如果您将在与您有Victron应用程序的同一台Mac计算机上使用victron-ble
,请按照以下说明检索地址UUID和广告密钥
- 从Mac App Store安装Victron应用程序
- 至少配对一次您的设备以传输密钥
- 在终端中运行以下命令以转储已知密钥(通过Homebrew安装
sqlite3
)
❯ sqlite3 ~/Library/Containers/com.victronenergy.victronconnect.mac/Data/Library/Application\ Support/Victron\ Energy/Victron\ Connect/d25b6546b47ebb21a04ff86a2c4fbb76.sqlite 'select address,advertisementKey from advertisementKeys inner join macAddresses on advertisementKeys.macAddress == macAddresses.macAddress'
{763aeff5-1334-e64a-ab30-a0f478s20fe1}|0df4d0395b7d1a876c0c33ecb9e70dcd
❯
如果您打算在除了安装了Victron应用程序的计算机(例如Raspberry Pi)以外的其他非MacOS计算机上使用victron-ble
,请按照以下说明获取蓝牙MAC地址和广告密钥
- 从Mac App Store安装Victron应用程序
- 至少配对一次您的设备以传输密钥
- 在终端中运行以下命令以转储已知密钥(通过Homebrew安装
sqlite3
)
❯ sqlite3 ~/Library/Containers/com.victronenergy.victronconnect.mac/Data/Library/Application\ Support/Victron\ Energy/Victron\ Connect/d25b6546b47ebb21a04ff86a2c4fbb76.sqlite 'select macAddress,advertisementKey from advertisementKeys'
a0f478020fe1|0df4d0395b7d1a876c0c33ecb9e70dcd
❯
Linux
- 从Victron网站下载Victron AppImage应用程序。
- 至少配对一次您的设备以传输密钥
- 从终端运行以下命令以导出已知密钥(通过软件包管理器安装
sqlite3
)
❯ sqlite3 ~/.local/share/Victron\ Energy/Victron\ Connect/d25b6546b47ebb21a04ff86a2c4fbb76.sqlite 'select address,advertisementKey from advertisementKeys inner join macAddresses on advertisementKeys.macAddress == macAddresses.macAddress'
A0:F4:78:02:0F:E1|0df4d0395b7d1a876c0c33ecb9e70dcd
❯
Windows
- 从Victron网站下载VictronConnect安装程序并安装。
- 至少配对一次您的设备以传输密钥
- 打开资源管理器,导航到
%AppData%\Local\Victron Energy\Victron Connect\
- 在您选择的网页浏览器中打开SQLite Viewer
- 将资源管理器中的
d25b6546b47ebb21a04ff86a2c4fbb76.sqlite
文件拖放到SQLite Viewer窗口中
读取数据
该项目附带一个独立的CLI,可用于将设备数据打印到控制台。
# Will show all discovered Victron devices with Instant Readout enabled, their names, and IDs
$ > victron-ble discover
763aeff5-1334-e64a-ab30-a0f478s20fe1: SmartShunt HT4531A246S
...
# Dump data for a particular device (replace the ID and key with your own)
$ > victron-ble read "763aeff5-1334-e64a-ab30-a0f478s20fe1@0df4d0395b7d1a876c0c33ecb9e70dcd"
INFO:victron_ble.scanner:Reading data for ['763aeff5-1334-e64a-ab30-a0f478s20fe1']
{
"name": "SmartShunt HT4531A246S",
"address": "763AEFF5-1334-E64A-AB30-A0F478S20FE1",
"rssi": -79,
"payload": {
"aux_mode": "temperature",
"consumed_ah": 0.0,
"current": 0.0,
"high_starter_battery_voltage_alarm": false,
"high_temperature_alarm": false,
"high_voltage_alarm": false,
"low_soc_alarm": false,
"low_starter_battery_voltage_alarm": false,
"low_temperature_alarm": false,
"low_voltage_alarm": false,
"midpoint_deviation_alarm": false,
"remaining_mins": 65535,
"soc": 100.0,
"temperature": 382.2,
"voltage": 12.87
}
}
...
# Dump data for debugging and supporting new devices (replace the ID)
$ > victron-ble dump "763aeff5-1334-e64a-ab30-a0f478s20fe1"
Dumping advertisements from 763aeff5-1334-e64a-ab30-a0f478s20fe1
1671843194.0534039 : 100289a302413bafd03bb245e131ae926267f6fd0b59e0
1671843194.682535 : 100289a302423baf58a1546e5262dcdf0ef642f353ed65
1671843197.676384 : 100289a302453baf804707549cffb2ab970c981ae897b6
...
要将此项目作为库使用,您可以导入特定于您的设备的解析器
from victron_ble.devices import detect_device_type
data = <ble advertisement data>
parser = detect_device_type(data)
parsed_data = parser(<key>).parse(<ble advertisement data>)
开发
如果您想支持新设备,请收集以下信息并在GitHub上创建新的issue
- 运行
victron-ble discover
以找到要支持的设备的ID - 运行
victron-ble dump <ID>
并收集官方应用程序即时读数的相应截图以识别当前值
关于拉取请求
阅读CONTRIBUTING.md文件。
贡献者
特别感谢https://github.com/rochacbruno/python-project-template提供的项目模板
项目详情
下载文件
下载适合您平台的文件。如果您不确定要选择哪一个,请了解有关安装包的更多信息。
源分发
victron_ble-0.6.0.tar.gz (20.2 kB 查看哈希)
构建分发
victron_ble-0.6.0-py3-none-any.whl (19.0 kB 查看哈希)
关闭
victron_ble-0.6.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 645fbc4d136a220f5950bcc30495c0e3979c9bf8f1457492e820f031e1e6580a |
|
MD5 | e543086dd46d04dee597392d2bbaac77 |
|
BLAKE2b-256 | 17482a40674686008c1e486cea2c0fd56645cabedc11c72817e6be08d35cbf1a |
关闭
victron_ble-0.6.0-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ef1a4bf4dfcb874fff2d69eda3d92e3a4bc13b216b76a4dbd1955239b7c4205f |
|
MD5 | 367ce657e4c6625456882e3c3e5e3518 |
|
BLAKE2b-256 | bf399da2215945685b46c56a8769db1a50f6f3c49e9ff9d97a9ce5c2460ba04a |