Skip to content

Derive stress from HRV for rings whose hardware never answers a stress query #67

Description

@foureight84

Split off from #58, where it came up as a follow-up.

The R100 answers neither the stress history query (2/47) nor the stress monitor-state read-back (2/45) — 22 sends, 0 replies, across 22 sync passes — while every other state query on that ring answered (2/6 heart rate, 2/7 HRV, 2/8 blood oxygen all returned 05, 2/21 temperature returned 06). On that ring stress is absent, not switched off.

The app still advertises STRESS for it, because CRPCoordinator.capabilities is a static per-family set rather than something an individual ring confirmed. So the user sees a stress card that can never fill.

Two things to decide, and they are separable:

  1. Don't advertise what a ring doesn't have. A capability list is not evidence about an individual ring. Some form of confirmed-capability tracking would stop an empty card looking like a sync bug. This is the smaller and safer half.
  2. Derive a stress figure from HRV app-side for those rings. HRV history decodes well on the R100 (30 frames with data out of 84). A derived number must be labelled as derived — it is not what the ring measured, and presenting it as one would be worse than an empty card.

Reported by @scufitarosie, whose diagnostics export is the evidence above.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions