Skip to content

DMTTP-Request (Soll-Abfahrtsmonitor)

Liefert geplante (Soll) Abfahrten/Ankünfte an einer Haltestelle. Im Gegensatz zu DM liegt der Fokus auf dem Fahrplan (ohne/mit separater Echtzeit).

Endpoint

  • Pfad: XML_DMTTP_REQUEST
  • Methode: GET

Parameter (Auszug)

ParameterTypBeschreibung
stopIdstringHaltestellen-ID
timestringZeit HHMM
datestringDatum YYYYMMDD
limitnumberMaximale Anzahl Abfahrten
includeRealtime0/1Echtzeit separat anreichern

Beispiel-Request

GET /XML_DMTTP_REQUEST?stopId=de:05513:1001&date=20250125&time=0815&limit=20

Antwort (Beispiel)

json
{
  "timetable": [
    { "line": "196", "dir": "Kray", "sched": "08:22", "platform": "1" }
  ]
}

JavaScript-Beispiele

js
async function getTimetable(stopId, { date, time, limit = 20 } = {}) {
  const base = 'https://server:port/virtuellesVerzeichnis/XML_DMTTP_REQUEST'
  const usp = new URLSearchParams({ stopId, limit: String(limit) })
  if (date) usp.set('date', date)
  if (time) usp.set('time', time)
  const res = await fetch(`${base}?${usp}`)
  if (!res.ok) throw new Error('HTTP ' + res.status)
  return res.json()
}
ts
export async function mapToBoardRows(stopId: string) {
  const data = await getTimetable(stopId, { limit: 10 })
  return data.timetable.map(r => ({
    label: `${r.line} → ${r.dir}`,
    time: r.sched,
    platform: r.platform ?? '-'
  }))
}

title: DMTTP-Request (Soll-Abfahrtsmonitor) outline: deep

DMTTP-Request (Soll-Abfahrtsmonitor)

Liefert geplante (Soll-) Abfahrten/Ankünfte an einer Haltestelle ohne Echtzeitüberlagerung. Nützlich für Aushänge oder Vorab-Planung.

Endpoint

  • Pfad: XML_DMTTP_REQUEST
  • Methode: GET

Parameter (Auszug)

ParameterTypBeschreibung
stopIdstringHaltestellen-ID
datestringDatum YYYYMMDD
timestringZeit HHMM
limitnumberMaximale Anzahl Abfahrten
linesstringOptional: Filter auf Linien, z. B. 196,U11
dirstringOptional: Richtung/Endhaltestelle als Filter

Beispiel-Request

GET /XML_DMTTP_REQUEST?stopId=de:05513:1001&date=20250125&time=0815&limit=15

Antwort (vereinfachtes Beispiel)

json
{
  "departures": [
    { "line": "196", "dir": "Kray", "time": "08:22", "plannedPlatform": "1" }
  ],
  "realtime": false
}

JavaScript-Beispiele

js
async function getPlannedDepartures(stopId, { date, time, limit = 10, lines, dir } = {}) {
  const base = 'https://server:port/virtuellesVerzeichnis/XML_DMTTP_REQUEST'
  const usp = new URLSearchParams({ stopId, limit: String(limit) })
  if (date) usp.set('date', date)
  if (time) usp.set('time', time)
  if (lines) usp.set('lines', lines)
  if (dir) usp.set('dir', dir)
  const res = await fetch(`${base}?${usp}`)
  if (!res.ok) throw new Error('HTTP ' + res.status)
  return res.json()
}
ts
import { getDeparturesCached } from './DM-Request-helper' // Beispiel: Ihre DM-Hilfsfunktion

export async function comparePlannedVsRealtime(stopId: string) {
  const [planned, realtime] = await Promise.all([
    getPlannedDepartures(stopId, {}),
    getDeparturesCached(stopId)
  ])
  // Abgleich pro Linie/Fahrt anhand Zeit/Stopp
  return { planned, realtime }
}

Hinweise

  • Verwenden Sie DMTTP für „ruhige“ Timetable-Ansichten; für Displays mit Live-Daten ist DM vorzuziehen.
  • Ein Filter auf lines kann die Übersichtlichkeit stark verbessern.