Κέντρο βοήθειας HealthyApps
Ελληνικά
Κέντρο βοήθειας
Κύριος ιστότοπος ↗

Αναζήτηση θεμάτων βοήθειας

Προπονήσεις - Μορφή εξαγωγής JSON

Τεκμηρίωση για τη δομή προπονήσεων σε εξαγωγές JSON

Τελευταία ενημέρωση: 31 Οκτωβρίου 2026

Σε αυτή τη σελίδα
Εκδόσεις εξαγωγής
Προπονήσεις Έκδοσης 2 Προπονήσεις Έκδοσης 2 Βασική δομήΥποχρεωτικά πεδίαΠροαιρετικά πεδίαΟμαδοποίηση χρόνου μετρήσεων προπόνησης
Προπονήσεις Έκδοσης 1 (παλαιού τύπου) Προπονήσεις Έκδοσης 1 (παλαιού τύπου) Δομή Έκδοσης 1
Σχετική τεκμηρίωση

Οι εξαγωγές JSON αποθηκεύουν τις προπονήσεις στον πίνακα workouts.

Εκδόσεις εξαγωγής

Το Health Auto Export υποστηρίζει δύο εκδόσεις εξαγωγής προπονήσεων:

  • Έκδοση 2 (Συνιστάται): Ενισχυμένη μορφή με πιο λεπτομερή μεταδεδομένα και δομημένα δεδομένα
  • Έκδοση 1 (Παλαιού τύπου): Παλαιότερη μορφή που διατηρείται για συμβατότητα με υπάρχουσες ροές εργασίας

Προπονήσεις Έκδοσης 2

Η Έκδοση 2 περιλαμβάνει τα ακόλουθα υποχρεωτικά πεδία και προαιρετικά δεδομένα. Τα παραδείγματα χρησιμοποιούν το Τοπικοποίηση μονάδων ανενεργό· η ενεργοποίησή του μπορεί να αλλάξει τις ετικέτες μονάδων στις σειρές μετρήσεων.

Βασική δομή

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

Υποχρεωτικά πεδία

  • id (String): Μοναδικό αναγνωριστικό της προπόνησης
  • name (String): Όνομα τύπου προπόνησης (π.χ. "Running", "Cycling", "Swimming")
  • start (Date): Ώρα έναρξης προπόνησης σε μορφή yyyy-MM-dd HH:mm:ss Z
  • end (Date): Ώρα λήξης προπόνησης σε μορφή yyyy-MM-dd HH:mm:ss Z
  • duration (Number): Διάρκεια προπόνησης σε δευτερόλεπτα

Προαιρετικά πεδία

Τα προαιρετικά πεδία εξαρτώνται από τα διαθέσιμα δεδομένα και τις επιλογές εξαγωγής σας:

Πηγή καταγραφής

{
  "source": {
    "name": "Workout App",
    "identifier": "com.example.workouts"
  }
}
  • source (Object): Η εφαρμογή ή η συσκευή που κατέγραψε την προπόνηση, με το όνομά της και το αναγνωριστικό εφαρμογής. Οι μεμονωμένες αναγνώσεις μετρήσεων έχουν ξεχωριστές συμβολοσειρές πηγής και μπορεί να προέρχονται από άλλη εφαρμογή ή συσκευή.

Πληροφορίες τοποθεσίας

{
  "location": "Outdoor",
  "isIndoor": false
}
  • location (String): Μία από τις "Indoor", "Outdoor", "Pool", "Open Water"
  • isIndoor (Boolean): Αν η προπόνηση πραγματοποιήθηκε σε εσωτερικό χώρο

Ενέργεια και ένταση

{
  "activeEnergyBurned": {
    "qty": 350,
    "units": "kcal"
  },
  "totalEnergy": {
    "qty": 450,
    "units": "kcal"
  },
  "intensity": {
    "qty": 8.5,
    "units": "kcal/hr\u00b7kg"
  }
}
  • activeEnergyBurned (Object): Ενεργές θερμίδες που καταναλώθηκαν κατά την προπόνηση
  • totalEnergy (Object): Συνολικές θερμίδες (ενεργές + ηρεμίας) που καταναλώθηκαν
  • intensity (Object): Τιμή μεταβολικού ισοδυνάμου εργασίας (MET)

