Zum Inhalt springen
SONOYA.com
Raspberry Pi & Linux

Home Assistant: Waage-Gewicht in Apple Health eintragen

So überträgst Du das Gewicht Deiner Xiaomi-Waage aus Home Assistant per Tipp auf die Mitteilung in Apple Health, mit Messzeit und ohne Zusatz-App.

Von

Umriss einer Personenwaage auf dunkelrotem Verlauf als Symbol für Gewichtswerte, die von Home Assistant in Apple Health wandern

Wenn Deine Xiaomi-Waage per Bluetooth in Home Assistant hängt, landet jedes Wiegen sauber als Wert in einem Sensor, aber nicht in der Health-App auf Deinem iPhone. Genau dort hättest Du den Verlauf gern, neben Schritten, Schlaf und Puls. Diese Anleitung zeigt, wie Du die Mitteilung, die Home Assistant nach dem Wiegen schickt, so erweiterst, dass ein einziger Tipp darauf den Wert mit der richtigen Uhrzeit in Apple Health einträgt.

Warum es einen Tipp braucht

Home Assistant kann nicht selbst in Apple Health schreiben. Die Gesundheitsdaten liegen verschlüsselt auf dem iPhone, und Apple lässt nur Apps auf dem Gerät selbst hineinschreiben. Eine solche App hast Du schon: die Kurzbefehle-App mit der Aktion Health-Messung protokollieren.

Das zweite Hindernis: Home Assistant kann einen Kurzbefehl nicht unbemerkt im Hintergrund starten. Er lässt sich aber über einen Link der Form shortcuts://run-shortcut aufrufen, und so einen Link kann die Companion App beim Antippen einer Mitteilung öffnen. Daraus ergibt sich der Ablauf:

  1. Du stellst Dich auf die Waage, Home Assistant bekommt den neuen Wert.
  2. Deine Automation schickt eine Mitteilung aufs iPhone, die Gewicht und Messzeit im Link mitträgt.
  3. Du tippst auf die Mitteilung, der Kurzbefehl startet und trägt den Wert in Health ein.

Jede Mitteilung trägt nur ihre eigene Messung. Alte Werte werden also nie übertragen, und eine Messung, die Du nicht antippst, bleibt eben nur in Home Assistant.

Was Du brauchst

  • Eine Xiaomi-Waage wie die Xiaomi Mi Body Composition Scale 2 (Affiliate Link), die über die Integration Xiaomi BLE in Home Assistant eingebunden ist. Steht Dein Server zu weit vom Bad entfernt, hilft ein ESP32 Bluetooth Proxy für Home Assistant.
  • Die Companion App von Home Assistant auf Deinem iPhone, mit erlaubten Mitteilungen.
  • Ein iPhone mit iOS 27.2 und der vorinstallierten Kurzbefehle-App. Mit älteren Versionen funktioniert der Ablauf ebenfalls, nur sieht der Editor etwas anders aus.

Die Anleitung bezieht sich auf Home Assistant 2026.11. Die Automation habe ich dort gespeichert und den erzeugten Link in der Template-Vorschau gegen einen echten Messwert geprüft. Die Schritte in der Kurzbefehle-App folgen Apples Handbuch zum URL-Schema für Kurzbefehle und Apples Versionshinweisen zu iOS 27. Weil Apple Intelligence nicht bei jedem Durchlauf exakt dieselben Aktionen erzeugt, zeigt Schritt 3 zusätzlich, woran Du ein korrektes Ergebnis erkennst.

Schritt 1: Den richtigen Sensor finden

Die Xiaomi-BLE-Integration legt für die Waage mehrere Sensoren an. Öffne Einstellungen > Geräte & Dienste > Xiaomi BLE und dann Deine Waage. Wichtig sind zwei Einträge:

  • Mass, etwa sensor.mi_smart_scale_cd4c_mass. Das ist das stabilisierte Endgewicht, das die Waage nach dem Einpendeln meldet.
  • Mass Non Stabilized. Dieser Sensor zappelt während des Wiegens und fällt danach wieder auf fast null. Er ist für Health nicht geeignet.

Notier Dir die Entity-ID des stabilisierten Sensors. In den Beispielen unten steht sensor.mi_smart_scale_cd4c_mass, ersetze sie durch Deine.

Schritt 2: Die Automation anlegen oder erweitern

Lege unter Einstellungen > Automationen & Szenen eine neue Automation an, oder öffne Deine bestehende Wiege-Mitteilung. Klicke oben rechts auf die drei Punkte, wähle In YAML bearbeiten und füge Folgendes ein:

Code
alias: Waage Mitteilung mit Health-Übertragung
description: Meldet ein neues Gewicht und trägt es per Tipp in Apple Health ein.
mode: single
triggers:
  - trigger: state
    entity_id: sensor.mi_smart_scale_cd4c_mass
conditions:
  - condition: numeric_state
    entity_id: sensor.mi_smart_scale_cd4c_mass
    above: 72
    below: 95
