Zum Hauptinhalt springen

Withings Smart-Home-Integration, kostenlos und Open Source

Withings-Integration für Gladys Assistant

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 GladysInhalt
Gerät Withings healthDeine 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öserNeue Messung, ins Bett gegangen, aufgestanden, Nachtzusammenfassung verfügbar, Schrittziel erreicht
2 SzenenaktionenWithings-Daten aktualisieren, letzten Withings-Wert lesen
2 Dashboard-WidgetsWithings 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.

  1. Gehe auf developer.withings.com und melde dich mit deinem Withings-Konto an.
  2. Erstelle eine Anwendung vom Typ Public API integration.
  3. Gib ihr einen Namen (z. B. „Mein Gladys“) und eine Beschreibung.
  4. Callback URL: Trage vorerst eine vorläufige Adresse ein, zum Beispiel https://localhost/. Die richtige fügst du in Schritt 3 unten hinzu.
  5. Speichere. Withings zeigt die Client-ID und das Client-Secret der App.

2. Die Integration konfigurieren​

Öffne in Gladys Integrationen → Withings → Konfiguration:

FeldWas eintragen
Client-IDDie Client-ID deiner Withings-App
Client-SecretDas Client-Secret deiner Withings-App
Aktualisierungsintervall (min)Wie oft Withings gelesen wird. Standard 30 Minuten (5 bis 1440)
Tägliches SchrittzielFü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​

  1. Klicke auf Verbinden (Feld „Withings-Konto“).
  2. 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.
  3. 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“).
  4. Bearbeite auf developer.withings.com deine App und füge diese Adresse zu den Callback-URLs hinzu. Speichere.
  5. 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:

  1. Fülle im Konfigurationsbildschirm der Integration den Block Gladys Plus Webhooks mit deinem Gladys Plus Open-API-Schlüssel aus.
  2. 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​

FunktionEinheitHinweise
Gewicht, Fettmasse, fettfreie Masse, Muskelmasse, Knochenmasse, KörperwasserkgWaage
Fettanteil%Waage
Viszeralfett-Index—Body Comp / Body Scan
Systolischer / diastolischer BlutdruckmmHgBlutdruckmessgerät
HerzfrequenzbpmWaage, Messgerät
Blutsauerstoff (SpO2)%ScanWatch
Körpertemperatur, Hauttemperatur°CThermo, ScanWatch
Pulswellengeschwindigkeit, Gefäßalterm/s, —Body Cardio, Body Scan
Schritte, Distanz, Höhenmeter, aktive und gesamte Kalorien (heute)—, mUhr oder Telefon; um Mitternacht auf 0
Schlafdauer, Tief- / Leicht- / REM-Schlaf, Schlafwert, Aufwachphasen, Pulsmin, —Letzte Nacht, auf die Aufwachzeit datiert
Im Bett0 / 1Sleep 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öserWannVariablen
Neue Withings-MessungEine Wägung, eine Blutdruckmessung… wird erfasstArt, Datum und jeder Wert der Messung (Gewicht…)
Ins Bett gegangenEin Sleep Analyzer erkennt, dass jemand ins Bett geht—
Aus dem Bett aufgestandenEin Sleep Analyzer erkennt, dass jemand aufsteht—
Nachtzusammenfassung verfügbarWithings hat die letzte Nacht ausgewertetSchlafdauer (min), Schlafwert, Aufwachphasen
Schrittziel erreichtDie 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​

AktionWas sie tutErgebnisse
Withings-Daten aktualisierenLiest Withings sofortAnzahl neuer Messungen
Letzten Withings-Wert lesenDer letzte bekannte Wert einer MessungBekannt (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 / SymptomWas tun
„Trage die Client-ID und das Client-Secret ein…“Beide Felder ausfüllen, speichern
Withings sagt, redirect_uri sei ungültigDie 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 FunktionErkennung → Withings health → Aktualisieren
Keine „im Bett“-EreignisseDafü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.

EinstellungTypPflichtfeldBeschreibung
Erste SchrittesectionNeinDie 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-IDstringJaDie Client-ID deiner Withings-Anwendung.
Client-SecretsecretJaDas Client-Secret deiner Withings-Anwendung. In Gladys gespeichert, nie wieder angezeigt.
Withings-Kontooauth2NeinSpeichere zuerst Client-ID und Secret, klicke dann auf Verbinden und melde dich bei Withings an.
Aktualisierungsintervall (min)numberNeinWie oft Withings gelesen wird, in Minuten. Mit Gladys Plus kommen neue Messungen zusätzlich innerhalb von Sekunden an.
Tägliches SchrittzielnumberNeinDer Szenenauslöser „Schrittziel erreicht“ wird einmal am Tag ausgelöst, wenn die heutigen Schritte es erreichen.
Echtzeit-Benachrichtigungen (Gladys Plus)booleanNeinBittet 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​

  1. Öffne in Gladys Integrationen: Withings erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. 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).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. 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.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