Marrow Health
FI
Lataa

Automaatiot: tietosi lähetettynä aikataululla

Marrow voi lähettää POST-pyynnöllä tiedoston terveystiedoistasi mihin tahansa valitsemaasi URL-osoitteeseen valitsemallasi tahdilla suoraan puhelimesta. Tämä sivu on ohjesivu: miten sellaisen otetaan käyttöön, miltä kukin sisältö näyttää ja miten kirjoitetaan jotain, joka vastaanottaa sen.

Valmiit asetukset n8n:lle, Zapierille, Make'lle, Home Assistantille, Google Sheetsille ja InfluxDB:lle löytyvät kohdasta yhteydet.

Kaikki Marrow'n oppaat: MCP · Itse ylläpidetty peilipalvelin · Automaatiot · Tiedostot · Tuki

Mikä automaatio on

Tallennettu työ kohdassa Vie, Automaattinen: yksi tietolaji, yksi muoto, yksi aikaväli, yksi URL, yksi tahti. Marrow rakentaa tiedoston varmennetusta tallennustilastaan ja lähettää sen URL-osoitteeseen POST-pyynnöllä sovellus suljettuna, jokaisen synkronoinnin jälkeen ja jokaisessa taustapäivityksessä, aina kun tahdin mukainen aika on kulunut. Mikään ei kulje meidän kauttamme: puhelin puhuu suoraan päätepisteesi kanssa.

Automaation käyttöönotto

  1. Vie-välilehti, Automaattinen: ota se käyttöön ja valitse sitten Uusi automaatio. Kun automaatio tehdään jonkin työkalun sivulta (n8n, Zapier, Home Assistant ja muut kohdassa yhteydet), se saa työkalun nimen, ja jokaisen kentän vieressä kerrotaan, mitä työkalu siihen haluaa.
  2. Osoite: https-URL, johon POST-pyyntö lähetetään. Otsikot: kaikki, joita vastaanottajasi tarvitsee (Authorization-bearer-tunnus, X-Gitlab-Token, mikä tahansa). Kun työkalu ei tarvitse yhtään, Lisää otsikko löytyy kohdasta Lisää vaihtoehtoja.
  3. Tiedot: Terveysmittarit, Treenit, Voimatreeniloki, Ravintopäiväkirja tai Oireet ja mieliala, muodossa JSON tai CSV. Yksi automaatio kuljettaa yhtä lajia, joten tee yksi jokaista haluamaasi lajia kohti. Jokainen käytössä oleva lasketaan yhteydeksi: Ilmainen sallii 1 yhteyden kerrallaan, Marrow Pro enintään 10, tekoälyt ja palvelimet mukaan lukien.
  4. Tahti: joka tietty määrä minuutteja, tunteja tai päiviä. Aikaväli, yhdistäminen ja aikakatkaisu ovat kohdassa Lisää vaihtoehtoja.
  5. Suorita nyt lähettää ensimmäisen sisällön, jotta voit tarkistaa vastaanottajan odottamatta aikataulua.

Aikavälit

Sisällön muodot

Terveysmittarit (päiväsummat, JSON)

Sama rakenne kuin Health Auto Exportin mittareissa (metrics-lista, jossa name, units ja data kenttineen qty), joten kyseiselle sovellukselle kirjoitettu vastaanottaja tarvitsee vain pieniä muutoksia: päivämäärät ovat tässä pelkkiä päiviä, eivät aikaleimoja, ja alla olevat treenien ja voimaharjoittelun sisällöt ovat Marrow'n omia. Arvot ovat tallennetussa yksikössä, joka on nimetty kentässä units (kg, m, mL, degC, kcal, count). Syke tulee kunkin päivän arvoina Avg, Min ja Max lyönteinä minuutissa, ja uni öinä vaiheineen tunteina. Muunna omalla puolellasi, jos haluat imperiaaliyksiköt.

{"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"}]}
]}}

Raakanäytteet (ryhmittely Raakanäytteet) lähettävät jokaisen näytteen alku- ja loppuaikoineen päiväsumman sijaan. CSV-mittarit tulevat leveänä taulukkona, joka on kuvattu tiedostosivulla.

Treenit

{"data": {"workouts": [
  {"activity": "Running", "start": "2026-09-11T18:43:41Z", "end": "2026-09-11T19:13:53Z",
   "duration_min": 30.2, "kcal": 512, "distance_mi": 3.06, "avg_hr": 174, "source": "Apple Watch"}
]}}

Voimatreeniloki

Jokainen työsarja (lämmittelyt jätetään pois) sekä liikekohtainen edistyminen ja lihasryhmäkohtainen volyymi. Painot ovat kohdassa Asetukset, Yksiköt valitsemassasi yksikössä. Kenttä unit kertoo, mikä se on. Jokaisen sarjan set_type on work, failure tai drop, ja sarjalla on myös rir, kun olet kirjannut varalle jääneet toistot. set_credits laskee lihasryhmälle hyvitetyt sarjat murto-osina, kun liike kuormittaa useita ryhmiä.

