Benutzerdefinierte Felder

Benutzerdefinierte Felder

Mit etwas Programmier- und JavaScript-Kenntnissen, kannst Du eigene benutzerdefinierte Felder bzw. Werte erstellen. Du hast vollen Zugriff auf alle Werte des Trainings sowie auf Deine Zonen- und Körperdaten.

Benutzerdefinierte Felder sind in Auflistungen mit einem * gekennzeichnet und werden auf der Trainingsseite, in der Jahresübersicht und in den Diagrammen der Auswertung mitaggregiert und dargestellt.

Dieses benutzerdefinierte Feld berechnet die Anzahl der Herzschläge während eines Trainings
Dieses benutzerdefinierte Feld berechnet die Anzahl der Herzschläge während eines Trainings

Regelsatz

Das Trainings-Objekt ist an "this" gebunden

An das Schlüsselwort "this" ist das Trainings-Objekt mit all seinen vordefinierten Metriken gebunden.

Du kannst dieses Objekt mit "console.log(this);" in die Entwicklerkonsole Deines Webbrowser ausgeben lassen, um zu sehen, welche Metriken ein Training besitzt.
Gehe dann in die Kalenderansicht, Auswertung oder die Trainingsdetailansicht, um das Benutzerdefinierte Feld auszuführen.
Die Entwicklerkonsole lässt sich unter Windows mit Strg+Shift+I öffnen.

Das Feld muss eine Nummer zurück geben

Dem "return"-Schlüsselwort muss eine Nummer übergeben werden. Andernfalls wird von dem Feld "NaN" berechnet und es wird nicht angezeigt.
Andere Zeichenketten können aus Sicherheitsgründen nicht zurückgegeben werden.

Aggregation

Die Aggregation des Feldes legt fest, mit welcher Methode das Feld in der Auswertung, also im Aggregationsdiagramm oder Relationendiagramm, zusammengezählt wird.

Summe

Die Berechnung des Ergebnisses jedes Trainings wird in der Auswertung zusammengezählt.
Ein Beispiel ist die "Distanz" oder die "Dauer" einer Aktivität. Diese Metriken werden summiert.

Durchschnitt nach Anzahl

Das Ergebnis der Trainings wird in der Auswertung aufsummiert und dann durch die Anzahl der Trainings geteilt.
Ein Beispiel ist die "Temperatur", die als Durchschnitt der Trainingsanzahl in der Auswertung angezeigt wird.

Durchschnitt nach Dauer

Das Ergebnis der Trainings wird in der Auswertung aufsummiert und dann durch die Gesamtdauer der Trainings geteilt.
Ein Beispiel ist die "Herzfrequenz", die als Durchschnitt der Trainingsdauer in der Auswertung angezeigt wird.

Metriken und Werte eines Trainings

Bitte beachte das die Liste möglicherweise unvollständig ist, da ab und zu neue Metriken hinzukommen und die Liste vielleicht noch nicht aktualisiert wurde.
Es empfiehlt sich immer vorübergehend das Debug-Feld zu aktivieren, um zu sehen welche Metriken ein Training wirklich besitzt.

Das zugrundeliegende Wertesystem ist metrisch und muss nötigenfalls umgerechnet werden.

Folgende Metriken können an das Trainings-Objekt "this" gebunden sein.

