Polar Smart-Home-Integration, kostenlos und Open Source

Deine Polar-Uhr in Gladys: Aktivität, Schlaf, Nightly Recharge, Trainings und Szenen.
Überblick
Diese Integration bringt die Daten deines Polar-Flow-Kontos (Polar-Uhren und Herzfrequenzsensoren) über die offizielle Polar-AccessLink-API in Gladys: heutige Aktivität, letzte Nacht, Nightly Recharge, Trainings und Cardio Load, als Gerät, Dashboard-Widgets und Szenen.
- Ein Gerät pro verknüpftem Konto („Polar Marie“): Schritte, aktive Zeit, Kalorien, Strecke und Tagesziel; Schlafwert und Schlafdauer; Nightly-Recharge-Status, ANS-Ladung, Herzfrequenzvariabilität, Herz- und Atemfrequenz der Nacht; Cardio-Load-Status und -Verhältnis.
- Widgets: heute (mit einer Taste Jetzt abrufen), letzte Nacht, letzte Trainings, letzte sieben Tage.
- Szenen: Training synchronisiert, neue Nacht, neue Nightly Recharge, Aktivitätsziel erreicht; eine Aktion liest die letzten Werte (inklusive Gewicht) für eine Nachricht oder Bedingung.
- Cloud: Deine Daten gehen zwischen den Servern von Polar und deinem Gladys hin und her, mit deinem eigenen AccessLink-Client; nichts läuft über einen Drittserver. Polar schickt Gladys keine Benachrichtigung: Die Integration fragt Polar alle 30 Minuten ab (einstellbar) und wenn du Jetzt abrufen drückst.
- Nach der Synchronisierung der Uhr: Polar kennt nur, was die Uhr mit Polar Flow synchronisiert hat (App oder Computer). Eine Nacht erscheint nach der Synchronisierung am Morgen, ein Training nach seiner eigenen.
Community-Integration, nicht mit Polar Electro verbunden. Bisher nicht mit einem echten Polar-Konto getestet: Sag uns, was du siehst.

