Marrow Health
CS
Stáhnout

Automatizace: vaše data odesílaná podle rozvrhu

Marrow umí odeslat soubor s vašimi zdravotními daty metodou POST na libovolnou adresu URL, kterou zvolíte, v zadaném intervalu, přímo z telefonu. Tato stránka je reference: jak automatizaci nastavit, jak vypadá každý druh dat a jak napsat něco, co je přijímá.

Hotová nastavení pro n8n, Zapier, Make, Home Assistant, Google Sheets a InfluxDB najdete v části připojení.

Všechny návody k Marrow: MCP · Vlastní zrcadlo na serveru · Automatizace · Soubory · Podpora

Co je automatizace

Uložená úloha v části Export, Automatické: jeden druh dat, jeden formát, jeden rozsah dat, jedna adresa URL, jeden interval. Marrow sestaví soubor z ověřeného úložiště a odešle ho metodou POST na adresu URL i se zavřenou aplikací, po každé synchronizaci a při každém obnovení na pozadí, kdykoli uplyne zvolený interval. Nic neprochází námi: telefon komunikuje přímo s vaším koncovým bodem.

Nastavení

  1. Záložka Export, Automatické: zapněte ji a pak Nová automatizace. Pokud ji vytvoříte ze stránky nástroje (n8n, Zapier, Home Assistant a další v části připojení), automatizace nese název toho nástroje a u každého pole říká, co tam nástroj chce.
  2. Adresa: adresa URL https, na kterou se má odesílat metodou POST. Záhlaví: všechna, která váš příjemce potřebuje (token Authorization typu bearer, X-Gitlab-Token, cokoli). Pokud nástroj žádná nepotřebuje, Přidat záhlaví je pod Další možnosti.
  3. Data: Zdravotní metriky, Tréninky, Deník silového tréninku, Deník výživy nebo Příznaky a nálada, jako JSON nebo CSV. Jedna automatizace nese jeden druh, takže si vytvořte jednu pro každý druh, který chcete. Každá zapnutá se počítá jako připojení: Zdarma umožňuje mít zapnuté vždy 1 připojení, Marrow Pro až 10, včetně AI a serverů.
  4. Interval: jednou za tolik minut, hodin nebo dnů. Rozsah dat, agregace a časový limit jsou pod Další možnosti.
  5. Spustit hned odešle první data, takže můžete příjemce vyzkoušet, než nastane plánovaný čas.

Rozsahy dat

Podoba dat

Zdravotní metriky (denní součty, JSON)

Stejná struktura jako metriky z Health Auto Export (seznam metrics s položkami name, units a data s qty), takže příjemce napsaný pro tuto aplikaci potřebuje jen drobné úpravy: data jsou tu prosté dny, ne časové značky, a data tréninků a silového tréninku níže jsou vlastní formát Marrow. Hodnoty jsou v uložené jednotce uvedené v units (kg, m, mL, degC, kcal, count). Tepová frekvence přichází jako denní Avg, Min a Max v bpm a spánek jako jednotlivé noci s fázemi v hodinách. Chcete-li imperiální jednotky, převeďte je na své straně.

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

Surové vzorky (seskupení Surové vzorky) posílají každý vzorek s časem začátku a konce místo denního součtu. Metriky v CSV přicházejí jako široká tabulka popsaná na stránce o souborech.

Tréninky

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

Deník silového tréninku

Každá pracovní série (zahřívací se vynechávají), plus pokrok podle cviku a objem podle svalové skupiny. Váhy jsou v jednotce, kterou jste zvolili v Nastavení, Jednotky. Pole unit říká, o kterou jde. Každá série má set_type s hodnotou work, failure nebo drop a navíc rir, pokud jste zapsali opakování v záloze. set_credits počítá série připsané svalové skupině, ve zlomcích, když cvik zatěžuje víc skupin.

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

Deník výživy

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

Psaní příjemce

Funguje cokoli, co přijme HTTPS POST a odpoví kódem 2xx: webová služba pro webhooky, bezserverová funkce nebo skript na domácím serveru. Spolehlivost zajistí tři pravidla:

Příjemce v Pythonu o dvanácti řádcích, který archivuje každý požadavek:

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()

Zveřejněte ho přes HTTPS (Cloudflare Tunnel, Tailscale Funnel nebo libovolná reverzní proxy) a automatizaci na něj nasměrujte. Pokud chcete spíš kopii, na kterou se lze dotazovat, než složku souborů, je vlastní zrcadlo takovým příjemcem už napsaným.

Dobré vědět

Řešení potíží

Vyzkoušejte přes Spustit hned. Řádek pod tlačítkem říká, co se stalo, a Další možnosti, Záznam aktivit uchovává posledních 30 spuštění se stejným řádkem. Zapněte Upozornit při spuštění (Další možnosti), aby vám při ladění přišlo upozornění po každém spuštění.

Co Marrow ukazujeCo dělat
Shrnutí toho, co se odeslalo, například 12 diary entriesDoručeno: příjemce odpověděl kódem 2xx. Pokud se na jeho straně nic neobjeví, podívejte se na poslední řádky níže.
Server answered 401 nebo 403Příjemce vyžaduje záhlaví, nebo to, které jste přidali, není správné. Zkontrolujte jeho název a hodnotu, včetně Bearer a mezery za ním.
Server answered 404Špatná adresa, nebo příjemce nenaslouchá. V n8n použijte Production URL a workflow aktivujte. Zkontrolujte, zda na konci nechybí cesta.
Server answered 405Adresa nepřijímá POST. Nasměrujte ji na koncový bod určený pro příchozí data.
Server answered 413Data jsou pro příjemce příliš velká. Zvolte kratší rozsah dat, méně metrik nebo Denní součty místo Surových vzorků.
Server answered 500 nebo jiný kód 5xxPříjemce při zpracování selhal. Podívejte se do jeho vlastního logu. Nejdřív archivujte surové tělo požadavku, pak ho zpracujte.
Požadavku vypršel časPříjemci to trvalo déle, než je časový limit. Odpovězte nejdřív a pracujte potom, nebo zvyšte Časový limit v části Další možnosti (až na 300 s).
Zásady App Transport Security vyžadují použití zabezpečeného připojeníAdresa je prosté http na internetu. Použijte https. iOS dovolí Marrow používat prosté http jen ve vaší vlastní síti.
Server se zadaným názvem hostitele nebyl nalezenPřeklep v adrese, nebo jméno, které zná jen vaše domácí síť. Zkontrolujte ji v Safari v telefonu.
No valid URL - set an https endpoint firstAdresa je prázdná nebo nezačíná na https:// (či http:// ve vaší vlastní síti).
Nothing to export in this rangeV daném rozsahu dat nejsou žádná data tohoto druhu. Zvolte delší rozsah v části Další možnosti, nebo nejdřív něco zapište.

Opravy pro jednotlivé nástroje najdete na jejich stránkách: n8n, Zapier, Make, Home Assistant, Google Sheets, InfluxDB, libovolná URL.