Marrow Health
TR
İndir

Otomasyonlar: verileriniz, zamanlamayla gönderilir

Marrow, sağlık verilerinizin bir dosyasını seçtiğiniz herhangi bir URL'ye, seçtiğiniz sıklıkta, doğrudan telefondan POST edebilir. Bu sayfa başvuru kaynağıdır: nasıl kurulur, her yükün neye benzediği ve onu alacak bir şeyin nasıl yazılacağı.

n8n, Zapier, Make, Home Assistant, Google Sheets ve InfluxDB için hazır kurulumlar bağlantılar altında.

Tüm Marrow rehberleri: MCP · Kendi barındırdığınız yansı · Otomasyonlar · Dosyalar · Destek

Otomasyon nedir

Dışa aktar, Otomatik içinde kayıtlı bir iş: bir tür veri, bir biçim, bir tarih aralığı, bir URL, bir sıklık. Marrow dosyayı doğrulanmış deposundan oluşturur ve sıklık dolduğunda, her eşzamanlama kaydından sonra ve her arka plan yenilemesinde, uygulama kapalıyken URL'ye POST eder. Hiçbir şey bizden geçmez: telefon doğrudan sizin uç noktanızla konuşur.

Bir otomasyon kurma

  1. Dışa aktar sekmesi, Otomatik: açın, ardından Yeni Otomasyon. Bir aracın sayfasından (n8n, Zapier, Home Assistant ve bağlantılar altındaki diğerleri) oluşturulan otomasyon o aracın adını taşır ve her alanın yanında aracın orada ne beklediğini söyler.
  2. Adres: POST edeceği https URL'si. Başlıklar: alıcınızın ihtiyaç duyduğu her şey (bir Authorization bearer token'ı, bir X-Gitlab-Token, her ne ise). Araç hiçbirine ihtiyaç duymuyorsa Başlık ekle, Daha fazla seçenek altındadır.
  3. Veriler: Sağlık ölçümleri, Antrenmanlar, Kuvvet günlüğü, Beslenme günlüğü veya Belirtiler ve ruh hali, JSON ya da CSV olarak. Bir otomasyon tek tür taşır, bu yüzden istediğiniz her tür için bir tane yapın. Açık olan her biri bir bağlantı sayılır: Ücretsiz planda aynı anda 1 bağlantı açık kalır, Marrow Pro'da yapay zekalar ve sunucular dahil en fazla 10.
  4. Sıklık: kaç dakikada, saatte ya da günde bir. Tarih aralığı, toplama ve zaman aşımı Daha fazla seçenek altındadır.
  5. Şimdi çalıştır ilk yükü gönderir, böylece zamanlamayı beklemeden alıcıyı kontrol edebilirsiniz.

Tarih aralıkları

Yük biçimleri

Sağlık ölçümleri (günlük toplamlar, JSON)

Health Auto Export'un ölçümleriyle aynı yapı (name, units ve qty içeren data alanlarından oluşan bir metrics listesi). Bu yüzden o uygulama için yazılmış bir alıcının yalnızca küçük değişikliklere ihtiyacı olur: buradaki tarihler zaman damgası değil, düz günlerdir ve aşağıdaki antrenman ve kuvvet yükleri Marrow'a özgüdür. Değerler units içinde belirtilen saklanan birimdedir (kg, m, mL, degC, kcal, count). Kalp atış hızı her günün Avg, Min ve Max değerleri olarak bpm cinsinden, uyku ise her gece evreleriyle ve saat olarak gelir. İngiliz ölçü birimlerini istiyorsanız dönüştürmeyi kendi tarafınızda yapın.

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

Ham örnekler (Ham örnekler gruplaması), günlük toplam yerine her örneği başlangıç ve bitiş zamanıyla gönderir. CSV ölçümleri dosyalar sayfasında anlatılan geniş tablo olarak gelir.

Antrenmanlar

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

Kuvvet günlüğü

