Antrenmanlar - JSON Dışa Aktarma Formatı

JSON dışa aktarmalarda antrenman yapısı hakkında dokümantasyon

Last updated: February 6, 2026

On this page

Antrenmanlar

Antrenman verileri, Apple Health'te kaydedilen koşu, bisiklet, yüzme, kuvvet antrenmanı ve daha fazlası gibi tüm egzersiz seanslarınızı içerir. JSON dışa aktarmalarda antrenmanlar workouts dizisinde saklanır.

Dışa Aktarma Sürümleri

Health Auto Export iki antrenman dışa aktarma sürümünü destekler:

  • Sürüm 2 (Önerilen): Daha ayrıntılı metadata ve yapılandırılmış verilerle geliştirilmiş format
  • Sürüm 1 (Legacy): Mevcut iş akışlarıyla uyumluluk için korunan eski format

Antrenmanlar Sürüm 2

Sürüm 2, yalnızca veriler mevcut olduğunda dahil edilen isteğe bağlı alanlarla kapsamlı bir yapı sağlar.

Temel Yapı

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "Running",
  "start": "2024-02-06 07:00:00 -0800",
  "end": "2024-02-06 07:30:00 -0800",
  "duration": 1800
}

Gerekli Alanlar

  • id (String): Antrenman için benzersiz tanımlayıcı
  • name (String): Antrenman türü adı (örn: "Running", "Cycling", "Swimming")
  • start (Date): Antrenmanın başlangıç saati yyyy-MM-dd HH:mm:ss Z formatında
  • end (Date): Antrenmanın bitiş saati yyyy-MM-dd HH:mm:ss Z formatında
  • duration (Number): Antrenman süresi saniye cinsinden

İsteğe Bağlı Alanlar

Aşağıdaki alanlar yalnızca veriler mevcut olduğunda dahil edilir:

Konum Bilgileri

{
  "location": "Outdoor",
  "isIndoor": false
}
  • location (String): "Indoor", "Outdoor", "Pool", "Open Water" değerlerinden biri
  • isIndoor (Boolean): Antrenmanın kapalı alanda yapılıp yapılmadığı

Enerji ve Yoğunluk

{
  "activeEnergyBurned": {
    "qty": 350,
    "units": "kcal"
  },
  "totalEnergy": {
    "qty": 450,
    "units": "kcal"
  },
  "intensity": {
    "qty": 8.5,
    "units": "MET"
  }
}
  • activeEnergyBurned (Object): Antrenman sırasında yakılan aktif kaloriler
  • totalEnergy (Object): Yakılan toplam kaloriler (aktif + dinlenme)
  • intensity (Object): Görevin metabolik eşdeğeri (MET) değeri

Mesafe ve Hız

{
  "distance": {
    "qty": 3.5,
    "units": "mi"
  },
  "speed": {
    "qty": 7.0,
    "units": "mph"
  },
  "avgSpeed": {
    "qty": 7.0,
    "units": "mph"
  },
  "maxSpeed": {
    "qty": 8.5,
    "units": "mph"
  }
}
  • distance (Object): Kat edilen toplam mesafe
  • speed (Object): Mevcut veya ortalama hız
  • avgSpeed (Object): Antrenman boyunca ortalama hız
  • maxSpeed (Object): Ulaşılan maksimum hız

Birimler:

  • Mesafe: "mi" (mil) veya "km" (kilometre)
  • Hız: "mph" (saatte mil) veya "kmph" (saatte kilometre)

Yükseklik

{
  "elevationUp": {
    "qty": 500,
    "units": "ft"
  },
  "elevationDown": {
    "qty": 450,
    "units": "ft"
  }
}
  • elevationUp (Object): Toplam kazanılan yükseklik
  • elevationDown (Object): Toplam kaybedilen yükseklik

Birimler: "ft" (fit) veya "m" (metre)

Çevresel Veriler

{
  "temperature": {
    "qty": 72,
    "units": "degF"
  },
  "humidity": {
    "qty": 65,
    "units": "%"
  }
}
  • temperature (Object): Antrenman sırasında ortam sıcaklığı
  • humidity (Object): Bağıl nem yüzdesi

Sıcaklık Birimleri: "degF" (Fahrenheit) veya "degC" (Celsius)

