Add SignalK BLE Gateway API support and upgrade to React 19#137
Conversation
Code reviewFound 2 issues:
bt-sensors-plugin-sk/BleApiGattServer.js Lines 16 to 51 in f464c81 Compare: bt-sensors-plugin-sk/BleApiGattServer.js Lines 113 to 123 in f464c81
bt-sensors-plugin-sk/webpack.config.js Lines 61 to 66 in f464c81 🤖 Generated with Claude Code - If this code review was useful, please react with 👍. Otherwise, react with 👎. |
|
Thanks. Let's wait if BLE API in it's current state merges. |
|
Quick follow-up after digging into the upstream. Server-side status. The BLE Provider API the plugin depends on lives in SignalK/signalk-server#2588. That PR has been "ready for human review" since Apr 13. Until it lands this one is effectively unmergeable, so the items below are organized around "what to revisit when you pick this back up," not "what blocks merge today." API usage check. Spot-checked the plugin's call sites against Items to address on next pass:
A few smaller things I noticed but would not gate on: Happy to send a fresh PR splitting the React/MUI upgrade out of this one if it would help; attributed however you prefer. |
|
Awesome to see that you use AI now. great. So you will be able to figure this out yourself once BLE lands. |
|
The dirkwa image has "BLE Manager" merged and I am using it in production. |
When the SignalK server's BLE API (app.bleApi) is available, the plugin can now use it instead of requiring a local USB Bluetooth adapter via D-Bus/BlueZ. This enables BLE sensor data from remote ESP32 gateways and removes the hard dependency on local Bluetooth hardware. A new "BLE Source" config option (auto/local/api) controls the mode. Virtual device objects (BleApiDevice, BleApiGattServer, BleApiDiscovery) implement the same interface as node-ble, so all 50+ sensor classes work without modification. Also upgrades the UI from React 16 to React 19 with matching dependency updates (@material-ui -> @mui, react-bootstrap v1 -> v2, react-html-parser -> html-react-parser) and webpack Module Federation singleton config to match the server admin UI.
f464c81 to
4b1bf3e
Compare
Summary
app.bleApi) as an alternative to local USB/D-Bus/BlueZ, enabling BLE data from remote ESP32 gateways without local Bluetooth hardwareBleApiDevice,BleApiGattServer,BleApiDiscovery) implements the node-ble interface so all 50+ sensor classes work unmodified@material-ui→@mui,react-bootstrapv1 → v2,react-html-parser→html-react-parserTesting