Her çalışma seti (ısınmalar dahil değildir), ayrıca egzersiz başına ilerleme ve kas grubu başına hacim. Ağırlıklar Ayarlar, Birimler içinde seçtiğiniz birimdedir. unit alanı hangisi olduğunu söyler. Her setin set_type değeri work, failure veya drop'tur ve tekrar rezervini (reps in reserve) kaydettiyseniz sette ayrıca rir bulunur. set_credits, bir kas grubuna yazılan setleri sayar, bir egzersiz birkaç grubu çalıştırıyorsa kesirlerle.

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

Beslenme günlüğü

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

Alıcı yazmak

HTTPS POST kabul edip 2xx ile yanıt veren her şey işe yarar: bir webhook hizmeti, sunucusuz bir fonksiyon, ev sunucusundaki bir betik. Üç kural onu sağlam tutar:

Her gönderiyi arşivleyen on iki satırlık bir Python alıcısı:

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

Onu HTTPS'in arkasına koyun (bir Cloudflare Tunnel, Tailscale Funnel ya da herhangi bir ters vekil sunucu) ve otomasyonu ona yönlendirin. İstediğiniz şey dosya klasörü yerine sorgulanabilir bir kopyaysa, kendi barındırdığınız yansı zaten yazılmış o alıcıdır.

Bilmekte fayda var

Sorun giderme

Şimdi çalıştır ile test edin. Altındaki satır ne olduğunu söyler, Daha fazla seçenek, Aktivite günlüğü ise son 30 çalıştırmayı aynı satırla tutar. Kontrol ederken her çalıştırma için bildirim almak üzere Çalıştırıldığında bildir'i (Daha fazla seçenek) açın.

Marrow'un gösterdiğiNe yapmalı
Gönderilenin özeti, örneğin 12 diary entriesTeslim edildi: alıcı 2xx ile yanıt verdi. Onun tarafında hiçbir şey görünmüyorsa aşağıdaki son satırlara bakın.
Server answered 401 veya 403Alıcı bir başlık istiyor ya da eklediğiniz yanlış. Adını ve değerini kontrol edin, Bearer ve ardından gelen boşluk dahil.
Server answered 404Adres yanlış ya da alıcı dinlemiyor. n8n'de Production URL'yi kullanın ve iş akışını etkinleştirin. Sonda eksik bir yol olup olmadığına bakın.
Server answered 405Adres POST kabul etmiyor. Onu gelen veri için ayrılmış uç noktaya yönlendirin.
Server answered 413Yük alıcı için çok büyük. Daha kısa bir tarih aralığı, daha az ölçüm ya da Ham örnekler yerine Günlük toplamlar seçin.
Server answered 500 veya başka bir 5xxAlıcı işlerken başarısız oldu. Kendi günlüğüne bakın. Önce ham gövdeyi arşivleyin, sonra ayrıştırın.
İstek zaman aşımına uğradıAlıcı zaman aşımından uzun sürdü. Önce yanıt verip işi sonra yapın ya da Daha fazla seçenek altındaki Zaman aşımı'nı yükseltin (300 sn'ye kadar).
Uygulama Aktarım Güvenliği ilkesi güvenli bir bağlantı kullanılmasını gerektiriyorAdres, internette düz http. https kullanın. iOS, Marrow'un düz http'yi yalnızca kendi ağınızda kullanmasına izin verir.
Belirtilen ana bilgisayar adına sahip bir sunucu bulunamadıAdreste bir yazım hatası var ya da yalnızca ev ağınızın bildiği bir ad kullanılmış. Telefondaki Safari'de kontrol edin.
No valid URL - set an https endpoint firstAdres boş ya da https:// ile başlamıyor (kendi ağınızda http:// de olur).
Nothing to export in this rangeTarih aralığında o türden veri yok. Daha fazla seçenek altında daha uzun bir aralık seçin ya da önce bir şey kaydedin.

Araç başına çözümler kendi sayfasında: n8n, Zapier, Make, Home Assistant, Google Sheets, InfluxDB, herhangi bir URL.