actions:
  - action: notify.mobile_app_dein_iphone
    data:
      message: >-
        Neues Gewicht: {{ trigger.to_state.state | float | round(1) }} kg.
        Tippen zum Eintragen in Health.
      data:
        url: >-
          shortcuts://run-shortcut?name=Gewicht%20an%20Health&input=text&text={{
          ((trigger.to_state.state | float * 1000) | round(0) | int) ~ ';' ~
          as_local(trigger.to_state.last_changed).strftime('%d.%m.%Y %H:%M:%S')
          | urlencode }}
        actions:
          - action: URI
            title: In Apple Health eintragen
            uri: >-
              shortcuts://run-shortcut?name=Gewicht%20an%20Health&input=text&text={{
              ((trigger.to_state.state | float * 1000) | round(0) | int) ~ ';' ~
              as_local(trigger.to_state.last_changed).strftime('%d.%m.%Y %H:%M:%S')
              | urlencode }}

Ersetze notify.mobile_app_dein_iphone durch die Aktion Deines iPhones. Welche es gibt, siehst Du unter Entwicklerwerkzeuge > Aktionen, wenn Du dort notify.mobile_app eintippst. Nimm bewusst nur das iPhone und nicht eine Gruppe aller Geräte, denn ein Tipp auf dem iPad würde den Kurzbefehl dort suchen.

Speichere die Automation. Die einzelnen Teile machen Folgendes:

  • Die Bedingung von 72 bis 95 kg ist ein einfacher Personenfilter. Die Waage weiß nicht, wer daraufsteht. Liegt Dein Gewicht in einem anderen Bereich als das der übrigen Haushaltsmitglieder, landen nur Deine Werte in Deiner Health-App. Passe die Grenzen an Dein Gewicht an.
  • url öffnet den Link, wenn Du die Mitteilung selbst antippst. actions fügt zusätzlich einen Knopf hinzu, den Du über langes Drücken auf die Mitteilung erreichst. Beide führen zum selben Ziel, nimm einfach das, was Dir lieber ist.
  • Das Gewicht reist in Gramm als ganze Zahl, also 85500 statt 85.5. Sonst könnte ein deutsch eingestelltes iPhone den Punkt als Tausendertrennzeichen lesen und 855 kg eintragen.
  • Die Uhrzeit ist die Messzeit (last_changed des Sensors), nicht der Moment des Antippens. Tippst Du die Mitteilung erst nach dem Frühstück an, steht in Health trotzdem 7:12 Uhr.
  • urlencode wandelt Leerzeichen und Doppelpunkte im Datum in eine Form um, die in einem Link erlaubt ist.

Schritt 3: Den Kurzbefehl mit Apple Intelligence erstellen

Seit iOS 27 musst Du den Kurzbefehl nicht mehr Aktion für Aktion zusammenklicken. Mit Kurzbefehl beschreiben schreibst Du in ganzen Sätzen, was passieren soll, und Apple Intelligence stellt die Aktionen zusammen. Dafür brauchst Du ein iPhone, das Apple Intelligence unterstützt (iPhone 15 Pro oder neuer). Außerdem muss Apple Intelligence unter Einstellungen > Apple Intelligence & Siri eingeschaltet sein, und die Sprache von iPhone und Siri muss übereinstimmen. Die Schritte gelten für iOS 27.2.

  1. Öffne die Kurzbefehle-App, wechsle unten zum Tab Kurzbefehle und tippe oben rechts auf +.
  2. Wähle Kurzbefehl beschreiben.
  3. Füge diese Beschreibung ein und bestätige sie:
Code
Nimm Text als Eingabe an. Teile die Eingabe am Semikolon. Nimm den ersten Teil, mach daraus eine Zahl und teile sie durch 1000. Wenn das Ergebnis kleiner als 20 ist, beende den Kurzbefehl, ohne etwas zu protokollieren. Nimm den letzten Teil und mach daraus ein Datum. Protokolliere in Health eine Messung vom Typ Gewicht mit dieser Zahl in Kilogramm und diesem Datum.
  1. Nach einigen Sekunden zeigt die App den fertigen Kurzbefehl. Benenne ihn in Gewicht an Health um. Seit iOS 27.2 geht das auch direkt in der Bibliothek. Der Name muss genau so lauten, weil der Link aus der Mitteilung ihn darüber aufruft.

Die Beschreibung ist absichtlich so kleinteilig. Je genauer Du jeden Schritt nennst, desto weniger muss das Modell raten. Bei einer Kette mit Trennzeichen, Rechnung und Datum ist das wichtiger als bei einem einfachen Kurzbefehl.

Das Ergebnis kontrollieren

Ein Sprachmodell liefert nicht jedes Mal exakt dieselben Aktionen. Sieh Dir den Kurzbefehl deshalb an, bevor Du ihn benutzt. Er sollte diese Bausteine in dieser Reihenfolge enthalten, auch wenn die Bezeichnungen bei Dir leicht anders lauten:

  1. Oben die Zeile Eingabe empfangen mit dem Typ Text.
  2. Eine Aktion, die die Kurzbefehleingabe am Zeichen ; teilt.
  3. Den ersten Teil der Liste, daraus eine Zahl, geteilt durch 1000.
  4. Eine Wenn-Abfrage: Ist das Ergebnis kleiner als 20, folgt Kurzbefehl stoppen.
  5. Den letzten Teil der Liste, daraus ein Datum.
  6. Die Health-Aktion zum Protokollieren einer Messung: Typ Gewicht, als Wert das Ergebnis der Rechnung, Einheit kg, und bei Datum das Datum aus dem letzten Teil.

