Lähetä Apple Health -tiedot webhookiin
Apple Healthilla ei ole verkkorajapintaa, joten tietosi pääsevät webhookiin vain, jos iPhonen sovellus lähettää ne. Marrow Health tekee tämän ilmaiseksi: automaatio lähettää POST-pyynnöllä terveysmittarisi, treenisi, voimasarjasi, ruokapäiväkirjasi tai oireesi ja mielialasi mihin tahansa URL-osoitteeseen JSON- tai CSV-muodossa valitsemallasi aikataululla, sovellus suljettuna. Alla ovat käyttöönotto, sisältö ja toimivat vastaanottajat n8n:lle, Home Assistantille ja tavalliselle palvelimelle. Me teemme Marrow'ta.
Automaation käyttöönotto
- Avaa Marrow Healthissa Vie-välilehti, sitten Automaattinen ja Uusi automaatio.
- Liitä webhook-URL-osoitteesi (käytä HTTPS:ää). Lisää kaikki otsikot, joita vastaanottajasi tarkistaa, kuten
Authorization-bearer-tunnus tai n8n:n header-auth-avain. - Valitse tietojen laji: Terveysmittarit, Treenit, Voimatreeniloki, Ravintopäiväkirja tai Oireet ja mieliala. Yksi automaatio lähettää yhtä lajia, ja niitä voi olla enintään kymmenen.
- Valitse JSON tai CSV, aikaväli (Edellisen ajon jälkeen on oletus) ja kuinka usein se ajetaan, minuuteissa, tunneissa tai päivissä.
- Ota se käyttöön ja napauta Suorita nyt, niin ensimmäinen sisältö lähtee liikkeelle, kun seuraat vastaanottajaa.
Jokainen pyyntö on POST, jossa on Content-Type: application/json (tai text/csv) ja omat otsikkosi. Jokainen ajo vastauskoodeineen näkyy automaation historiassa sovelluksessa.
Mitä perille tulee
Terveysmittarit saapuvat päiväsummina kentässä units nimetyssä yksikössä. Syke tulee kunkin päivän keskiarvona, vähimmäis- ja enimmäisarvona, ja uni öinä vaiheineen tunteina:
{"data": {"metrics": [
{"name": "body_mass", "units": "kg",
"data": [{"date": "2026-09-11", "qty": 81.3}]},
{"name": "step_count", "units": "count",
"data": [{"date": "2026-09-11", "qty": 8746}]},
{"name": "heart_rate", "units": "bpm",
"data": [{"date": "2026-09-11", "Avg": 71, "Min": 52, "Max": 148}]},
{"name": "sleep_analysis", "units": "h",
"data": [{"date": "2026-09-11", "totalSleep": 7.2, "asleep": 7.2, "deep": 1.1, "rem": 1.6, "core": 4.3, "awake": 0.2,
"sleepStart": "2026-09-10 23:36:00 -0400", "sleepEnd": "2026-09-11 07:02:00 -0400"}]}
]}}
Treenien, voimaharjoittelun, ravinnon ja mielialan sisällöt, päiväsummien sijaan raakanäytteet ja CSV-asettelu löytyvät automaatioiden ohjesivulta.
Vastaanota se n8n:ssä
- Lisää Webhook-solmu. Aseta HTTP Method-arvoksi
POSTja anna sille polku, esimerkiksiapple-health. - Salaisuutta varten aseta Authentication-arvoksi Header Auth ja lisää sama otsikon nimi ja arvo Marrow-automaatioon.
- Napsauta Listen for test event ja napauta sitten Marrow'ssa Suorita nyt kahden minuutin sisällä. Sisältö ilmestyy editoriin.
- Julkaise työnkulku ja osoita Marrow Production URL -osoitteeseen (siihen, jossa on
/webhook/, ei/webhook-test/). Testiosoite lakkaa kuuntelemasta testin jälkeen.
Sisältö on kentässä body, joten tämän päivän askeleet ovat lausekkeessa {{ $json.body.data.metrics.find(m => m.name === 'step_count').data.at(-1).qty }}. Lisää Split Out-solmu kenttään body.data.metrics, jos haluat käsitellä jokaisen mittarin omana kohteenaan. n8n hyväksyy oletuksena enintään 16 Mt:n sisällön, mikä riittää vuosien päiväsummille. Tuotantoajot näkyvät kohdassa Executions, eivät editorissa. (n8n Webhook docs)
Vastaanota se Home Assistantissa
Webhook-liipaisin ottaa POST-pyynnön vastaan osoitteessa /api/webhook/<webhook_id>. Tämä automaatio tallentaa viimeisimmän askelmäärän lukuapuriin nimeltä input_number.steps_today (luo se ensin, enimmäisarvo parasta päivääsi suurempi):
automation:
- alias: "Apple Health from Marrow"
triggers:
- trigger: webhook
webhook_id: "pick-a-long-random-id"
allowed_methods:
- POST
local_only: false
actions:
- action: input_number.set_value
target:
entity_id: input_number.steps_today
data:
value: >-
{{ ((trigger.json.data.metrics
| selectattr('name', 'eq', 'step_count') | first).data
| last).qty }}
- JSON-sisältö on kentässä
trigger.json, koska Marrow lähettääContent-Type: application/json. local_onlyon oletuksena päällä, jolloin se ottaa vastaan viestejä vain kotiverkostasi tai Nabu Casan pilvi-webhook-osoitteesta. Aseta se arvoonfalse, kun puhelin lähettää viestit internetin kautta omaan HTTPS-osoitteeseesi.- Webhook ID on ainoa salaisuus, joten tee siitä pitkä ja satunnainen.
(Home Assistantin webhook-liipaisimen dokumentaatio)
Vastaanota se omalla palvelimellasi
Mikä tahansa päätepiste, joka ottaa vastaan HTTPS-POST-pyynnön ja vastaa 2xx, kelpaa. Tämä arkistoi jokaisen sisällön tiedostoon:
from http.server import BaseHTTPRequestHandler, HTTPServer
import time
class H(BaseHTTPRequestHandler):
def do_POST(self):
body = self.rfile.read(int(self.headers.get("Content-Length", 0)))
with open(f"marrow-{int(time.time())}.json", "wb") as f:
f.write(body)
self.send_response(200)
self.end_headers()
HTTPServer(("0.0.0.0", 8798), H).serve_forever()
Aseta se HTTPS:n taakse Cloudflare Tunnelilla, Tailscale Funnelilla tai käänteisellä välityspalvelimella. Jos haluat kyseltävän tietokannan tiedostokansion sijaan, Marrow'n itse ylläpidetty peilipalvelin on juuri se vastaanottaja valmiiksi kirjoitettuna, ja tekoälyagentit voivat kysellä sitä myös.
Kolme sääntöä vastaanottajalle, joka ei koskaan hukkaa dataa
- Uusin voittaa. Tallenna jokainen arvo mittarin ja päivän mukaan ja korvaa se, kun sama tulee uudestaan. Edellisen ajon jälkeen lähettää tahallaan kaksi viimeistä päivää uudelleen, koska Apple Health täydentää päivän tietoja vielä sen päättymisen jälkeen.
- Tallenna raaka sisältö ensin ja jäsennä se vasta sitten. Jäsennysvirhe ei saa koskaan maksaa sinulle dataa.
- Vastaa nopeasti. Marrow odottaa asettamasi aikakatkaisun verran (oletuksena 60 sekuntia) ja yrittää epäonnistunutta ajoa uudelleen viimeisestä onnistuneesta ikkunasta seuraavalla kerralla.
Milloin se ajetaan?
Aina kun iOS antaa Marrow'n toimia: kun se on synkronoitu Apple Healthin kanssa, kun avaat sen ja taustapäivityksen aikana, kun valitsemasi väli on kulunut. iOS päättää, milloin taustapäivitys tapahtuu, joten koko päivän lukittuna ollut puhelin lähettää, kun se seuraavan kerran avataan, ja Edellisen ajon jälkeen kattaa välin.
Muita tapoja
- Health Auto Export lähettää myös Apple Health -tietoja webhookeihin, ja sen mittarien JSON on rakenteeltaan sama kuin Marrow'n. Sen automaatiot vaativat Premium-tason.
- Apple Shortcuts voi lukea terveysnäytteitä ja lähettää ne toiminnolla Get Contents of URL henkilökohtaisessa automaatiossa tiettyyn aikaan. Se on ilmainen, se voi lukea Terveys-tietoja vain puhelimen ollessa avattuna, ja rakennat ja ylläpidät jokaisen mittarin itse.
- Applen export.zip on kertaluonteinen täysi varmuuskopio, ei syöte. Jos haluat muuttaa sen CSV:ksi, käytä selaimessa toimivaa muunninta.