Skip to content

Xiaomi Content Helper - #4494

Open
cagnulein wants to merge 44 commits into
masterfrom
Xiaomi-Content-Helper
Open

Xiaomi Content Helper#4494
cagnulein wants to merge 44 commits into
masterfrom
Xiaomi-Content-Helper

Conversation

@cagnulein

Copy link
Copy Markdown
Owner

@cagnulein cagnulein linked an issue Apr 17, 2026 that may be closed by this pull request
@stale

stale Bot commented May 30, 2026

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale Bot added the wontfix This will not be worked on label May 30, 2026
@stale stale Bot removed the wontfix This will not be worked on label Jun 5, 2026
cagnulein and others added 4 commits June 8, 2026 15:54
The 0.8 threshold controlling how far into the next zone the PID
'Pushy' mode can push was hardcoded. Exposed it as a QSettings entry
(default 0.8) and added a TextField control under Training Program
Options in settings.qml.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Automatic update of translatable strings extracted from source code.
Updated 30 language files in src/translations/

- Updated by GitHub Actions (Testing Mode)
- Triggered by: pull_request
- Date: 2026-06-08 13:56:27 UTC
cagnulein and others added 9 commits June 12, 2026 09:39
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The hook counts entries in the "settings" array of settings-catalog.json
and updates settingCount before every commit, so the field never drifts.
Also documents the check in src/CLAUDE.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The #endif closed the Q_OS_ANDROID block but the function itself was
never closed, causing a cascade of 'qualified-id in declaration before
token' errors on non-Android builds (Raspberry Pi).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace the auto-computed zone 1 lower boundary (zone1Limit - zoneWidth)
with a user-adjustable setting trainprogram_pid_hr_recovery_zone_limit
(default 60% of max HR). Appears in UI above the existing Pushy Zone Limit
setting. Allows users to fine-tune the lower boundary of zone 1 so the
speed-up trigger adapts to their individual heart rate profile.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@stale

stale Bot commented Jun 28, 2026

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale Bot added the wontfix This will not be worked on label Jun 28, 2026
@stale stale Bot closed this Jul 5, 2026
@cagnulein cagnulein reopened this Jul 6, 2026
@stale stale Bot removed the wontfix This will not be worked on label Jul 6, 2026

Copy link
Copy Markdown
Owner Author

I split the non-heart changes into a new PR: #4786.

Keeping this PR open because it still contains the heart-rate related changes that need separate review/validation, especially:

  • the heart-rate belt discovery/connection refactor in bluetooth.cpp / bluetooth.h
  • the PID HR Pushy zone-limit/recovery-zone settings and behavior changes

So #4786 can move forward with the Android Content Helper and related non-heart work, while this PR remains the place to review the heart-rate behavior that does not look fully settled yet.

@stale

stale Bot commented Jul 24, 2026

Copy link
Copy Markdown

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale Bot added the wontfix This will not be worked on label Jul 24, 2026
Stryd 5 pods broadcast a power value that already compensates for the
treadmill incline on their own, even when no incline is entered in the
Stryd app. This conflicts with QZ's own inclination gain formula and
makes the reported power unreliable when running on an incline.

BLE sniffing (thanks @AndreaPro) found that writing 15 00 to the
proprietary characteristic 7e78aa18-72cd-d3b8-a81f-5b7e589bea0f puts
the pod into Indoor mode, where it stops adjusting power for incline
on its own, leaving QZ's own formula as the only source of the
correction. The pod resets to Outdoor mode automatically on
disconnect, so no cleanup is needed on our side.

Refs #4480
Andrea found (via BLE sniffing) that the Stryd5 pod acknowledges the
15 00/15 01 mode write on characteristic 7e78aa19, echoing the
confirmed mode back in byte 2. Track that ack and resend the Indoor
mode request (up to 3 times, 1s apart) if it's not received, in case
the initial write is missed or the pod boots into Outdoor mode.

Refs #4480
The mode-switch write was targeting 7e78aa18, which is the service
UUID, not a characteristic UUID - the service only exposes two
characteristics, 7e78aa20 (write, handle 33) and 7e78aa19 (notify,
handle 35), confirmed from Andrea's GATT discovery log. The write
never matched any characteristic, so the mode switch silently never
fired. Target 7e78aa20 instead.

Refs #4480
@stale stale Bot removed the wontfix This will not be worked on label Jul 29, 2026
@stale stale Bot closed this Aug 7, 2026
@cagnulein cagnulein reopened this Aug 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Treadmill Auto-adjust Speed by Power

1 participant