Withings Smart-Home-Integration, kostenlos und Open Source

Gewicht, Blutdruck, Aktivität und Schlaf deiner Withings-Waagen, -Uhren und -Messgeräte.
Diese Integration bringt die Daten deiner Withings-Geräte in Gladys: Gewicht und Körperzusammensetzung einer Waage, Blutdruck, Puls, Temperatur, Schritte und Schlaf einer Uhr oder eines Sleep Analyzer.
Die Daten kommen aus der Withings-Cloud (dieselben Daten wie in der Withings-App): Die Integration spricht nicht mit den Geräten in deinem Netzwerk.
Was du bekommst
| In Gladys | Inhalt |
|---|---|
| Gerät Withings health | Deine Messungen (Gewicht, Fett, Muskeln, Blutdruck, Puls, SpO2, Temperatur…), die heutige Aktivität, die letzte Nacht, der Zustand „im Bett“ |
| Ein Gerät pro Withings-Gerät | „Batterie schwach“ (Waagen, Blutdruckmessgeräte, Uhren, Thermometer) |
| 5 Szenenauslöser | Neue Messung, ins Bett gegangen, aufgestanden, Nachtzusammenfassung verfügbar, Schrittziel erreicht |
| 2 Szenenaktionen | Withings-Daten aktualisieren, letzten Withings-Wert lesen |
| 2 Dashboard-Widgets | Withings Gesundheit (Übersicht), Gewichtsverlauf (Diagramm) |
Die Funktionen des Geräts Withings health folgen dem, was dein Konto wirklich misst: Wer ein Blutdruckmessgerät hat, bekommt den Blutdruck, nicht zwanzig leere Funktionen zur Körperzusammensetzung. Taucht eine neue Messart auf, zeigt das Gerät in der Erkennung eine Schaltfläche Aktualisieren.
Messungen behalten ihr eigenes Datum: Eine eine Stunde später synchronisierte Wägung wird zu dem Zeitpunkt gespeichert, an dem du auf der Waage standest.
Bevor du beginnst
- Ein Withings-Konto, mit deinen Geräten in der Withings-App (Health Mate) eingerichtet und synchronisiert.
- Gladys 5.1 oder neuer.
- Optional: Gladys Plus, für Echtzeit-Benachrichtigungen (siehe unten).
1. Eine Withings-Entwickler-App erstellen
Withings verlangt, dass jede Anwendung, die seine Daten liest, angemeldet wird. Das ist kostenlos und dauert fünf Minuten.
- Gehe auf developer.withings.com und melde dich mit deinem Withings-Konto an.
- Erstelle eine Anwendung vom Typ Public API integration.
- Gib ihr einen Namen (z. B. „Mein Gladys“) und eine Beschreibung.
- Callback URL: Trage vorerst eine vorläufige Adresse ein, zum Beispiel
https://localhost/. Die richtige fügst du in Schritt 3 unten hinzu. - Speichere. Withings zeigt die Client-ID und das Client-Secret der App.
2. Die Integration konfigurieren
Öffne in Gladys Integrationen → Withings → Konfiguration:
| Feld | Was eintragen |
|---|---|
| Client-ID | Die Client-ID deiner Withings-App |
| Client-Secret | Das Client-Secret deiner Withings-App |
| Aktualisierungsintervall (min) | Wie oft Withings gelesen wird. Standard 30 Minuten (5 bis 1440) |
| Tägliches Schrittziel | Für den Auslöser „Schrittziel erreicht“. Standard 10.000 |
| Echtzeit-Benachrichtigungen (Gladys Plus) | Standardmäßig an. Funktioniert nur mit Gladys Plus |
Speichere.
3. Dein Withings-Konto verbinden
- Klicke auf Verbinden (Feld „Withings-Konto“).
- Beim ersten Mal antwortet Withings, dass die Rücksprungadresse nicht
erlaubt ist (
redirect_uri). Das ist normal: Withings akzeptiert nur die in deiner App angemeldeten Adressen. - Klicke zurück in Gladys auf Verbindung testen: Die Meldung zeigt die Callback-URL, die Gladys verwendet. Sie steht auch in den Logs der Integration („Callback URL to declare in your Withings app“).
- Bearbeite auf developer.withings.com deine App und füge diese Adresse zu den Callback-URLs hinzu. Speichere.
- Klicke erneut auf Verbinden, melde dich bei Withings an und stimme zu.
Der Status wechselt zu Verbunden, die Integration liest ein Jahr an Messungen (nur der letzte Wert jeder Messung kommt in Gladys), und die Geräte erscheinen in der Erkennung. Lege sie wie jedes andere Gerät an.
Die Callback-URL hängt von der Adresse ab, mit der du Gladys öffnest. Klicke immer von derselben Adresse aus auf Verbinden (der angemeldeten).
Echtzeit-Benachrichtigungen (Gladys Plus)
Ohne Gladys Plus liest die Integration Withings im Aktualisierungsintervall: Eine Wägung erscheint (standardmäßig) innerhalb von 30 Minuten in Gladys.
Mit Gladys Plus benachrichtigt Withings Gladys, sobald neue Daten ankommen:
- Fülle im Konfigurationsbildschirm der Integration den Block Gladys Plus Webhooks mit deinem Gladys Plus Open-API-Schlüssel aus.
- Lass Echtzeit-Benachrichtigungen eingeschaltet.
Die Integration abonniert die Withings-Benachrichtigungen dann selbst. Neue Messungen kommen in wenigen Sekunden an, und ein Sleep Analyzer sendet die Ereignisse im Bett / aus dem Bett (diese beiden gibt es nur mit Gladys Plus).
„Verbindung testen“ sagt, ob die Benachrichtigungen aktiv sind.
Geräte und Funktionen
Withings health
| Funktion | Einheit | Hinweise |
|---|---|---|
| Gewicht, Fettmasse, fettfreie Masse, Muskelmasse, Knochenmasse, Körperwasser | kg | Waage |
| Fettanteil | % | Waage |
| Viszeralfett-Index | — | Body Comp / Body Scan |
| Systolischer / diastolischer Blutdruck | mmHg | Blutdruckmessgerät |
| Herzfrequenz | bpm | Waage, Messgerät |
| Blutsauerstoff (SpO2) | % | ScanWatch |
| Körpertemperatur, Hauttemperatur | °C | Thermo, ScanWatch |
| Pulswellengeschwindigkeit, Gefäßalter | m/s, — | Body Cardio, Body Scan |
| Schritte, Distanz, Höhenmeter, aktive und gesamte Kalorien (heute) | —, m | Uhr oder Telefon; um Mitternacht auf 0 |
| Schlafdauer, Tief- / Leicht- / REM-Schlaf, Schlafwert, Aufwachphasen, Puls | min, — | Letzte Nacht, auf die Aufwachzeit datiert |
| Im Bett | 0 / 1 | Sleep Analyzer, nur mit Gladys Plus |
Gladys hat keine Einheit Kilogramm, bpm oder mmHg: Diese Funktionen tragen die Einheit im Namen.
Ein Gerät pro Withings-Gerät
Eine Funktion Batterie schwach (1, wenn Withings eine schwache Batterie meldet), für eine Szene „Batterien wechseln“. Ein Sleep Analyzer am Netz hat keine.
Szenen
Auslöser
| Auslöser | Wann | Variablen |
|---|---|---|
| Neue Withings-Messung | Eine Wägung, eine Blutdruckmessung… wird erfasst | Art, Datum und jeder Wert der Messung (Gewicht…) |
| Ins Bett gegangen | Ein Sleep Analyzer erkennt, dass jemand ins Bett geht | — |
| Aus dem Bett aufgestanden | Ein Sleep Analyzer erkennt, dass jemand aufsteht | — |
| Nachtzusammenfassung verfügbar | Withings hat die letzte Nacht ausgewertet | Schlafdauer (min), Schlafwert, Aufwachphasen |
| Schrittziel erreicht | Die heutigen Schritte erreichen das Ziel (einmal am Tag) | Schritte, Ziel |
„Neue Withings-Messung“ lässt sich nach Art filtern: Wägung, Blutdruck, Temperatur, Blutsauerstoff, andere. Nur aktuelle Messungen (jünger als 24 Stunden) lösen ihn aus: Das Verbinden des Kontos spielt nie alte Wägungen ab.
Beispiel: wenn eine Wägung ankommt, schicke mir „Gewicht: {{triggerEvent.data.weight}} kg“.
Aktionen
| Aktion | Was sie tut | Ergebnisse |
|---|---|---|
| Withings-Daten aktualisieren | Liest Withings sofort | Anzahl neuer Messungen |
| Letzten Withings-Wert lesen | Der letzte bekannte Wert einer Messung | Bekannt (ja/nein), Wert, Einheit, Datum |
Dashboard-Widgets
- Withings Gesundheit: bis zu vier Live-Kacheln (Gewicht, Schritte, Schlaf, Blutdruck…), letzte Messung und letzte Synchronisierung, die Benachrichtigungen, die Batterien und eine Schaltfläche Aktualisieren.
- Gewichtsverlauf: das aktuelle Gewicht und seine Kurve über eine Woche, einen Monat, drei Monate oder ein Jahr (Einstellung des Widgets).
Schaltflächen im Konfigurationsbildschirm
- Verbindung testen: Konto, Geräte, letzte Synchronisierung, Benachrichtigungen und die bei Withings anzumeldende Callback-URL.
- Jetzt synchronisieren: liest Withings sofort.
- Withings-Konto trennen: vergisst die Tokens und stoppt die Benachrichtigungen. Die Geräte bleiben mit ihrem Verlauf in Gladys.
Fehlerbehebung
| Meldung / Symptom | Was tun |
|---|---|
| „Trage die Client-ID und das Client-Secret ein…“ | Beide Felder ausfüllen, speichern |
Withings sagt, redirect_uri sei ungültig | Die von „Verbindung testen“ gezeigte Callback-URL zu deiner Withings-App hinzufügen (Schritt 3) |
| „Withings hat die Verbindung abgelehnt… klicke auf Verbinden“ | Zugriff widerrufen, Secret geändert oder Token abgelaufen: erneut auf Verbinden klicken |
| „Withings ist gerade nicht erreichbar“ | Withings oder dein Internet ist ausgefallen; die Integration versucht es beim nächsten Mal erneut |
| Benachrichtigungen „aus (kein Gladys Plus verknüpft)“ | Den Block Gladys Plus Webhooks ausfüllen oder nur den Timer behalten |
| Eine neue Messart hat keine Funktion | Erkennung → Withings health → Aktualisieren |
| Keine „im Bett“-Ereignisse | Dafür braucht es einen Sleep Analyzer und Gladys Plus |
Die Integration schreibt, was sie tut, in ihre Logs (der Container der Integration), nie ein Token oder das Client-Secret.
Datenschutz
- Deine Daten gehen von der Withings-Cloud zu deinem Gladys, über deine Entwickler-App. Nichts läuft über Dritte (Gladys Plus leitet nur die Benachrichtigungen „neue Daten“ weiter, die keine Messung enthalten).
- Das Client-Secret und die Tokens werden in der Gladys-Konfiguration der Integration gespeichert, nie wieder angezeigt und nie in die Logs geschrieben.
- Die Integration hält eine kleine Datei in ihrem Volume
/data(letzter Lesevorgang, letzte Werte), damit ein Neustart weder Messungen verdoppelt noch Szenen erneut auslöst. - Ein Withings-Konto pro Installation der Integration.
Konfigurationseinstellungen
Diese Einstellungen fragt Withings in seinem Konfigurationsbildschirm in Gladys ab.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| Erste Schritte | section | Nein | Die Withings-Daten kommen aus der Withings-Cloud, über eine eigene (kostenlose) Entwickler-App. 1. Erstelle auf developer.withings.com eine Anwendung (Public API integration). 2. Füge die Callback-URL deines Gladys hinzu: klicke unten einmal auf Verbinden und starte dann „Verbindung testen“, um sie zu sehen, oder lies sie in den Logs der Integration. 3. Kopiere Client-ID und Client-Secret hierher, speichere, klicke dann auf Verbinden und melde dich bei Withings an. |
| Client-ID | string | Ja | Die Client-ID deiner Withings-Anwendung. |
| Client-Secret | secret | Ja | Das Client-Secret deiner Withings-Anwendung. In Gladys gespeichert, nie wieder angezeigt. |
| Withings-Konto | oauth2 | Nein | Speichere zuerst Client-ID und Secret, klicke dann auf Verbinden und melde dich bei Withings an. |
| Aktualisierungsintervall (min) | number | Nein | Wie oft Withings gelesen wird, in Minuten. Mit Gladys Plus kommen neue Messungen zusätzlich innerhalb von Sekunden an. |
| Tägliches Schrittziel | number | Nein | Der Szenenauslöser „Schrittziel erreicht“ wird einmal am Tag ausgelöst, wenn die heutigen Schritte es erreichen. |
| Echtzeit-Benachrichtigungen (Gladys Plus) | boolean | Nein | Bittet Withings, Gladys über Gladys Plus über neue Daten zu informieren: Messungen in Sekunden und die Ereignisse „im Bett“ / „aus dem Bett“ eines Sleep Analyzer. Ohne Gladys Plus gilt das Aktualisierungsintervall. |
So installierst du Withings in Gladys
- Öffne in Gladys Integrationen: Withings erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- Klicke auf Installieren. Gladys lädt das Docker-Image (
ghcr.io/prohand/gladys-withings:1.0.1) 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/prohand/gladys-withings.
Withings benötigt Gladys >=5.1.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
Withings 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 prohand 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