Yüzme Özel Alanlar

{
  "lapLength": {
    "qty": 0.025,
    "units": "mi"
  },
  "strokeStyle": "Freestyle",
  "swolfScore": 45,
  "salinity": "Fresh Water",
  "totalSwimmingStrokeCount": {
    "qty": 1200,
    "units": "count"
  },
  "swimCadence": {
    "qty": 30,
    "units": "spm"
  }
}
  • lapLength (Object): Her kulvarın uzunluğu
  • strokeStyle (String): Şunlardan biri:
    • "Backstroke"
    • "Breaststroke"
    • "Butterfly"
    • "Freestyle"
    • "Mixed"
    • "Kickboard"
    • "Unknown"
  • swolfScore (Number): Yüzme verimlilik skoru
  • salinity (String): "Fresh Water" veya "Salt Water"
  • totalSwimmingStrokeCount (Object): Toplam kol çekişi sayısı
  • swimCadence (Object): Dakikadaki kol çekişi

Adım ve Kadans Verileri

{
  "stepCount": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "qty": 5000,
      "units": "count",
      "source": "Apple Watch"
    }
  ],
  "stepCadence": {
    "qty": 180,
    "units": "spm"
  },
  "flightsClimbed": {
    "qty": 10,
    "units": "count"
  }
}
  • stepCount (Array): Zaman içinde adım sayısı ölçümlerinin dizisi
  • stepCadence (Object): Dakikadaki adım sayısı
  • flightsClimbed (Object): Çıkılan merdiven kat sayısı

Kalp Atış Hızı Verileri

{
  "heartRate": {
    "min": {
      "qty": 120,
      "units": "bpm"
    },
    "avg": {
      "qty": 150,
      "units": "bpm"
    },
    "max": {
      "qty": 175,
      "units": "bpm"
    }
  },
  "maxHeartRate": {
    "qty": 175,
    "units": "bpm"
  },
  "avgHeartRate": {
    "qty": 150,
    "units": "bpm"
  },
  "heartRateData": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "Min": 120,
      "Avg": 150,
      "Max": 175,
      "units": "bpm",
      "source": "Apple Watch"
    }
  ],
  "heartRateRecovery": [
    {
      "date": "2024-02-06 07:30:00 -0800",
      "Min": 140,
      "Avg": 145,
      "Max": 150,
      "units": "bpm",
      "source": "Apple Watch"
    }
  ]
}
  • heartRate (Object): Min, ortalama ve maksimum kalp atış hızı ile özet
  • maxHeartRate (Object): Antrenman sırasında maksimum kalp atış hızı
  • avgHeartRate (Object): Antrenman sırasında ortalama kalp atış hızı
  • heartRateData (Array): Antrenman boyunca detaylı kalp atış hızı ölçümleri
  • heartRateRecovery (Array): Toparlanma dönemindeki kalp atış hızı ölçümleri

Zaman Serisi Veri Dizileri

"Antrenman Metriklerini Dahil Et" etkinleştirildiğinde birçok metrik zaman serisi dizileri olarak dahil edilebilir:

{
  "activeEnergy": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "qty": 50,
      "units": "kcal",
      "source": "Apple Watch"
    }
  ],
  "basalEnergy": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "qty": 20,
      "units": "kcal",
      "source": "Apple Watch"
    }
  ],
  "cyclingCadence": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "qty": 90,
      "units": "rpm",
      "source": "Apple Watch"
    }
  ],
  "cyclingDistance": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "qty": 0.5,
      "units": "mi",
      "source": "Apple Watch"
    }
  ],
  "cyclingPower": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "qty": 200,
      "units": "W",
      "source": "Power Meter"
    }
  ],
  "cyclingSpeed": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "qty": 18,
      "units": "mph",
      "source": "Apple Watch"
    }
  ],
  "swimDistance": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "qty": 25,
      "units": "yd",
      "source": "Apple Watch"
    }
  ],
  "swimStroke": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "qty": 20,
      "units": "count",
      "source": "Apple Watch"
    }
  ],
  "walkingAndRunningDistance": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "qty": 0.25,
      "units": "mi",
      "source": "Apple Watch"
    }
  ]
}

