Skip to content

DMTTP-Request (Soll-Abfahrtsmonitor)

Liefert den vollen Fahrplan-Abfahrtsmonitor an einer Haltestelle — also Soll-Zeiten ohne Echtzeit­überlagerung. Parameter sind identisch zu DM-Request, nur der Point-Input-Suffix lautet _ss (statt _dm).

Endpoint

  • Pfad: XML_DMTTP_REQUEST
  • Methode: GET

Obligatorische Parameter

ParameterWerteBeschreibung
modedirectPflicht für die JSON-Schnittstelle
useProxFootSearch0Alternative Haltestellensuche deaktivieren
Point-Input mit Suffix _ssHaltestelle

Optionale Parameter

ParameterWerteBeschreibung
itdDateTimeDepArrdep (Default) | arr | firstService | lastServiceAbfahrts- oder Ankunftstafel
limitGanzzahlMaximale Anzahl an Abfahrten (Default: 40 innerhalb von 2 Tagen)
useRealtime1Echtzeit-Überlagerung aktivieren (bei DMTTP typischerweise aus)
Line-Input (line, mehrfach)Abfahrten nach konkreten Linien filtern

Datum & Uhrzeit (itdDate*, itdTime*) sind optional.

Beispiel-Request

GET /XML_DMTTP_REQUEST
    ?outputFormat=JSON
    &mode=direct
    &useProxFootSearch=0
    &type_ss=any
    &name_ss=de:05911:5494
    &itdDate=20250125
    &itdTime=0815
    &limit=15

Antwort (Beispiel)

json
{
  "departureList": [
    {
      "servingLine": { "name": "196", "direction": "Essen Kray", "mot": 5 },
      "platform": "1",
      "departureTimePlanned": "2025-01-25T08:22:00Z"
    }
  ]
}

JavaScript-Beispiele

js
async function getPlannedDepartures(stopId, { date, time, limit = 15, lines = [] } = {}) {
  const base = 'https://server:port/virtuellesVerzeichnis/XML_DMTTP_REQUEST'
  const usp = new URLSearchParams({
    outputFormat: 'JSON',
    mode: 'direct',
    useProxFootSearch: '0',
    type_ss: 'any',
    name_ss: stopId,
    limit: String(limit)
  })
  if (date) usp.set('itdDate', date)
  if (time) usp.set('itdTime', time)
  for (const l of lines) usp.append('line', l)
  const res = await fetch(`${base}?${usp}`)
  if (!res.ok) throw new Error('HTTP ' + res.status)
  return res.json()
}
ts
import { getDeparturesCached } from './dm-helper'

export async function comparePlannedVsRealtime(stopId: string) {
  const [planned, realtime] = await Promise.all([
    getPlannedDepartures(stopId, {}),
    getDeparturesCached(stopId)
  ])
  return { planned, realtime }
}

Hinweise