Voraussetzungen
- Gladys 5.3.0 oder neuer.
- Ein Polar-Flow-Konto mit einer Polar-Uhr oder einem Sensor, der mit Polar Flow synchronisiert.
- Ein kostenloser AccessLink-API-Client, einmalig mit deinem Polar-Flow-Konto erstellt (etwa fünf Minuten). Polar bietet keinen gemeinsamen Schlüssel, und die Integration enthält keinen.
Konfiguration
1. Erstelle deinen AccessLink-Client
-
Öffne admin.polaraccesslink.com und melde dich mit deinem Polar-Flow-Konto an.
-
Akzeptiere bei Nachfrage die AccessLink-Bedingungen und erstelle dann einen neuen Client (Anwendung): einen Namen („Gladys“), eine Beschreibung, eine Kontakt-E-Mail und, falls gefragt, eine Website (
https://gladysassistant.comgenügt). -
Als Autorisierungs-Weiterleitungs-URL (Callback) gibst du genau ein:
https://my.gladysassistant.com/redirect/oauthDas ist die HTTPS-Seite von Gladys, die deinen Browser zu deiner Instanz zurückschickt, egal unter welcher Adresse. Wenn du Gladys über HTTPS erreichst und im Konfigurationsbildschirm die erweiterte Option „Instanzadresse“ aktiviert hast, trage stattdessen die dort angezeigte Adresse ein (oder beide: Polar akzeptiert mehrere URLs, die gesendete muss genau einer entsprechen).
-
Speichere und kopiere dann die Client-ID und das Client-Secret des Clients.
2. In Gladys
- Öffne die Integration Polar, füge Client-ID und Client-Secret ein und speichere.
- Klicke auf Mit Polar verbinden, melde dich bei Polar Flow an und stimme zu. Du kehrst verbunden zu Gladys zurück: Die Integration registriert dein Konto bei deinem Client und liest es.
- Gehe zu Entdecken und füge das Gerät „Polar …“ hinzu, dann die Widgets zu einem Dashboard.
- Synchronisiere deine Uhr mit Polar Flow: Polar teilt nur Daten, die nach der Verknüpfung synchronisiert wurden. Drücke dann Jetzt abrufen (oder warte auf die nächste Abfrage).
| Feld | Standard | Zweck |
|---|---|---|
| Client-ID | — | Die Client-ID deines AccessLink-Clients. |
| Client-Secret | — | Sein Secret, nie angezeigt und nie in die Protokolle geschrieben. |
| Mit Polar verbinden | — | Verknüpft dein Polar-Flow-Konto (nur Lesen: accesslink.read_all). |
| Abfrageintervall | 30 Min. | 15, 30, 60 oder 120 Minuten; jede Abfrage kostet 5 oder 6 Anfragen. |
| Sprache der Texte | Automatisch | Geräte- und Funktionsnamen, Cardio-Load-Status und Szenentexte. |
Tasten: Jetzt abrufen (nicht zweimal innerhalb von zwei Minuten), Polar-Konto trennen (meldet es von deinem Client ab und vergisst das Token; das Gerät bleibt) und Diagnose (schreibt eine anonymisierte Zusammenfassung in den Tab Protokolle).
Verwendung
Gerät
| Funktion | Einheit / Skala | Aktualisiert |
|---|---|---|
| Schritte heute | Schritte | nach jeder Synchronisierung |
| Aktive Zeit heute | Minuten | nach jeder Synchronisierung |
| Kalorien heute | kcal | nach jeder Synchronisierung |
| Strecke heute | km (aus den Schritten) | nach jeder Synchronisierung |
| Tägliches Aktivitätsziel | % (kann 100 übersteigen) | nach jeder Synchronisierung |
| Schlafwert | 1 bis 100 | nach der Synchronisierung morgens |
| Schlafdauer | Stunden | nach der Synchronisierung morgens |
| Nightly-Recharge-Status | 1 sehr schwach … 6 sehr gut | nach der Synchronisierung morgens |
| ANS-Ladung | -10 bis +10 | nach der Synchronisierung morgens |
| Herzfrequenzvariabilität (Nacht) | ms (RMSSD) | nach der Synchronisierung morgens |
| Herzfrequenz nachts | S/min | nach der Synchronisierung morgens |
| Atemfrequenz | Atemzüge pro Minute | nach der Synchronisierung morgens |
| Cardio-Load-Verhältnis | Belastung / Toleranz | nach einem Training |
| Cardio-Load-Status | Text | nach einem Training |
„Heute“ folgt der Zeitzone von Gladys. Vor der ersten Synchronisierung des Tages behalten die Aktivitätsfunktionen den letzten Wert von gestern (ihr Datum zeigt es). Gladys kennt keine Gewichtseinheit: Das Gewicht liefert nur die Szenenaktion.
Szenen
| Auslöser | Wann | Filter |
|---|---|---|
| Training synchronisiert | ein neues Training ist in Polar Flow angekommen | Konto, Sportart |
| Neue Nacht verfügbar | die Nacht der letzten zwei Tage ist in Polar Flow angekommen | Konto |
| Nightly Recharge verfügbar | die Nightly Recharge der letzten zwei Tage ist angekommen | Konto, Status 1-6 |
| Aktivitätsziel erreicht | die heutige Aktivität hat 100 % des Ziels erreicht, einmal pro Tag | Konto |
Jedes Ereignis trägt seine Werte ({{triggerEvent.data.sleep_score}}, duration_minutes, status_label…) und eine fertige summary. Für Daten, die beim Start der Integration schon da sind, wird nichts ausgelöst. Die Aktion Polar: letzte Daten lesen liefert heutige Aktivität, letzte Nacht, Nightly Recharge, Trainingsstatus, letztes Training und Gewicht aus der letzten Abfrage.
Beispiele:
- Neue Nacht verfügbar → „{{triggerEvent.data.summary}}“ beim Aufwachen aufs Handy schicken.
- Nightly Recharge verfügbar, Status 1 oder 2 → die Morgenbeleuchtung sanfter stellen und die Trainingserinnerung verschieben.
- Training synchronisiert, Sportart „Laufen“ → den Handtuchheizkörper im Bad einschalten.
Fehlerbehebung
- Polar meldet „redirect_uri“ oder eine Fehlerseite nach dem Verbinden: Die Weiterleitungs-URL des Clients ist nicht identisch mit der von Gladys gesendeten. Prüfe
https://my.gladysassistant.com/redirect/oauth(ohne Schrägstrich am Ende) im Client auf admin.polaraccesslink.com. Der Tab Protokolle zeigt die verwendete Weiterleitungs-URI. - „Polar hat die Verbindung abgelehnt (invalid_client)“: falsche Client-ID oder falsches Secret. Kopiere beide erneut und speichere vor dem Verbinden.
- „Verbindung abgelehnt: Die Antwort passt nicht“: Die Autorisierung ist abgelaufen (10 Minuten) oder wurde doppelt geöffnet. Klicke erneut auf Mit Polar verbinden.
- „Polar gibt die Daten nicht frei“ (HTTP 403): Akzeptiere die Pflichteinwilligungen deines Kontos auf account.polar.com und drücke dann Jetzt abrufen.
- „Polar hat den Zugriff abgelehnt“: Das Token wurde widerrufen (in Polar Flow, durch Trennen oder nach etwa einem Jahr). Klicke erneut auf Mit Polar verbinden.
- Nichts für heute: Synchronisiere zuerst die Uhr mit Polar Flow; Polar teilt nur Daten, die nach der Verknüpfung synchronisiert wurden.
- Ein Problem melden: GitHub-Issues mit den Versionen von Gladys und der Integration, dem Uhrmodell und den Zeilen der Taste Diagnose (ohne Token und Namen).
Warum keine sofortige Benachrichtigung? Die Webhooks von Polar brauchen eine öffentliche Adresse, die Polar antwortet, und signierte Anfragen, deren Header Gladys Plus nicht weitergibt: Die Integration fragt Polar daher in ihrem eigenen Takt ab.
Konfigurationseinstellungen
Diese Einstellungen fragt Polar in seinem Konfigurationsbildschirm in Gladys ab.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| 1. Dein AccessLink-API-Client | section | Nein | Polar stellt keinen gemeinsamen Schlüssel bereit: Melde dich mit deinem Polar-Flow-Konto bei admin.polaraccesslink.com an und erstelle einen kostenlosen API-Client (eine „Anwendung“). Als Autorisierungs-Weiterleitungs-URL gibst du genau https://my.gladysassistant.com/redirect/oauth ein. Kopiere dann seine Client-ID und sein Secret hier unten. Die Dokumentation beschreibt jeden Schritt. |
| Client-ID | string | Ja | Wird von admin.polaraccesslink.com nach dem Erstellen des Clients angezeigt. |
| Client-Secret | secret | Ja | Wird neben der Client-ID angezeigt. Nie in die Protokolle geschrieben. |
| 2. Verbinde dein Polar-Flow-Konto | section | Nein | Zuerst speichern, dann auf die Schaltfläche klicken und bei Polar Flow zustimmen. Polar teilt nur Daten, die nach dieser Verknüpfung synchronisiert werden: Synchronisiere danach deine Uhr mit Polar Flow. Verbinde dich erneut, wenn Gladys einen abgelehnten Zugriff meldet. |
| Mit Polar verbinden | oauth2 | Nein | Gladys fragt nur Lesezugriff auf deine Daten an (accesslink.read_all) und ändert nichts in Polar Flow. |
| 3. Optionen | section | Nein | |
| Abfrageintervall | select | Nein | Polar schickt Gladys keine Benachrichtigung: Die Integration fragt Polar in diesem Takt ab (5 oder 6 Anfragen pro Abfrage) und bei jedem Tippen auf Jetzt abrufen. |
| Sprache der Texte | select | Nein | Geräte- und Funktionsnamen, Cardio-Load-Status und Szenentexte. Automatisch: die Sprache deines Dashboards, sobald ein Widget angezeigt wurde. |
So installierst du Polar in Gladys
- Öffne in Gladys Integrationen: Polar erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- Klicke auf Installieren. Gladys lädt das Docker-Image (
ghcr.io/william-de71/gladys-polar:0.1.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration). - Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
- Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/William-De71/gladys-polar.
Polar benötigt Gladys >=5.3.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.
Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.
Über externe Integrationen
Polar ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von William-De71 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.
- Alle Integrationen durchsuchen, native und aus der Community
- Deine eigene externe Integration bauen und veröffentlichen
- Quellcode auf GitHub — Quelle dieser Dokumentation