Marrow Health
MS
Muat turun

Automasi: data anda, ditolak mengikut jadual

Marrow boleh membuat POST fail data kesihatan anda ke mana-mana URL pilihan anda, pada kekerapan pilihan anda, terus daripada telefon. Halaman ini ialah rujukannya: cara menyediakannya, rupa setiap muatan, dan cara menulis sesuatu yang menerimanya.

Persediaan siap pakai untuk n8n, Zapier, Make, Home Assistant, Google Sheets dan InfluxDB ada di bawah sambungan.

Semua panduan Marrow: MCP · Cermin dihoskan sendiri · Automasi · Fail · Sokongan

Apa itu automasi

Tugas tersimpan dalam Eksport, Automatik: satu jenis data, satu format, satu julat tarikh, satu URL, satu kekerapan. Marrow membina fail daripada stor yang disahkan dan membuat POST ke URL dengan apl ditutup, selepas setiap commit penyegerakan dan pada setiap muat semula latar belakang, bila-bila masa kekerapan itu telah berlalu. Tiada apa-apa melalui kami: telefon bercakap terus dengan titik akhir anda.

Menyediakannya

  1. Tab Eksport, Automatik: hidupkannya, kemudian Automasi Baharu. Jika dibuat daripada halaman sesuatu alat (n8n, Zapier, Home Assistant dan lain-lain di bawah sambungan), automasi itu membawa nama alat tersebut dan menyatakan di sebelah setiap medan apa yang alat itu mahu di situ.
  2. Alamat: URL https yang akan di-POST. Pengepala: mana-mana yang diperlukan penerima anda (token pembawa Authorization, X-Gitlab-Token, apa sahaja). Apabila alat tidak memerlukan satu pun, Tambah pengepala ada di bawah Lebih banyak pilihan.
  3. Data: Metrik kesihatan, Senaman, Log kekuatan, Diari pemakanan, atau Gejala dan mood, sebagai JSON atau CSV. Satu automasi membawa satu jenis, jadi buat satu bagi setiap jenis yang anda mahu. Setiap satu yang dihidupkan dikira sebagai sambungan: Percuma mengekalkan 1 sambungan hidup pada satu masa, Marrow Pro sehingga 10, termasuk AI dan pelayan.
  4. Kekerapan: setiap beberapa minit, jam atau hari. Julat tarikh, pengagregatan dan tamat masa ada di bawah Lebih banyak pilihan.
  5. Jalankan sekarang menghantar muatan pertama supaya anda boleh menyemak penerima sebelum menunggu jadual.

Julat tarikh

Bentuk muatan

Metrik kesihatan (jumlah harian, JSON)

Struktur yang sama dengan metrik Health Auto Export (senarai metrics bagi name, units dan data dengan qty), jadi penerima yang ditulis untuk apl itu hanya memerlukan sedikit perubahan: tarikh di sini ialah hari biasa, bukan cap masa, dan muatan senaman dan kekuatan di bawah ialah milik Marrow sendiri. Nilai berada dalam unit tersimpan yang dinamakan dalam units (kg, m, mL, degC, kcal, count). Kadar denyutan jantung datang sebagai Avg, Min dan Max setiap hari dalam bpm, dan tidur sebagai setiap malam beserta peringkatnya dalam jam. Tukar di pihak anda jika anda mahu unit imperial.

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

Sampel mentah (pengelompokan Sampel mentah) menghantar setiap sampel dengan masa mula dan tamatnya dan bukan jumlah harian. Metrik CSV datang sebagai jadual lebar yang diterangkan pada halaman fail.

Senaman

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

Log kekuatan

Setiap set kerja (set memanaskan badan ditinggalkan), ditambah kemajuan bagi setiap senaman dan isi padu bagi setiap kumpulan otot. Berat berada dalam unit yang anda pilih dalam Tetapan, Unit. Medan unit menyatakan yang mana. set_type setiap set ialah work, failure atau drop, dan satu set juga membawa rir apabila anda mencatat ulangan yang tinggal. set_credits mengira set yang dikreditkan kepada satu kumpulan otot, dalam pecahan apabila satu senaman melatih beberapa kumpulan.

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

Diari pemakanan

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

Menulis penerima

Apa-apa yang menerima POST HTTPS dan menjawab 2xx boleh digunakan: perkhidmatan webhook, fungsi tanpa pelayan, skrip pada pelayan rumah. Tiga peraturan menjadikannya mantap:

Penerima Python dua belas baris yang mengarkibkan setiap post:

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

Letakkannya di belakang HTTPS (Cloudflare Tunnel, Tailscale Funnel, atau mana-mana proksi songsang) dan arahkan automasi kepadanya. Jika yang anda mahu ialah salinan yang boleh ditanya dan bukan folder fail, cermin dihoskan sendiri ialah penerima itu yang sudah siap ditulis.

Perlu diketahui

Penyelesaian masalah

Uji dengan Jalankan sekarang. Baris di bawahnya menyatakan apa yang berlaku, dan Lebih banyak pilihan, Log aktiviti menyimpan 30 larian terakhir dengan baris yang sama. Hidupkan Beritahu apabila dijalankan (Lebih banyak pilihan) untuk mendapat pemberitahuan bagi setiap larian semasa anda menyemak.

Apa yang Marrow tunjukkanApa yang perlu dibuat
Ringkasan apa yang dihantar, seperti 12 diary entriesDihantar: penerima menjawab 2xx. Jika tiada apa-apa muncul di pihaknya, lihat baris terakhir di bawah.
Server answered 401 atau 403Penerima mahukan pengepala, atau yang anda tambah salah. Semak nama dan nilainya, termasuk Bearer dan ruang selepasnya.
Server answered 404Alamat salah, atau penerima tidak mendengar. Dalam n8n, gunakan Production URL dan aktifkan aliran kerja. Semak sama ada laluan di hujung tertinggal.
Server answered 405Alamat tidak menerima POST. Arahkan kepada titik akhir yang dimaksudkan untuk data masuk.
Server answered 413Muatan terlalu besar untuk penerima. Pilih julat tarikh yang lebih pendek, kurang metrik, atau Jumlah harian dan bukan Sampel mentah.
Server answered 500 atau 5xx yang lainPenerima gagal semasa mengendalikannya. Lihat lognya sendiri. Arkibkan badan mentah dahulu, kemudian huraikan.
Permintaan tamat masaPenerima mengambil masa lebih lama daripada had masa. Jawab dahulu dan bekerja kemudian, atau naikkan Tamat masa di bawah Lebih banyak pilihan (sehingga 300 s).
Dasar App Transport Security memerlukan penggunaan sambungan selamatAlamat ialah http biasa di internet. Gunakan https. iOS membenarkan Marrow menggunakan http biasa hanya pada rangkaian anda sendiri.
Pelayan dengan nama hos yang dinyatakan tidak dapat ditemuiSalah taip dalam alamat, atau nama yang hanya diketahui oleh rangkaian rumah anda. Semaknya dalam Safari pada telefon.
No valid URL - set an https endpoint firstAlamat kosong atau tidak bermula dengan https:// (atau http:// pada rangkaian anda sendiri).
Nothing to export in this rangeTiada data jenis itu dalam julat tarikh. Pilih julat yang lebih panjang di bawah Lebih banyak pilihan, atau catat sesuatu dahulu.

Penyelesaian bagi satu alat pada satu masa ada pada halamannya: n8n, Zapier, Make, Home Assistant, Google Sheets, InfluxDB, mana-mana URL.