-
Notifications
You must be signed in to change notification settings - Fork 0
Long term Statistics
Beyond the live sensors, the integration imports long-term statistics under the suunto_app: namespace. These exist specifically to solve a problem a normal sensor can't: retroactive backfill. A sensor only records the value present at poll time; if your watch syncs to the app hours (or days) late, those past hours would be lost. Statistics are imported with their real timestamps, so a late sync fills the missed hours retroactively, giving a gap-free curve.
These are external statistics, not entities. They will not appear in your entity list, won't add to the sensor count, and are viewed in a Statistics Graph card (or ApexCharts) - see Dashboard Examples.
- The dense workout heart-rate samples aren't in the live 24/7 stream, and they are backdated + sub-hourly. HA's only supported way to ingest backdated data is hourly statistics.
- A delayed watch→app sync means data arrives late. The import re-runs over a rolling ~5-day window each history cycle, so late hours are filled idempotently. (Data older than the window won't backfill.)
| Statistic ID | Type | Unit | Source |
|---|---|---|---|
suunto_app:hr |
mean / min / max | bpm | 24/7 stream (~10 min) + dense workout HR (~25 s) folded in, so workout peaks show. |
suunto_app:steps |
sum | steps | 24/7 only (workout totals already live in the 24/7 stream - adding them would double-count). |
suunto_app:energy |
sum | kcal | 24/7 only. |
suunto_app:recovery_balance |
mean | % | Recovery stream (~30 min). |
suunto_app:stress |
mean | - | Recovery stream. |
| Statistic ID | Unit | From |
|---|---|---|
suunto_app:sleep_duration |
h | sleep series |
suunto_app:sleep_hrv |
ms | sleep series |
suunto_app:sleep_rhr |
bpm | sleep series |
suunto_app:sleep_quality |
% | sleep series |
suunto_app:sleep_spo2 |
% | sleep series |
suunto_app:readiness |
- (0-100) | Derived Metrics |
suunto_app:fitness_ctl |
- | training-load model |
suunto_app:fatigue_atl |
- | training-load model |
suunto_app:form_tsb |
- | training-load model |
The daily metrics come from data already fetched (60-day sleep series, 90-day workouts), so a late-synced night or day fills in retroactively too. The CTL/ATL/TSB trend emits the recent ~60 days (stable past the seeded ramp).
Add a Statistics Graph card (Dashboard → + Add Card → Statistics Graph) and pick the suunto_app:* ids. The HR statistic is the way to see a gap-free intraday HR curve with workout peaks - the live current_hr sensor cannot be filled backwards.
Minimal example (full set in Dashboard Examples):
type: statistics-graph
title: Heart rate (intraday)
chart_type: line
period: hour
stat_types:
- mean
- min
- max
entities:
- suunto_app:hrtype: statistics-graph
title: Fitness / Fatigue / Form
chart_type: line
period: day
stat_types:
- mean
entities:
- suunto_app:fitness_ctl
- suunto_app:fatigue_atl
- suunto_app:form_tsbYou can also inspect/clean them in Developer Tools → Statistics.
- Backfill window ~ 5 days. A sync delayed beyond that won't fill the part older than the window.
- The import runs in the history coordinator (hourly cadence is plenty) and is wrapped so an import hiccup never blanks the normal sensor update - but a genuine auth failure still triggers reauth.
- Requires the Recorder integration (declared as an
after_dependencies).
ha-suunto - Unofficial Suunto integration for Home Assistant - Not affiliated with Suunto / Amer Sports / Sports-Tracker - Report an issue
Getting started
Reference
Build with it
Under the hood
Help