Roberto Viola 8f7204df07 Add HRV (Heart Rate Variability) support from HR belt (#4216)
* Add HRV (Heart Rate Variability) support from HR belt

- Parse RR-intervals from Bluetooth Heart Rate Measurement packets
- Calculate RMSSD (Root Mean Square of Successive Differences) as HRV metric
- Add HRV tile to display live HRV value in ms
- Save HRV data to FIT file as custom developer field
- Add tile_hrv_enabled and tile_hrv_order settings

Fixes #4194

* Add standard FIT HRV message support with RR-intervals

- Store all RR-intervals in SessionLine for FIT file saving
- Add getRRIntervalsAndClear() method to bluetoothdevice
- Write fit::HrvMesg with RR-intervals in standard FIT format
- Each HrvMesg contains up to 5 RR-intervals in seconds

This makes HRV data compatible with Garmin Connect and other
tools that read standard FIT HRV records.

* Remove non-standard hrv_rmssd developer field from FIT file

Keep only the standard HrvMesg format with RR-intervals.
The hrv field in SessionLine is still used for the HRV tile display.

* Fix missing hrv and rrIntervals params in gap-fill SessionLine

The gap-fill SessionLine constructor was missing the hrv and rrIntervals
parameters that were added to support HRV data from heart rate belts.

* Add missing HRV parameters to SessionLine in mainwindow.cpp

The SessionLine constructor in mainwindow.cpp was also missing
the hrv and rrIntervals parameters added for HRV support.

* Add HRV tile setting to settings-tiles.qml

Added the tile_hrv_enabled and tile_hrv_order properties and UI
component to allow users to enable and configure the HRV tile
that displays heart rate variability from compatible HR belts.

* Add HRV tile properties to settings.qml

Added tile_hrv_enabled and tile_hrv_order properties to the main
settings.qml file to mirror the settings-tiles.qml definitions.

* Fix HRV RMSSD calculation window size

Reduced RMSSD calculation window from 120 to 30 samples. The larger
window was including heart rate transitions (rest to exercise), causing
artificially high RMSSD values during exercise. A 30-sample window
(~20-30 seconds) provides more accurate real-time HRV measurements.

* Revert "Fix HRV RMSSD calculation window size"

This reverts commit fd3611298e.

* Reapply "Fix HRV RMSSD calculation window size"

This reverts commit f7951b4562.

* Update homeform.cpp

* Increment allSettingsCount to 861

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-17 11:22:12 +01:00
2026-02-17 09:47:46 +01:00
2021-01-13 11:31:30 +01:00
2022-05-07 21:16:50 +01:00
2024-03-03 16:47:42 +01:00
2024-06-17 09:32:57 +02:00
2022-11-05 07:05:53 +01:00
2026-02-04 05:00:53 +01:00
2022-11-05 07:05:53 +01:00
2025-08-29 08:43:29 +02:00
2023-06-28 13:24:18 +02:00
2020-09-09 17:42:43 +02:00
2026-02-17 09:47:46 +01:00
2024-12-27 14:25:24 +01:00

qdomyos-zwift

Zwift bridge for Treadmills and Bike!

QZ is not affiliated with or endorsed by any subscription service or maker of exercise equipment.

Buy Me A Coffee

Features

UI Features

Feature Bike Treadmill Elliptical Rower Notes
Tiles Customization X X X X Order and visibility of each tile
Profiles X X X X Different user or different fitness device profiles
UI Zoom Customization X X X X

Peloton Features

Feature Bike Treadmill Elliptical Rower Notes
Bike metrics on the peloton app X X
Power zone with auto resistance X
Peloton real-time resistance conversion X X with the possibility to customize it
Peloton real-time auto-resistance X X with the possibility to customize it
Peloton auto speed and auto inclination X X with the possibility to customize it

Heart Rate Features

Feature Bike Treadmill Elliptical Rower Notes
Heart Rate support X X X X Apple Watch, ANT+ devices and Bluetooth devices
Heart Rate Zones Customizations X X X X
Ability to calculate Wattage from HR and Cadence X for the bikes that doesn't have a power sensor

3rd Apps Compatibility

Feature Bike Treadmill Elliptical Rower Notes
Zwift Compatibility X X X X
Zwift Auto resistance X X
Zwift Auto inclination and speed X X https://www.youtube.com/watch?v=KTQ2n7yeDbo
Wahoo RGT Compatibility X X X X
VzFit Compatibility X X X X
Rouvy Compatibility X X X X
IFIT app Compatibility X
Echelon app Compatibility X
Wahoo Dircon Compatibility X X X X in order to send data to Zwift or RGT with Wifi only!
One device only support for Zwift and Wahoo RGT X X X X using Wahoo Dircon https://www.youtube.com/watch?v=gYYUXNWFAok
BitGym Compatibility X X X X

Training Program

Feature Bike Treadmill Elliptical Rower Notes
Builtin video support (Kinomap like) X X X X Files could be local or on the cloud!
GPX auto following X X X X
2D/3D maps for GPX X X X X
ZWO (Zwift workout file) compatibility X X X X
XML Workout file compatibility X X X X
Auto follow workout based on your heart rate X X X X
Random workout X X X X

Statistics

Feature Bike Treadmill Elliptical Rower Notes
E-Mail report X X X X at the end of the workout
Strava integration X X X X press stop at the end of the workout to auto upload it

Misc

Feature Bike Treadmill Elliptical Rower Notes
Resistance shifting with bluetooth remote X X
TTS support X X X X
Zwift Play & Click support X
MQTT integration X X X X
OpenSoundControl integration X X X X

Installation

You can install it on multiple platforms. Read the installation procedure

Tested on

The QDomyos-Zwift application can run on Macintosh or Linux devices iOS, and Android. It supports any FTMS-compatible application software and most bluetooth enabled device.

No GUI version

run as

$ sudo ./qdomyos-zwift -no-gui

Reference

=> GitHub Repository: QDomyos-Zwift on GitHub

=> Treadmill Incline Reference: What Is 10 Degrees in Incline on a Treadmill?

=> Icon Attribution: Icons used in this documentation are from Flaticon.com

Blog

=> Related Blog: Roberto Viola's Blog

Description
No description provided
Readme GPL-3.0 597 MiB
Languages
C++ 61.1%
C 13%
QML 7.5%
Makefile 6.9%
Java 2.5%
Other 8.9%