{"data": {"unit": "lb",
  "sets": [{"time": "2026-09-11T17:02:00Z", "session": "Push day", "exercise": "Bench Press",
            "set": 1, "weight": 185, "reps": 8, "est_1rm": 229.6, "set_type": "work"}],
  "exercises": [{"exercise": "Bench Press", "best_est_1rm": 229.6,
                 "sessions": [{"date": "2026-09-11T17:02:00Z", "sets": 3, "top_weight": 185, "top_reps": 8, "est_1rm": 229.6, "volume": 3885}]}],
  "muscle_groups": [{"group": "Chest", "volume": 3108.0, "set_credits": 2.4}]
}}

Ravintopäiväkirja

{"data": {"days": [
  {"day": "2026-09-11", "entries": [
    {"meal": "breakfast", "name": "Oatmeal", "grams": 250, "kcal": 300,
     "protein_g": 10, "carbs_g": 54, "fat_g": 5, "logged_at": "2026-09-11T12:10:00Z",
     "nutrients": {"dietary_fiber": 8.0, "dietary_sugar": 1.2}}
  ]}
]}}

Vastaanottajan kirjoittaminen

Mikä tahansa, joka ottaa vastaan HTTPS-POST-pyynnön ja vastaa 2xx, toimii: webhook-palvelu, palvelimeton funktio, komentosarja kotipalvelimella. Kolme sääntöä pitää sen luotettavana:

Kaksitoistarivinen Python-vastaanottaja, joka arkistoi jokaisen viestin:

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 Tunnel, Tailscale Funnel tai mikä tahansa käänteinen välityspalvelin) ja osoita automaatio siihen. Jos haluat kyseltävän kopion tiedostokansion sijaan, itse ylläpidetty peilipalvelin on juuri se vastaanottaja valmiiksi kirjoitettuna.

Hyvä tietää

Vianmääritys

Testaa toiminnolla Suorita nyt. Sen alla oleva rivi kertoo, mitä tapahtui, ja Lisää vaihtoehtoja, Aktiivisuusloki säilyttää 30 viimeisintä ajoa samalla rivillä. Ota käyttöön Ilmoita suoritettaessa (Lisää vaihtoehtoja), niin saat ilmoituksen jokaisesta ajosta tarkistuksen ajan.

Mitä Marrow näyttääMitä tehdä
Yhteenveto lähetetystä, esimerkiksi 12 diary entriesToimitettu: vastaanottaja vastasi 2xx. Jos sen puolella ei näy mitään, katso alimmat rivit.
Server answered 401 tai 403Vastaanottaja haluaa otsikon, tai lisäämäsi on väärä. Tarkista sen nimi ja arvo, myös Bearer ja sen perässä oleva välilyönti.
Server answered 404Väärä osoite, tai vastaanottaja ei kuuntele. Käytä n8n:ssä Production URL -osoitetta ja aktivoi työnkulku. Tarkista, ettei osoitteen lopusta puutu polkua.
Server answered 405Osoite ei ota vastaan POST-pyyntöä. Osoita se päätepisteeseen, joka on tarkoitettu saapuvalle datalle.
Server answered 413Sisältö on vastaanottajalle liian suuri. Valitse lyhyempi aikaväli, vähemmän mittareita tai Päiväsummat Raakanäytteiden sijaan.
Server answered 500 tai muu 5xxVastaanottaja kaatui käsitellessään sitä. Katso sen omaa lokia. Arkistoi raaka sisältö ensin ja jäsennä vasta sitten.
Pyyntö aikakatkaistiinVastaanottajalla meni aikakatkaisua pidempään. Vastaa ensin ja tee työ vasta sen jälkeen tai nosta Timeout-arvoa kohdassa Lisää vaihtoehtoja (enintään 300 s).
The App Transport Security policy requires the use of a secure connectionOsoite on pelkkä http internetissä. Käytä https:ää. iOS sallii Marrow'n käyttää pelkkää http:tä vain omassa verkossasi.
A server with the specified hostname could not be foundKirjoitusvirhe osoitteessa, tai nimi, jonka tuntee vain kotiverkkosi. Kokeile sitä puhelimen Safarissa.
No valid URL - set an https endpoint firstOsoite on tyhjä tai ei ala merkeillä https:// (tai http:// omassa verkossasi).
Nothing to export in this rangeTämän lajin dataa ei ole valitulla aikavälillä. Valitse pidempi aikaväli kohdassa Lisää vaihtoehtoja tai kirjaa ensin jotain.

Yksittäisten työkalujen korjaukset ovat niiden omilla sivuilla: n8n, Zapier, Make, Home Assistant, Google Sheets, InfluxDB, mikä tahansa URL.