CoreTemp: refactor BLE runtime and added ANT+ HRM configurator - #4255
Conversation
|
@ihewitt looping you in as the original CoreTemp author. This PR substantially refactors CoreTemp’s BLE lifecycle and adds ANT+ HRM configuration/control-point support. I’d appreciate your review, especially around whether the new runtime ownership model, reconnect/cache behavior, and settings UX still fit the app’s intended design. For detailed docs please see README.md. |
d77a674 to
2124ae7
Compare
Apologies haven't had time to look through yet! And I didn't have my "authenticator" to hand to login to GitHub!!! 🤦♂️ I'll try to find the time tonight. 👍 |
No worries, and thanks for taking a look when you can. I made these changes for a deployment use case on my side and thought they might be useful upstream. Since this significantly changes the CoreTemp runtime/connection model, I’d value your thoughts on whether this fits as an update to the existing app or should be split out. Happy to adjust or split the PR as needed! |
2124ae7 to
cfa56a3
Compare
|
Hi @ihewitt, just a gentle follow-up when you have a moment. I now have downstream HeatSuite changes that depend on this CoreTemp work, and I’d ideally like to formalise the integration rather than end up with a fragmented deployment setup. I’m mainly looking for a high-level steer on whether this direction is acceptable for the existing CoreTemp app, or whether you’d prefer it split out separately. Happy to make any changes needed from there — thanks! |
|
Hi @thyttan, Thanks for checking in. This is still maintained from my side rather than actively developed — my organisation is using versions based on this work, so I’m still supporting. Given BangleApps’ preference to extend existing apps rather than create near-duplicates, I’d prefer to continue maintaining CoreTemp in place. This PR largely preserves backward compatibility, with a couple of small migration issues I can address before merge if full backward compatibility is necessary. Since @ihewitt appears to be inactive here, would it make sense for me to take on ongoing maintenance and be added alongside him in the app metadata? |
|
That all sounds good to me! I don't know the app well. But keeping it backwards compatible for now is probably good 🙂 For a reference on a way to migrate settings:
|
(cherry picked from commit 6964cc0)
624f3f9 to
01ca84a
Compare
|
I thought I already merged this. But obviously not. Do you want me to merge now? |
|
@thyttan tested and fixed a few bugs, ok to merge! Thanks 🙏 |
Summary
Rework CoreTemp BLE lifecycle handling to support explicit pair/disconnect, reconnect backoff, cache rebuilds, pause/resume ownership, and status events.
Add CORE Control Point support for ANT+ HRM scan, pair, status, and clear workflows.
Add App Loader custom settings for background connection, widget visibility, debug logging, custom-profile mode, scan window, and default ANT+ HRM ID.
Add CoreTemp regression and emulator app-test coverage for BLE lifecycle, Control Point, HRM workflows, settings, and package manifest behavior.
Package
coretemp.hrm.json, add deployable runtime modules, and bump CoreTemp to0.11.Preserve on-demand connections with separate Enable and Always On settings, and migrate legacy pairing and HRM settings.
Default Custom CORE only to enabled while preserving explicit saved settings; show unavailable skin temperature as
n/aand indicate connected Health Thermometer fallback with an orange widget.Validation
npm testnode apps/coretemp/tests/run.js