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
| Parameter | Werte | Beschreibung |
|---|---|---|
mode | direct | Pflicht für die JSON-Schnittstelle |
useProxFootSearch | 0 | Alternative Haltestellensuche deaktivieren |
Point-Input mit Suffix _ss | — | Haltestelle |
Optionale Parameter
| Parameter | Werte | Beschreibung |
|---|---|---|
itdDateTimeDepArr | dep (Default) | arr | firstService | lastService | Abfahrts- oder Ankunftstafel |
limit | Ganzzahl | Maximale Anzahl an Abfahrten (Default: 40 innerhalb von 2 Tagen) |
useRealtime | 1 | Echtzeit-Ü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=15Antwort (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
- Für Displays mit Live-Daten ist DM-Request vorzuziehen.
- Linien-Filter per
line-Parameter (siehe Line-Input) erhöht die Lesbarkeit auf kleinen Anzeigen. - Fehlerbehandlung: Guide · Error Handling.