Liste der möglichen Werte eines Trainings
NameBeschreibungTyp
heartrateDurchschnittliche HerzfrequenzNummer
aerobicTrainingEffectAerober Trainingseffekt - proprietärNummer
altitudeHöhendaten - Anstieg, Abstieg, Steigung, Gefälle, Höhenmeter (Meter)Objekt
{
  "ascent": 124,
  "descent": 242,
  "elevation": 82
}
anaerobicTrainingEffectAnaerober TrainingseffektNummer
apparentTemperatureGefühlte Temperatur (Celcius)Nummer
bikesEquipment - FahrräderObjekt
bodyElasticityKörperelastizitätNummer
cadenceDurchschnittliche Kadenz oder SchrittfrequenzNummer
cadenceMaxMaximale Kadenz oder SchrittfrequenzNummer
caloriesKilokalorienNummer
cloudCoverBewölkungNummer
confirmedBestätigtes geplantes TrainingBoolean
dateDatum des TrainingsDatum
deviceNameName des AufzeichnungsgerätesString
devicesGeräte (Brustgurt, Stryd, etc..)Objekt
distanceDistanz (Meter)Nummer
distanceBySpeedDistanz nach Geschwindigkeit (Meter)Nummer
durationAktive Dauer (Sekunden)Nummer
durationPausedPausezeit (Sekunden)Nummer
durationTotalGesamtdauer (Sekunden)Nummer
efficencySchwimmeffizienzNummer
efficencyMinMinimale SchwimmeffizienzNummer
effortAufwand - nach Zonenpriorität bestimmtNummer
enjoymentSpaßfaktorNummer
fatKörperfettNummer
formPowerForm PowerNummer
formPowerFactor"Form Power"-IndexNummer
ftpFunktionaler LeistungsschwellwertNummer
ftpaFunktionaler Leistungsschwellwert GeschwindigkeitNummer
groundContactTimeBodenkontaktzeit (Millisekunden)Nummer
groundContactTimeBalanceBalance der Bodenkontaktzeit (Prozent von Links)Nummer
groundContactTimeMinMinimale Bodenkontaktzeit (Millisekunden)Nummer
groundContactTimeOEMBodenkontaktzeit des Originalgerätes (Millisekunden)Nummer
heartrateDurchschnittliche HerzfrequenzNummer
heartrateMaxMaximale HerzfrequenzNummer
heartratePerceivedGefühlte HerzfrequenzNummer
heartratePerceivedPercentageGefühlte Herzfrequenz %maxHFNummer
heartratePercentageHerzfrequenz %maxHFNummer
heightKörpergröße (Zentimeter)Nummer
hrLthLaktatschwellwert Herzfrequenz der KapazitätNummer
hrMaxMaximale Herzfrequenz der KapazitätNummer
hrRestRuhepulsNummer
hrvValueErholungswert - proprietärNummer
humidityLuftfeuchtigkeitNummer
idEindeutige IdentifikationsnummerString
intensityDistributionIntensitätsverteilung (Sekunden)Objekt
{
  "heartrate": null,
  "power": {
    "0": 1852,
    "1": 0,
    "2": 0
  },
  "pace": {
    "0": 1858,
    "1": 0,
    "2": 0
  },
  "cadence": {
    "0": 402,
    "1": 1264,
    "2": 192
  }
}
isRaceWettkampfBoolean
kiloJouleKilojouleNummer
leftPedalSmoothnessPedallaufruheNummer
rightPedalSmoothnessPedallaufruheNummer
leftRightBalancePedalbalanceNummer
leftTorqueEffectivenessDrehmomenteffektivitätNummer
rightTorqueEffectivenessDrehmomenteffektivitätNummer
legSpringStiffnessLeg Spring StiffnessNummer
legSpringStiffnessMaxMaximale Leg Spring StiffnessNummer
miscEquipmentGenerisches EquipmentObjekt
muscleMuskelanteil %Nummer
ozoneAtmosphärisches OzonNummer
peakEpocPeak EPOC - proprietär (ml/kg)Nummer
paceDurchschnittlicher Pace (Sekunden pro Kilometer)Nummer
paceBySpeedDurchschnittlicher Pace nach Geschwindigkeit (Sekunden pro Kilometer)Nummer
paceGradeAdjustedHöhenkorrigierter durchschnittlicher Pace (Sekunden pro Kilometer)Nummer
paceGradeAdjustedPerceivedGefühlter höhenkorrigierter durchschnittlicher Pace (Sekunden pro Kilometer)Nummer
paceMaxMaximaler Pace (Sekunden pro Kilometer)Nummer
pacePercentagePace vom FTPa in %Nummer
perceivedEffortGefühlter AufwandNummer
performanceConditionLeistungszustand - proprietärObjekt
poolLengthBahnlängeNummer
positionLatLatitudeNummer
positionLongLongitudeNummer
powerDurchschnittliche LeistungNummer
powerAerobicFactorHerzfrequenz-Leistung-FaktorNummer
powerMaxMaximale LeistungNummer
powerPerceivedGefühlte LeistungNummer
powerPerceivedPercentageGefühlte Leistung in % des FTPNummer
powerPercentageLeistung in % des FTPNummer
precipIntensityNiederschlagsintensitätNummer
precipProbabilityNiederschlagswahrscheinlichkeitNummer
pressureLuftdruckNummer
recoveryTimeErholungszeit - proprietärNummer
shareIdIdentifikationsnummer des öffentlichen TrainingsString
shoesAusrüstung SchuheObjekt
sicknessIntensityKrankheit - IntensitätNummer
speedGeschwindigkeit (Meter pro Sekunde)Nummer
speedAerobicFactorHerzfrequenz-Pace-FaktorNummer
speedIndexPace-Leistung-IndexNummer
speedMaxMaximale Geschwindigkeit (Meter pro Sekunde)Nummer
sportTypeSportartString
"running" "cycling" "swimming" "misc"
subSportTypeUntergordnete SportartString
"hiking" "skiing" "treadmill" ...
stepLengthSchrittlängeNummer
stepLengthMaxMaximale SchrittlängeNummer
stepsSchritteNummer
strokeLengthZuglängeNummer
strokeLengthMaxMaximale ZuglängeNummer
strokesSchwimmzügeNummer
temperatureGerätetemperaturNummer
temperatureStationLufttemperaturNummer
timezoneZeitzoneNummer
titleTitelString
trainingTypeTyp des TrainingsString
"planned" "file"
uvIndexUV-IndexNummer
verticalOscillationVertikale OszillationNummer
verticalOscillationOEMVertikale Oszillation (Originalgerät)Nummer
visibilitySichtweiteNummer
vo2maxVO2maxNummer
vo2maxRelativeRelativer VO2maxNummer
walkingDurationDauer gehendNummer
waterKörperwasseranteil in %Nummer
weightKörpergewichtNummer
windBearingWindrichtungNummer
windGustWindböenNummer
windSpeedWindgeschwindigkeitNummer
zonesZonenverteilungObjekt
{
  "cadence": [
    {
      "name": "Leicht",
      "from": -1,
      "to": 167,
      "intensity": 0,
    },
    {
      "name": "Moderat",
      "from": 168,
      "to": 176,
      "intensity": 1,
    },
    {
      "name": "Intensiv",
      "from": 177,
      "to": -1,
      "intensity": 2,
    }
  ],
  "heartrate": [
    {
      "name": "Sehr leicht",
      "from": -1,
      "to": 125,
      "intensity": 0,
    },
    {
      "name": "Leicht",
      "from": 126,
      "to": 149,
      "intensity": 0,
    },
    ...
  ],
  "pace": [
    {
      "name": "Sehr leicht",
      "to": 410,
      "from": -1,
      "intensity": 0,
    },
    {
      "name": "Leicht",
      "to": 371,
      "from": 409,
      "intensity": 0,
    },
    ...
  ],
  "power": [
    {
      "name": "Sehr leicht",
      "from": -1,
      "to": 170,
      "intensity": 0,
    },
    {
      "name": "Leicht ",
      "from": 171,
      "to": 190,
      "intensity": 0,
    },
    ...
  ]
}
.........

Serien eines Trainings

Diese Funktion ist nur in der Trainingsdetailansicht verfügbar.

In dem Objekt "seriesSampled" sind die Zeitserien eines Trainings gespeichert.

Verschaffe Dir mit dem aktivierten Debug-Feld einen genauen Überblick über die möglichen Werte.

Die Zeitserien sind reduziert abgespeichert und müssen mit der "sampleSize" extrapoliert werden.

this = {
  ...,
  seriesSampled: {
    sampleSize: 2,
    endOffset: 0,
    data: {
      heartrate: [ 123, 122, 122, 130, 132, ... ],
      power: [ 223, 222, 252, 270, 270, ... ],
      ...
    }
  },
  ...
}