- Extract all decode/decrypt into a dependency-free C99 core
(include/victronble.h, src/victronble_core.c): victronble_decode(),
is_product_adv/key_matches pre-filters, NAN sentinels, LE accessors.
- AES-128-CTR behind a hook: weak-symbol bundled tiny-AES default,
runtime override (victronble_set_aes_ctr) for PSA/mbedTLS/hardware.
- Arduino VictronBLE class becomes a thin wrapper over the core
(registry + nonce dedup + rate limit); public C++ API unchanged,
NAN converted back to the legacy 0 convention.
- Host test vectors (tests/vectors): openssl-generated ciphertext,
independent of the bundled AES; all five payload shapes + negatives.
- Zephyr module: zephyr/module.yml + Kconfig (CONFIG_VICTRONBLE) +
observer backend (victronble_zephyr.{h,c}) — scan cb pre-filters and
queues, dedicated decode thread, listener callbacks, slow passive
scan defaults, stats counters. docs/ZEPHYR_PORT.md records the plan.
- library.properties: fix URL (gitea, not the nonexistent GitHub).
63 lines
1.8 KiB
JSON
63 lines
1.8 KiB
JSON
{
|
|
"name": "victronble",
|
|
"version": "0.7.0",
|
|
"description": "Portable Arduino library for reading Victron Energy device data via Bluetooth Low Energy (BLE) advertisements. Runs on ESP32, ESP32-S3, ESP32-C3 and nRF52 (nRF52840, nRF52832). Supports SmartSolar MPPT, SmartShunt, BMV, MultiPlus, Orion, Blue Smart AC chargers and other Victron devices. No external crypto dependency.",
|
|
"keywords": "victron, ble, bluetooth, solar, mppt, battery, smartshunt, smartsolar, bmv, inverter, multiplus, esp32, esp32-s3, esp32-c3, nrf52, nrf52840, nrf52832, xiao, iot, energy, monitoring",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://gitea.sh3d.com.au/Sh3d/VictronBLE.git"
|
|
},
|
|
"authors": [
|
|
{
|
|
"name": "Scott Penrose",
|
|
"email": "scottp@dd.com.au",
|
|
"url": "https://gitea.sh3d.com.au/Sh3d",
|
|
"maintainer": true
|
|
}
|
|
],
|
|
"license": "MIT",
|
|
"homepage": "https://gitea.sh3d.com.au/Sh3d/VictronBLE",
|
|
"frameworks": ["arduino", "espidf"],
|
|
"platforms": ["espressif32", "nordicnrf52"],
|
|
"headers": ["VictronBLE.h"],
|
|
"dependencies": [],
|
|
"examples": [
|
|
{
|
|
"name": "MultiDevice",
|
|
"base": "examples/MultiDevice",
|
|
"files": ["src/main.cpp"]
|
|
},
|
|
{
|
|
"name": "Logger",
|
|
"base": "examples/Logger",
|
|
"files": ["src/main.cpp"]
|
|
},
|
|
{
|
|
"name": "Repeater",
|
|
"base": "examples/Repeater",
|
|
"files": ["src/main.cpp"]
|
|
},
|
|
{
|
|
"name": "Receiver",
|
|
"base": "examples/Receiver",
|
|
"files": ["src/main.cpp"]
|
|
},
|
|
{
|
|
"name": "FakeRepeater",
|
|
"base": "examples/FakeRepeater",
|
|
"files": ["src/main.cpp"]
|
|
}
|
|
],
|
|
"export": {
|
|
"exclude": [
|
|
"examples/*/.pio",
|
|
"examples/*/.vscode",
|
|
"examples/*/test",
|
|
"test",
|
|
"tests",
|
|
".git",
|
|
".gitignore"
|
|
]
|
|
}
|
|
}
|