Skip to main content

Garmin Connect smart home integration, free and open source

Garmin Connect integration for Gladys Assistant

Garmin watches, scales and health data (steps, sleep, Body Battery) in Gladys.

Brings your Garmin account into Gladys: the health values of the day (steps, heart rate, sleep, Body Battery, stress, weight...), your Garmin devices (watches, bike computers, Index scales...), your activities, scene triggers and actions, and three dashboard widgets.

Garmin offers no public API to individuals. The integration signs in the way the Garmin Connect app does and only reads your data. Garmin can change that sign-in at any time: if it stops working, update the integration.

Configuration​

  1. Open the Configuration tab of the integration.
  2. Enter the email and password of your Garmin Connect account.
  3. Optional settings:
    • Garmin region: garmin.cn for accounts created in China only;
    • Time zone of your account (e.g. Europe/Paris), to know which day "today" is;
    • Synchronization interval: 15 minutes by default, 5 minutes minimum (Garmin limits its API);
    • Low Body Battery threshold of the scene trigger (20 by default);
    • Language of device names created in Gladys.
  4. Save. Without two-step verification, the integration signs in right away.

Two-step verification (MFA)​

If your account asks for a code:

  1. When you save, Garmin sends you a code (email, SMS or authenticator app) and the connection status asks for it. No code received? Run the Sign in action with an empty code to get a new one.
  2. Run Sign in with that code.

The session is then kept in the integration volume and refreshed on its own: the code is not asked again, even after a restart.

Devices​

Open the Discovery tab and add:

  • Garmin Connect - <your name>: the values of the day. They belong to the account (Garmin merges all your watches), so the history survives a watch replacement;
  • one device per Garmin product of your account, with the last synced device flag and the time since its last sync (known for the device that synced last).

A value your devices do not measure (no scale → no weight) simply stays empty.

Actions​

  • Sign in — signs in (and finishes two-step verification).
  • Test the connection — reads Garmin Connect and shows your steps of the day.
  • Synchronize now — reads Garmin Connect without waiting for the interval.
  • Sign out — deletes the Garmin session from Gladys.

Scenes​

Under the Integrations category of the scene editor (Gladys 5.1 or later):

Triggers:

  • Garmin activity completed — optionally filtered by type (running, cycling, walking, hiking, swimming, strength training, other). Variables: activity_type, activity_name, distance_km, duration_minutes, calories, average_hr (e.g. {{triggerEvent.data.activity_name}}).
  • Daily step goal reached — once a day (steps, step_goal).
  • Body Battery low — when it drops below the configured threshold (body_battery, threshold).
  • Night of sleep recorded — when last night reaches Garmin Connect, usually at the morning sync (sleep_hours, sleep_score).
  • New weigh-in (weight_kg, body_fat, bmi).
  • Garmin device synced — optionally for one device (device_name).

Actions:

  • Synchronize Garmin Connect — outputs synced, steps, body_battery.
  • Get the Garmin daily summary — the values of the day as outputs (steps, sleep, resting heart rate, Body Battery, stress, HRV, weight...).
  • Get the last Garmin activity — found, name, type, distance_km...

Example: "When a night of sleep is recorded and the sleep score is below 60, send me a message with the sleep duration".

The values themselves are device features: the standard "device state" trigger works too (e.g. "Body Battery above 80").

Dashboard​

  • Garmin daily summary — live steps, Body Battery, resting heart rate, sleep score, stress and distance, plus account, step goal, last sync and last activity, and a Sync now button.
  • Garmin activities — your 3, 5 or 8 latest activities; each opens its details and a link to Garmin Connect.
  • Garmin health trend — the history of one metric (steps, heart rate, Body Battery, stress, sleep, HRV, weight) over 7 days to a year.

Troubleshooting​

  • "Garmin refused the sign-in": check the email and password (try them on connect.garmin.com), save, then run Sign in.
  • "Garmin is temporarily blocking sign-ins": Garmin rate-limits sign-ins per network. The integration waits one hour before trying again on its own; you can retry with Sign in.
  • No value for a feature: Garmin had no data for it today (no weigh-in, no HRV sensor on your watch...).
  • Check the integration logs from the Gladys interface, with LOG_LEVEL=debug for the full detail. The logs never contain your password nor your session.

Configuration settings​

These are the settings Garmin Connect asks for in its configuration screen in Gladys.

SettingTypeRequiredDescription
Your Garmin Connect accountsectionNoEnter the credentials of your Garmin Connect account. Garmin offers no public API to individuals: the integration signs in like the Garmin Connect app and only reads your data. With two-step verification, save, then run the "Sign in" action twice: once to receive the code, once with the code.
EmailstringYes
PasswordsecretYesOnly sent to Garmin to sign in; the session is then kept in the integration volume.
Garmin regionselectNo
Time zonestringNoTime zone of your Garmin account, to know which day "today" is.
Synchronization interval (s)numberNoHow often Garmin Connect is read, in seconds (5 minutes minimum: Garmin limits its API).
Low Body Battery thresholdnumberNoThe "Body Battery low" scene trigger fires when the level drops below this value.
Language of device namesselectNoLanguage of the device and feature names created in Gladys.

How to install Garmin Connect in Gladys​

  1. In Gladys, open Integrations: Garmin Connect appears in the catalog, next to the native integrations, with a community badge.
  2. Click Install. Gladys pulls the Docker image (ghcr.io/gboulvin/gladys-garminconnect:2.0.0), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration).
  3. Open the Configuration screen of the integration, fill in the settings, and save.
  4. You can also install it directly from its repository URL: https://github.com/gboulvin/Gladys-GarminConnect.

Garmin Connect requires Gladys >=5.1.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.

Not running Gladys yet? It is free and open source: follow the installation guide to get started.

About external integrations​

Garmin Connect is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by gboulvin, not by the Gladys core team.

Subscribe to the Gladys Assistant newsletter

A few emails per month about new releases and project news. Sent by Pierre-Gilles Leymarie, founder of the project. Unsubscribe anytime 🙂