
I built a Linux CLI to replace Garmin Connect Mobile (weather + calendar + todos working on Fenix 6 Pro)
I decided to take a break from my phone but started to missing calendar events and weather forecast fast. Then I remember that I actually have it all in my watches!!!
Spent a day porting the Garmin BLE protocol from Gadgetbridge's Java code to Python. It connects over BLE, does the handshake, and responds to the watch's requests.
What works:
Weather via OpenWeatherMap, Calendar sync from URLs (supports multiple calendars) (Google , Nextcloud, etc)
Implemented Todos list pushed as persistent notifications. It works so far, but notifications is not the best thing for that. Currently it uses config files but I am planning to code proper integration with popular todo manager.
What doesn't:
- Desktop notification mirroring (not yet)
- Music controls
- Alarms (not yet)
Uses bleak for bluetooth, no Garmin SDK needed.
If anyone's curious what else is possible with this protocol: (music controls, find my laptop(lol), desktop notifications from laptop, waypoints sync)