QuantityData Yapısı:

  • date (Date): Ölçümün zaman damgası
  • qty (Number): Miktar değeri
  • units (String): Ölçü birimi
  • source (String, isteğe bağlı): Veri kaynağı cihaz veya uygulama

HeartRateData Yapısı:

  • date (Date): Ölçümün zaman damgası
  • Min (Number): Minimum kalp atış hızı
  • Avg (Number): Ortalama kalp atış hızı
  • Max (Number): Maksimum kalp atış hızı
  • units (String): Birim (genellikle "bpm")
  • source (String, isteğe bağlı): Veri kaynağı cihaz veya uygulama

Rota Verileri

"Rota Verilerini Dahil Et" etkinleştirildiğinde ve antrenmanın GPS verileri olduğunda:

{
  "route": [
    {
      "latitude": 37.7749,
      "longitude": -122.4194,
      "altitude": 50.5,
      "course": 45.0,
      "courseAccuracy": 5.0,
      "horizontalAccuracy": 10.0,
      "verticalAccuracy": 15.0,
      "timestamp": "2024-02-06 07:00:00 -0800",
      "speed": 7.0,
      "speedAccuracy": 0.5
    }
  ]
}

Konum Alanları:

  • latitude (Number): GPS enlem koordinatı
  • longitude (Number): GPS boylam koordinatı
  • altitude (Number): Metre cinsinden yükseklik
  • course (Number): Derece cinsinden seyahat yönü (0-360)
  • courseAccuracy (Number): Kurs ölçümünün doğruluğu derece cinsinden
  • horizontalAccuracy (Number): Metre cinsinden yatay konum doğruluğu
  • verticalAccuracy (Number): Metre cinsinden dikey konum doğruluğu
  • timestamp (Date): Konumun kaydedildiği zaman
  • speed (Number): Saniyede metre cinsinden hız
  • speedAccuracy (Number): Hız ölçümünün doğruluğu m/s cinsinden

Metadata

{
  "metadata": {
    "customField": "value",
    "anotherField": 123
  }
}
  • metadata (Object): Antrenmanla ilişkili ek özel metadata

Antrenmanlar Sürüm 1 (Legacy)

Sürüm 1 daha basit bir yapı kullanır. Yeni dışa aktarmalar için Sürüm 2 önerilir.

Sürüm 1 Yapısı

{
  "name": "Running",
  "start": "2024-02-06 07:00:00 -0800",
  "end": "2024-02-06 07:30:00 -0800",
  "totalEnergy": {
    "qty": 450,
    "units": "kcal"
  },
  "activeEnergy": {
    "qty": 350,
    "units": "kcal"
  },
  "distance": {
    "qty": 3.5,
    "units": "mi"
  },
  "heartRateData": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "qty": 150,
      "units": "count"
    }
  ],
  "route": [
    {
      "lat": 37.7749,
      "lon": -122.4194,
      "altitude": 50.5,
      "timestamp": "2024-02-06 07:00:00 -0800"
    }
  ]
}

Antrenman Metrikleri Zaman Gruplandırması

Dışa Aktarma Sürüm 2 kullanılırken ve "Antrenman Metriklerini Dahil Et" etkinleştirildiğinde, zaman serisi verilerinin ayrıntı düzeyini kontrol edebilirsiniz:

  • Dakikalar: Antrenman metriklerini dakika aralıklarına göre gruplar
  • Saniyeler: Antrenman metriklerini saniye aralıklarına göre gruplar (daha ayrıntılı, daha büyük dosya boyutu)

İpuçları

  • Rota Verilerini Dahil Et: Açık hava antrenmanları için GPS rota bilgilerini almak için bu seçeneği etkinleştirin
  • Antrenman Metriklerini Dahil Et: Kalp atış hızı, güç ve kadans gibi metrikler için ayrıntılı zaman serisi verilerini almak için bunu etkinleştirin
  • Dışa Aktarma Sürümü: En kapsamlı veri yapısı için Sürüm 2'yi kullanın
  • GPX Dışa Aktarma: Rota verileri haritalama uygulamalarında kullanılmak üzere ayrı GPX dosyaları olarak da dışa aktarılabilir

İlgili Dokümantasyon