Skip to content

Releases: Abasz/ESPRowingMonitor-WebGUI

6.0.0

20 Dec 19:02
Compare
Choose a tag to compare

Version 6.0.0

This release focuses on significant architectural improvements, new experimental features, and user experience enhancements. The update ensures better compatibility with the new functionalities introduced in ESPRM v6, including the experimental FTMS service and over-the-air (OTA) firmware updates. Additionally, this version continues to refine the application's reliability, modularity, and ease of use.

Please note that this release completely removes any WebSocket or WebServer related feature from the codebase.

New Features

This version aligns version numbering between ESPRM and the WebGUI, hence the bump to version 6 instead of version 4.

FTMS BLE Service Integration

  • Added experimental support for the FTMS BLE Profile, allowing compatibility with applications leveraging this protocol.

Over-the-Air (OTA) Firmware Updates

  • Introduced OTA firmware update functionality, so users can now perform firmware updates directly from the Web GUI and track the status of the update in a progress dialog.

Enhanced Device Information

  • Expanded the Settings Dialog to include data from the BLE Device Information service (such as Manufacturer details, Firmware version.)

UI and UX Enhancements

  • Migrated to Material Design 3 for a modernized look and feel.
  • Improved spinner overlay design.
  • Updated BLE connection status feed back (e.g. service details are only displayed when the device is connected, settings are disabled in settings when no device is connected).
  • Enhanced the layout and usability of the Settings Dialog.
  • Added tooltips with a 1-second delay for better accessibility.

General Updates and Improvements

Bug Fixes and Optimizations

  • Fixed a concurrency bug in BLE notifications that prevented exceptions when writing to characteristics before startNotifications completed.
  • Optimized BLE stream handling by resolving an issues with incorrectly destroying observables in settings.

Refactoring and Code Modernization

  • Service Layer Improvements:
    • Refactored the ErgDataService class into smaller, modular components based on functionality.
    • Simplified repetitive code using static utility functions.
  • Signal-Based State Management:
    • Migrated components to Angular's Signals API for improved performance and readability.
    • Updated components to use InputSignals for better data flow.
  • Standalone Components:
    • Removed NgModules and adopted Angular's standalone component model for cleaner architecture.
  • Refactored Configuration Management:
    • Streamlined configuration handling with a single BehaviorSubject to store state.
  • Transitioned to Vite:
    • As part of Angular 18 update move to Vita, improving build performance and dev server speed.

Full Changelog: 3.3.0...6.0.0

Support new BLE metrics and add logbook feature

10 Jul 12:37
Compare
Choose a tag to compare

Version 3.3.0

This release adds support for the Extended BLE API introduced in ESPRM version 5.2 and brings substantial enhancements to the application's functionality. The focus is on user experience improvements, new features, and various bug fixes. The update also introduces several optimizations to ensure smoother and more efficient operation.

Note: This release contains some experimental features which may require user feedback for further refinement.

New Features

Support for New BLE Metrics

  • Extended BLE Metrics: Adds support for Extended BLE metrics, deprecating the WebSocket connection. For backward compatibility, the WebSocket API can still work, but it will be removed in the next major version.
  • Delta Time Logging via BLE: Added functionality to allow receiving delta times via Bluetooth for logging, debugging, and row data analysis purposes.
  • Handle Force Data: Adds support for processing stroke handle force data via BLE.

Logbook Management

Added experimental support for data persistence via the StorageManager API in supported browsers. This feature aims to prevent accidental database deletions and is currently tested in Chrome and Mobile Chrome.

  • Logbook Feature: Added a Logbook feature for managing session data. Users can now delete and download recorded sessions directly from the Logbook dialog.
  • Support for Extended BLE Metrics: Adds support for Extended BLE metrics, deprecating the WebSocket connection. For backward compatibility, the WebSocket API can still work, but it will be removed in the next major version.
  • TCX Export: Implemented the option to export workout data to TCX format, facilitating easy import into platforms like Strava.
  • Database Import/Export: Introduced the ability to import and export databases, making it easier to transfer data between clients. This feature leverages Dexie's native full database import/export capabilities, with the exported files in JSON format for easy editing.

Note: The Logbook feature has some caveats. Please read the README.

General Updates and Fixes

Improved BLE Connection Handling

  • Error Handling and Reconnect: Enhanced error handling for BLE connections, including better feedback through snack bar messages and a more robust reconnect mechanism. Improved the initial connection process and added functionality to restart BLE scanning upon visibility changes.

UI and UX Enhancements

  • PWA Installation: Added a service worker and converted the app to a PWA to be accessible offline. Enhanced the PWA installation experience by adding screenshots to the installation process. The use of PWA allows hosting the WebGUI via GitHub pages, removing issues with secure contexts and SSL certificates. The WebGUI can be accessed here.
  • Connection Indication: Added a connecting state to the BLE connection status API, providing users with clearer feedback during connection attempts.
  • Dialog Components: Added a close button component to dialogs for better user control.
  • Snack Bar Improvements: Enhanced the confirm snack bar API to allow customization of the confirm button text and made the software update snack bar permanently visible with a dismiss button.
  • Icons and Tooltips: Updated icons to use Material Symbols and added tooltips to improve usability. Fixed styling issues with Angular Material dialog titles.

Code Refactoring and Maintenance

  • Settings Refactor: Refactored the SettingsBarComponent to use services instead of Input/Output properties, improving maintainability.
  • Service Layer Refactor: Reworked the data service layer for better flexibility by separating data into individual providers/streams.
  • Constructor Refactor: Improved code readability by refactoring data service constructor setups into more expressive functions.
  • Interface Declarations: Split interface declarations into separate files for better maintainability.

Bug Fixes

  • Angular Updates: Updated Angular to the latest version and resolved related errors.
  • Chunk Processing: Fixed an issue with handleForces chunk processing, ensuring correct data handling across multipart datasets.
  • HR Data Handling: Resolved issues with heart rate (HR) data display, ensuring it hides correctly after monitor disconnections and retries HR measurements appropriately.

Full Changelog: 3.0.1...3.3.0

Update to meet ESP Rowing Monitor API changes

07 Mar 15:23
Compare
Choose a tag to compare

This release updates the GUI to comply with the breaking changes implemented in ESP Rowing Monitor's WebSocket API as well as:

  • adds wake lock to prevent screen going to sleep
  • adds time stamps to the received data
  • allows saving of deltaTimes in a separate file
  • includes bug fixes to the BLE HR monitor and media queries
  • updates some dependencies

Full Changelog: 2.0.0...3.0.1

Add Heart Rate Monitor capability and other fixes

04 Sep 16:24
Compare
Choose a tag to compare

This version adds both BLE and ANT+ capabilities to the WebGUI as well as fixes some bugs/improves view layout on mobiles

MVP release

07 Apr 19:33
Compare
Choose a tag to compare

This is the first fully functional release of the WebGUI for the ESP Rowing Monitor.