Am häufigsten fehlt das Datum in der Health-Aktion, und dann nimmt Health die aktuelle Uhrzeit statt der Messzeit. Ist etwas falsch, tippst Du auf Änderung beschreiben und schreibst, was anders sein soll, etwa „Verwende in der Health-Aktion das Datum aus dem letzten Teil der Eingabe“. Die Wenn-Abfrage verhindert, dass ein Lauf ohne Eingabe eine 0 in Health schreibt. Das passiert sonst schon, wenn Du den Kurzbefehl einmal zum Testen im Editor startest. Ohne Apple Intelligence baust Du dieselben sechs Bausteine von Hand über das Suchfeld unten im Editor nach.

Beim ersten Lauf fragt iOS, ob der Kurzbefehl in Health schreiben darf. Erlaube den Zugriff auf Gewicht, sonst bricht der Kurzbefehl an dieser Stelle ab.

So prüfst Du, ob alles stimmt

Den Link kannst Du testen, ohne auf die Waage zu steigen. Öffne Entwicklerwerkzeuge > Template und füge diese Zeilen ein:

Code
{% set trigger = {'to_state': states.sensor.mi_smart_scale_cd4c_mass} %}
{{ ((trigger.to_state.state | float * 1000) | round(0) | int) ~ ';' ~
as_local(trigger.to_state.last_changed).strftime('%d.%m.%Y %H:%M:%S') | urlencode }}

Rechts erscheint dann etwas wie 85500;14.11.2026%2009%3A45%3A35, also Dein letztes Gewicht in Gramm, ein Semikolon und die Uhrzeit der letzten Messung.

Danach wiegst Du Dich einmal echt. Die Mitteilung erscheint wenige Sekunden später, ein Tipp öffnet kurz die Kurzbefehle-App, und wenn Du in der Health-App nach Gewicht suchst und dort Alle Daten anzeigen öffnest, steht der neue Eintrag mit der Messzeit in der Liste. Als Quelle ist die Kurzbefehle-App vermerkt.

Wenn es nicht klappt

  • Keine Mitteilung nach dem Wiegen. Prüf zuerst, ob Dein Gewicht innerhalb der Grenzen der Bedingung liegt. Welche Stelle die Automation stoppt, zeigt Dir die Ablaufverfolgung, beschrieben in Home Assistant: Automation löst nicht aus, Fehlersuche.
  • „Kurzbefehl nicht gefunden“. Der Name im Link und in der App weicht ab. Achte auf Groß- und Kleinschreibung, und schreib das Leerzeichen im Link als %20. Seit iOS 27.2 kannst Du den Namen auch direkt in der Bibliothek der Kurzbefehle-App korrigieren, ohne den Kurzbefehl zu öffnen.
  • In Health steht 85500 kg oder 85 g. Die Rechnung durch 1000 fehlt, oder die Einheit in der Health-Aktion steht nicht auf kg. Lass beides mit Änderung beschreiben korrigieren.
  • Der Eintrag hat die falsche Uhrzeit. Dann ist in der Health-Aktion das Datum nicht verknüpft, oder das Datum wird nicht aus dem letzten Teil der Eingabe gelesen.
  • In Health steht ein Eintrag mit 0 kg. Der Kurzbefehl lief ohne Eingabe, meist beim Testen im Editor oder über die Bibliothek. Die Wenn-Abfrage aus Schritt 3 fehlt dann. Ergänze sie mit Änderung beschreiben und lösche den falschen Eintrag in der Health-App.
  • Ein Wert steht doppelt in Health. Du hast zweimal getippt. Health erkennt keine Duplikate, lösche den überzähligen Eintrag in der Health-App mit einem Wisch nach links.

Wie Mitteilungen mit Knöpfen grundsätzlich funktionieren und was Du sonst noch hineinpacken kannst, steht in Home Assistant: Benachrichtigung aufs Handy mit Aktionen.

Und ganz ohne Tippen?

Ganz automatisch geht es nur über einen Umweg: Home Assistant sammelt die Messungen des Tages in einem eigenen Sensor, und eine Kurzbefehl-Automation zur festen Uhrzeit holt sie abends ab. Das funktioniert, braucht aber einen zusätzlichen Template-Sensor und hat mehr Stellen, an denen es haken kann. Für eine Waage, die Du ohnehin morgens mit dem iPhone in Reichweite benutzt, ist der eine Tipp auf die Mitteilung der einfachere und verlässlichere Weg. Er fühlt sich nach wenigen Tagen genauso selbstverständlich an wie das Wiegen selbst.

Weiterlesen.