-
Notifications
You must be signed in to change notification settings - Fork 0
Automations & Templates
Ideas and snippets for using the sensors in automations, template sensors and notifications. Adjust the sensor.suunto_... prefix to your device (see Sensors).
The integration is read-only - there are no actions/services to call. These examples consume its sensors.
alias: Suunto - low readiness in the morning
triggers:
- trigger: time
at: "07:30:00"
conditions:
- condition: numeric_state
entity_id: sensor.suunto_readiness
below: 40
actions:
- action: notify.mobile_app_your_phone
data:
title: "Take it easy today"
message: >
Readiness {{ states('sensor.suunto_readiness') }} -
HRV {{ states('sensor.suunto_sleep_hrv') }} ms,
slept {{ states('sensor.suunto_sleep_duration') }} h.alias: Suunto - ACWR high
triggers:
- trigger: numeric_state
entity_id: sensor.suunto_acwr
above: 1.5
actions:
- action: persistent_notification.create
data:
title: "Training load spiking"
message: >
Acute:chronic load ratio is {{ states('sensor.suunto_acwr') }}
(sweet spot ~0.8-1.3). Consider an easier day.last_workout_start is a timestamp; fire when it changes to a new value.
alias: Suunto - new workout synced
triggers:
- trigger: state
entity_id: sensor.suunto_last_workout_start
conditions:
- "{{ trigger.from_state.state not in ['unknown', 'unavailable'] }}"
actions:
- action: notify.mobile_app_your_phone
data:
message: >
New {{ states('sensor.suunto_last_activity') }}:
{{ (states('sensor.suunto_last_distance') | float(0) / 1000) | round(1) }} km,
{{ states('sensor.suunto_last_duration') }} min,
TSS {{ states('sensor.suunto_last_tss') }}.template:
- sensor:
- name: Suunto form label
state: >
{% set tsb = states('sensor.suunto_form_tsb') | float(0) %}
{% if tsb > 15 %}Fresh / tapered
{% elif tsb > 5 %}Fresh
{% elif tsb > -10 %}Neutral
{% elif tsb > -30 %}Fatigued
{% else %}Very fatigued{% endif %}template:
- sensor:
- name: Suunto restorative sleep
unit_of_measurement: "%"
state: >
{% set deep = states('sensor.suunto_sleep_deep') | float(0) %}
{% set rem = states('sensor.suunto_sleep_rem') | float(0) %}
{% set dur = states('sensor.suunto_sleep_duration') | float(0) * 60 %}
{{ ((deep + rem) / dur * 100) | round(0) if dur > 0 else none }}sensor.suunto_workouts_recent carries the last 15 sessions in its workouts attribute. Iterate it in templates (also used by the table card in Workouts Calendar & Recent):
{% for w in state_attr('sensor.suunto_workouts_recent', 'workouts') %}
{{ w.activity }} - {{ (w.distance_meters / 1000) | round(1) }} km
{% endfor %}Inspect the real attribute shape in Developer Tools → States before relying on a specific key.
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