Απόσταση και ταχύτητα

{
  "distance": {
    "qty": 3.5,
    "units": "mi"
  }
}
  • distance (Object): Συνολική καλυφθείσα απόσταση
  • speed (Object): Μέση ταχύτητα υπολογισμένη από απόσταση και διάρκεια
  • avgSpeed (Object): Μέση ταχύτητα καθ’ όλη τη διάρκεια της προπόνησης
  • maxSpeed (Object): Μέγιστη ταχύτητα που επιτεύχθηκε

Κάθε αντικείμενο περιλαμβάνει qty και units.

Υψόμετρο

{
  "elevationUp": {
    "qty": 500,
    "units": "ft"
  },
  "elevationDown": {
    "qty": 450,
    "units": "ft"
  }
}
  • elevationUp (Object): Συνολική ανάβαση υψομέτρου
  • elevationDown (Object): Συνολική κατάβαση υψομέτρου

Μονάδες: "ft" (πόδια) ή "m" (μέτρα)

Περιβαλλοντικά δεδομένα

{
  "temperature": {
    "qty": 72,
    "units": "degF"
  },
  "humidity": {
    "qty": 65,
    "units": "%"
  }
}
  • temperature (Object): Θερμοκρασία περιβάλλοντος κατά την προπόνηση
  • humidity (Object): Σχετική υγρασία σε ποσοστό

Μονάδες θερμοκρασίας: "degF" (Fahrenheit) ή "degC" (Celsius)

Πεδία ειδικά για κολύμβηση

{
  "lapLength": {
    "qty": 0.025,
    "units": "mi"
  },
  "strokeStyle": "Freestyle",
  "swolfScore": 45,
  "salinity": "Fresh Water",
  "totalSwimmingStrokeCount": {
    "qty": 1200,
    "units": "count"
  },
  "swimCadence": {
    "qty": 30,
    "units": "count/min"
  }
}
  • lapLength (Object): Μήκος κάθε γύρου
  • strokeStyle (String): Μία από τις:
    • "Backstroke"
    • "Breaststroke"
    • "Butterfly"
    • "Freestyle"
    • "Mixed"
    • "Kickboard"
    • "Unknown"
  • swolfScore (Number): Βαθμολογία αποδοτικότητας κολύμβησης
  • salinity (String): "Fresh Water" ή "Salt Water"
  • totalSwimmingStrokeCount (Object): Συνολικός αριθμός κινήσεων
  • swimCadence (Object): Κινήσεις ανά λεπτό

Δεδομένα βημάτων και ρυθμού

{
  "stepCount": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "qty": 5000,
      "units": "count",
      "source": "Apple Watch"
    }
  ],
  "stepCadence": {
    "qty": 180,
    "units": "count/min"
  },
  "flightsClimbed": {
    "qty": 10,
    "units": "count"
  }
}
  • stepCount (Array): Πίνακας μετρήσεων βημάτων στο χρόνο
  • stepCadence (Object): Βήματα ανά λεπτό
  • flightsClimbed (Object): Αριθμός ορόφων σκαλών που ανεβήκαν

Δεδομένα καρδιακού ρυθμού

{
  "heartRate": {
    "min": {
      "qty": 120,
      "units": "count/min"
    },
    "avg": {
      "qty": 150,
      "units": "count/min"
    },
    "max": {
      "qty": 175,
      "units": "count/min"
    }
  },
  "maxHeartRate": {
    "qty": 175,
    "units": "count/min"
  },
  "avgHeartRate": {
    "qty": 150,
    "units": "count/min"
  },
  "heartRateData": [
    {
      "date": "2024-02-06 07:00:00 -0800",
      "Min": 120,
      "Avg": 150,
      "Max": 175,
      "units": "count/min",
      "source": "Apple Watch"
    }
  ],
  "heartRateRecovery": [
    {
      "date": "2024-02-06 07:30:00 -0800",
      "Min": 140,
      "Avg": 145,
      "Max": 150,
      "units": "count/min",
      "source": "Apple Watch"
    }
  ]
}
  • heartRate (Object): Σύνοψη με ελάχιστο, μέσο και μέγιστο καρδιακό ρυθμό κατά την προπόνηση
  • maxHeartRate (Object): Μέγιστος καρδιακός ρυθμός κατά την προπόνηση
  • avgHeartRate (Object): Μέσος καρδιακός ρυθμός κατά την προπόνηση
  • heartRateData (Array): Λεπτομερείς μετρήσεις από την προπόνηση, που τελειώνουν όταν τελειώνει η προπόνηση
  • heartRateRecovery (Array): Ξεχωριστές μετρήσεις από τα δύο λεπτά αμέσως μετά τη λήξη της προπόνησης

