Schema Erweiterte Programme

MyHomeFit: XML-Import-Anleitung für Erweiterte Programme

Mit MyHomeFit kannst du benutzerdefinierte Trainingsprogramme im XML-Format importieren (.mhf).

Diese Anleitung beschreibt den Aufbau der XML-Datei sowie die gültigen Werte für bestimmte Felder.

1. Grundstruktur

Die Datei beginnt mit dem Root-Tag <ExtProgram> und enthält mehrere Felder sowie eine Liste von Trainingsabschnitten (ProgramItem):

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           elementFormDefault="qualified">

  <xs:element name="ExtProgram">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="AppName" type="xs:string"/>
        <xs:element name="AppVersion" type="xs:string"/>
        <xs:element name="ExportDate" type="xs:string"/>
        <xs:element name="ExportVersion" type="xs:string"/>
        <xs:element name="ProgramName" type="xs:string"/>
        <xs:element name="ProgramNotice" type="xs:string"/>
        <xs:element name="ProgramHasLevel" type="xs:boolean"/>
        <xs:element name="ProgramHasIncline" type="xs:boolean"/>
        <xs:element name="Program">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="ProgramItem" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="SectorType" type="xs:string"/>
                    <xs:element name="SectorValue" type="xs:float"/>
                    <xs:element name="TargetType" type="xs:string"/>
                    <xs:element name="TargetValue1" type="xs:float"/>
                    <xs:element name="TargetValue2" type="xs:float" minOccurs="0"/>
                    <xs:element name="BaseLevel" type="xs:float" minOccurs="0"/>
                    <xs:element name="BaseIncline" type="xs:float" minOccurs="0"/>
                    <xs:element name="BaseWatt" type="xs:float" minOccurs="0"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

</xs:schema>

2. Erklärung der Felder

  • AppName: Muss MyHomeFIT sein
  • ProgramHasLevel, ProgramHasIncline: true oder false
  • SectorType: Gibt den Trainingsbereich an (z. B. Zeit oder Distanz)
  • TargetType: Gibt das Trainingsziel für diesen Bereich an (z. B. Watt, Puls, etc.)
  • BaseLevel / BaseIncline / BaseWatt: Startwerte für Geräte mit Unterstützung

3. Gültige Werte für SectorType

WertBedeutung
TimeZeit (in Sekunden)
DistanceDistanz (z. B. in Metern)
CalorieKalorien
StrokeRuder-/Trittzyklen

4. Gültige Werte für TargetType

WertBedeutung
Level_InclineStufe oder Neigung
RPMUmdrehungen pro Minute
SPMSchläge pro Minute (bei Rudergeräten)
WattLeistung in Watt
HRCHerzfrequenzsteuerung (Heart Rate Control)
SpeedGeschwindigkeit (in km/h)
WarmUpAufwärmphase (Zeit in Sekunden)
CoolDownAbkühlphase (Zeit in Sekunden)

5. Tipps

  • Stelle sicher, dass deine XML-Datei gut formatiert ist (UTF-8, keine Tippfehler)
  • Benutze gültige Werte für alle Pflichtfelder
  • Teste dein XML-Programm mit einer kleinen Datei und nur einem ProgramItem, bevor du größere Programme importierst

6. Beispiele

<?xml version="1.0" encoding="UTF-8"?>
<ExtProgram>
    <AppName>MyHomeFit</AppName>
    <AppVersion>1.0.0</AppVersion>
    <ExportDate>2025-05-05</ExportDate>
    <ExportVersion>1.0</ExportVersion>
    <ProgramName>Beispielprogramm Bike</ProgramName>
    <ProgramNotice>Dies ist ein Beispiel.</ProgramNotice>
    <ProgramHasLevel>true</ProgramHasLevel>
    <ProgramHasIncline>false</ProgramHasIncline>
    <Program>
        <ProgramItem>
            <SectorType>WarmUp</SectorType>
            <SectorValue>60.0</SectorValue>
            <TargetType>Time</TargetType>
            <TargetValue1>300.0</TargetValue1>
            <TargetValue2>0.0</TargetValue2>
            <BaseLevel>2.0</BaseLevel>
            <BaseIncline>0.0</BaseIncline>
            <BaseWatt>0.0</BaseWatt>
        </ProgramItem>
        <ProgramItem>
            <SectorType>Time</SectorType>
            <SectorValue>120.0</SectorValue>
            <TargetType>Level_Incline</TargetType>
            <TargetValue1>0.0</TargetValue1>
            <TargetValue2>0.0</TargetValue2>
            <BaseLevel>10.0</BaseLevel>
            <BaseIncline>0.0</BaseIncline>
            <BaseWatt>0.0</BaseWatt>
        </ProgramItem>
        <ProgramItem>
            <SectorType>Time</SectorType>
            <SectorValue>120.0</SectorValue>
            <TargetType>Distance</TargetType>
            <TargetValue1>1500.0</TargetValue1>
            <TargetValue2>0.0</TargetValue2>
            <BaseLevel>5.0</BaseLevel>
            <BaseIncline>0.0</BaseIncline>
            <BaseWatt>0.0</BaseWatt>
        </ProgramItem>
    </Program>
</ExtProgram>
<?xml version="1.0" encoding="UTF-8"?>
<ExtProgram>
    <AppName>MyHomeFit</AppName>
    <AppVersion>1.0.0</AppVersion>
    <ExportDate>2025-05-05</ExportDate>
    <ExportVersion>1.0</ExportVersion>
    <ProgramName>Beispielprogramm Laufband</ProgramName>
    <ProgramNotice>Dies ist ein Beispiel.</ProgramNotice>
    <ProgramHasLevel>true</ProgramHasLevel>
    <ProgramHasIncline>true</ProgramHasIncline>
    <Program>
        <ProgramItem>
            <SectorType>WarmUp</SectorType>
            <SectorValue>60.0</SectorValue>
            <TargetType>Time</TargetType>
            <TargetValue1>300.0</TargetValue1>
            <TargetValue2>0.0</TargetValue2>
            <BaseLevel>2.0</BaseLevel>
            <BaseIncline>1.0</BaseIncline>
            <BaseWatt>0.0</BaseWatt>
        </ProgramItem>
        <ProgramItem>
            <SectorType>Time</SectorType>
            <SectorValue>120.0</SectorValue>
            <TargetType>Level_Incline</TargetType>
            <TargetValue1>0.0</TargetValue1>
            <TargetValue2>0.0</TargetValue2>
            <BaseLevel>10.0</BaseLevel>
            <BaseIncline>5.0</BaseIncline>
            <BaseWatt>0.0</BaseWatt>
        </ProgramItem>
        <ProgramItem>
            <SectorType>Time</SectorType>
            <SectorValue>120.0</SectorValue>
            <TargetType>Distance</TargetType>
            <TargetValue1>1500.0</TargetValue1>
            <TargetValue2>0.0</TargetValue2>
            <BaseLevel>1.0</BaseLevel>
            <BaseIncline>10.0</BaseIncline>
            <BaseWatt>0.0</BaseWatt>
        </ProgramItem>
    </Program>
</ExtProgram>

Viel Erfolg beim Erstellen deiner Trainingsprogramme!