Οι συνοπτικοί καρδιακοί ρυθμοί χρησιμοποιούν καταγεγραμμένες τιμές προπόνησης όταν είναι διαθέσιμες, με εναλλακτική τις αναγνώσεις καρδιακού ρυθμού της προπόνησης. Οι εξαγόμενες αναγνώσεις περιλαμβάνουν μετρήσεις που λήφθηκαν κατά τις παύσεις, επομένως οι κορυφές και οι μέσοι όροι τους μπορεί να διαφέρουν από τη σύνοψη.

Πίνακες δεδομένων χρονοσειρών

Πολλές μετρήσεις μπορούν να συμπεριληφθούν ως πίνακες χρονοσειρών όταν είναι ενεργοποιημένο το «Συμπερίληψη μετρήσεων προπόνησης»:

{
  "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": "count/min",
      "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": "mi/hr",
      "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:

  • date (Date): Χρονική σήμανση της μέτρησης
  • qty (Number): Τιμή ποσότητας
  • units (String): Μονάδα μέτρησης
  • source (String, προαιρετικό): Συσκευή ή εφαρμογή πηγής δεδομένων

Δομή HeartRateData:

  • date (Date): Χρονική σήμανση της μέτρησης
  • Min (Number): Ελάχιστος καρδιακός ρυθμός
  • Avg (Number): Μέσος καρδιακός ρυθμός
  • Max (Number): Μέγιστος καρδιακός ρυθμός
  • units (String): Μονάδα (count/min με Τοπικοποίηση μονάδων ανενεργή)
  • source (String, προαιρετικό): Συσκευή ή εφαρμογή πηγής δεδομένων

Δεδομένα διαδρομής

Όταν είναι ενεργοποιημένο το «Συμπερίληψη δεδομένων διαδρομής» και η προπόνηση έχει δεδομένα GPS:

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

Πεδία τοποθεσίας:

  • latitude (Number): Συντεταγμένη γεωγραφικού πλάτους GPS
  • longitude (Number): Συντεταγμένη γεωγραφικού μήκους GPS
  • altitude (Number): Υψόμετρο σε μέτρα
  • course (Number): Κατεύθυνση κίνησης σε μοίρες (0-360)
  • courseAccuracy (Number): Ακρίβεια μέτρησης πορείας σε μοίρες
  • horizontalAccuracy (Number): Οριζόντια ακρίβεια θέσης σε μέτρα
  • verticalAccuracy (Number): Κατακόρυφη ακρίβεια θέσης σε μέτρα
  • timestamp (Date): Ώρα καταγραφής της τοποθεσίας
  • speed (Number): Ταχύτητα σε μέτρα ανά δευτερόλεπτο
  • speedAccuracy (Number): Ακρίβεια μέτρησης ταχύτητας σε m/s

Μεταδεδομένα

{
  "metadata": {
    "customField": {
      "label": "value",
      "quantity": 123
    },
    "anotherField": [
      1,
      2,
      3
    ]
  }
}
  • metadata (Object): Πρόσθετα προσαρμοσμένα μεταδεδομένα που συνδέονται με την προπόνηση

Συμβάντα, δραστηριότητες και διαστήματα

Οι εξαγωγές JSON και Markdown Έκδοσης 2 μπορεί να περιλαμβάνουν events, segments, laps και activities που κατέγραψε η εφαρμογή προπόνησης. Παραμένουν διαθέσιμα όταν το Συμπερίληψη μετρήσεων προπόνησης είναι ανενεργό. Το CSV και το GPX δεν περιλαμβάνουν αυτές τις εγγραφές.

Με το Συμπερίληψη μετρήσεων προπόνησης ενεργό και τις σχετικές μετρήσεις επιλεγμένες, τα διαστήματα μπορεί επίσης να περιλαμβάνουν απόσταση, ενεργή ενέργεια, συνόψεις καρδιακού ρυθμού και ρυθμό ή ταχύτητα ενεργού χρόνου. Οι τιμές διακρίνουν καταγεγραμμένες μετρήσεις από εκτιμήσεις· οι μη διαθέσιμες τιμές παραλείπονται.

Με επιλεγμένη την απόσταση, το splits μπορεί να περιλαμβάνει εκτιμώμενα διαστήματα χιλιομέτρων και μιλίων. Μπορεί να διαφέρουν από τα διαστήματα της εφαρμογής καταγραφής, και το τελευταίο διάστημα σημειώνεται ως μερικό όταν είναι μικρότερο από την απόσταση-στόχο. Ελλείπουσες αναγνώσεις απόστασης ή μη υποστηριζόμενοι τύποι προπόνησης μπορούν να αποτρέψουν τον υπολογισμό διαστημάτων.

Βαθμολογίες προσπάθειας προπόνησης

Οι εξαγωγές JSON και Markdown Έκδοσης 2 μπορούν να περιλαμβάνουν επιλεγμένες τιμές Βαθμολογίας προσπάθειας προπόνησης (effortScore) και Εκτιμώμενης βαθμολογίας προσπάθειας προπόνησης (estimatedEffortScore). Καθεμία είναι αντικείμενο με qty και units: "appleEffortScore".

Οι βαθμολογίες απαιτούν iOS 18 ή νεότερο και πρόσβαση στα αντίστοιχα δεδομένα στο Apple Health. Οι βαθμολογίες ολόκληρης της προπόνησης και δραστηριότητας είναι ξεχωριστές. Είναι ανεξάρτητες από την Ομαδοποίηση χρόνου και το Συμπερίληψη μετρήσεων προπόνησης· το CSV δεν τις περιλαμβάνει.

Στο Περιήγηση → Προπονήσεις, ανοίξτε το φύλλο εξαγωγής της λίστας ή τις ρυθμίσεις εξαγωγής Έκδοσης 2 μιας προπόνησης, μετά χρησιμοποιήστε Επιλογή πεδίων εξαγωγής για να επιλέξετε βαθμολογίες προσπάθειας πριν από την εξαγωγή.

Ομαδοποίηση χρόνου μετρήσεων προπόνησης

Όταν χρησιμοποιείτε Έκδοση εξαγωγής 2 και είναι ενεργοποιημένο το «Συμπερίληψη μετρήσεων προπόνησης», μπορείτε να ελέγχετε τη λεπτομέρεια των δεδομένων χρονοσειρών:

  • Λεπτά: Ομαδοποιεί τις μετρήσεις προπόνησης σε λεπτά ρολογιού. Το πρώτο και το τελευταίο λεπτό μπορεί να περιλαμβάνουν λίγα δευτερόλεπτα ακριβώς πριν την έναρξη της προπόνησης ή ακριβώς μετά τη λήξη της.
  • Δευτερόλεπτα: Ομαδοποιεί τις μετρήσεις προπόνησης σε δευτερόλεπτα ρολογιού, με κάθε χρονική σήμανση να σηματοδοτεί την έναρξη του δευτερολέπτου της. Το πρώτο και το τελευταίο δευτερόλεπτο μπορεί να περιλαμβάνουν το κλάσμα του δευτερολέπτου ακριβώς έξω από την προπόνηση. Τα αρχεία είναι μεγαλύτερα από την ομαδοποίηση ανά λεπτό.

Η ενεργή και η ηρεμίας ενέργεια χρησιμοποιούν τα ίδια συνδυασμένα σύνολα με άλλες μετρήσεις προπόνησης σε κάθε χρονική ομάδα. Οι αναγνώσεις από περισσότερες από μία συσκευές ή εφαρμογές περιλαμβάνονται μαζί.

Προπονήσεις Έκδοσης 1 (παλαιού τύπου)

Η Έκδοση 1 χρησιμοποιεί απλούστερη δομή. Για νέες εξαγωγές συνιστάται η Έκδοση 2.

Δομή Έκδοσης 1

{
  "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": "bpm"
    }
  ],
  "route": [
    {
      "lat": 37.7749,
      "lon": -122.4194,
      "altitude": 50.5,
      "timestamp": "2024-02-06 07:00:00 -0800"
    }
  ]
}

Σχετική τεκμηρίωση