Direkt zum Hauptinhalt

MQTT Broker Service

MQTT Broker Service

Der DEXA Pager Broker unterstützt MQTT als Kommunikationsprotokoll für LX7-Pager. MQTT bietet gegenüber TCP eine zuverlässigere Verbindung mit automatischer Wiederverbindung und ist besonders für mobile Geräte mit wechselnder Netzwerkverbindung geeignet.

Verbindungsdaten

Parameter Wert
Broker mqtt.pager.dexa.gmbh
Port 8883 (TLS)
Protokoll MQTT 3.1.1
Authentifizierung Client-Zertifikat oder Username/Password

Topic-Struktur

Alle Topics folgen dem Schema:

p/u//...

  • p = Pager
  • u = Unique ID
  • <UID> = 14-stellige Seriennummer des Pagers

Topics

Alarm senden (Server → Pager)

Topic: p/u/<UID>/r/<RIC>

Payload:

{"msg":"<Alarmtext>"}

Beispiel:
Topic:   p/u/24702004551000/r/1379996A
Payload: {"msg":"Feuer in Musterstadt, Hauptstraße 15"}

Der RIC wird aus dem Topic extrahiert. Der Pager empfängt die Nachricht nur, wenn der RIC in seiner Konfiguration hinterlegt ist.

---
KeepAlive und Antworten (Pager → Server)

Topic: p/u/<UID>/ka

Alle Pager-Nachrichten (KeepAlive, Alarm-Antworten, Notrufe) werden über dieses Topic gesendet. Die UID wird aus dem Topic extrahiert,
nicht aus dem Payload.

Type-Codes

| Type | Beschreibung    | Zusätzliche Felder |
|------|-----------------|--------------------|
| 10   | KeepAlive       | bat, gps           |
| 02   | Empfangen (ACK) | -                  |
| 80   | KOMME           | -                  |
| 82   | KOMME SPÄTER    | -                  |
| 84   | KOMME NICHT     | -                  |
| 08   | NOTRUF          | gps                |
| 0A   | MANDOWN         | gps                |
| 0C   | Tearoff         | -                  |

Payload-Felder

| Feld | Typ    | Beschreibung                                      |
|------|--------|---------------------------------------------------|
| type | string | Type-Code (siehe Tabelle)                         |
| bat  | string | Batteriespannung, z.B. "4,24V+"                   |
| gps  | string | GPS-Position, z.B. "130946 52N13.007 009E33.7736" |
| firm | string | Firmware-Version (nur bei PowerOn)                |
| lte  | string | LTE/SIM-Info (nur bei PowerOn)                    |

Beispiele

KeepAlive:
{"type":"10","bat":"4,24V+","gps":"130946 52N13.007 009E33.7736"}

PowerOn (mit Firmware-Info):
{"type":"10","bat":"4,18V+","firm":"F2470101P60A0P51EF56","lte":"860873040845702"}

Alarm empfangen (ACK):
{"type":"02"}

Rückmeldung KOMME:
{"type":"80"}

NOTRUF:
{"type":"08","gps":"130946 52N13.007 009E33.7736"}

MANDOWN:
{"type":"0A","gps":"130946 52N13.007 009E33.7736"}

Hinweis: Alarm-Antworten (02, 80, 82, 84) enthalten keinen RIC. Die Antwort bezieht sich immer auf den zuletzt empfangenen Alarm des 
Pagers.

---
Last Will Testament (Broker → Server)

Topic: p/u/<UID>/lwt

Payload:
{"type":"lwt"}

Diese Nachricht wird vom MQTT-Broker automatisch gesendet, wenn die Verbindung zum Pager unerwartet abbricht (z.B. Funkloch, Akku leer).
Der Server markiert den Pager daraufhin als offline.

---
GPS-Format

Das GPS-Feld verwendet folgendes Format:

HHMMSS DDN/SMM.MMMM DDDE/WMM.MMMM

| Teil    | Beschreibung             | Beispiel              |
|---------|--------------------------|-----------------------|
| HHMMSS  | UTC-Zeit                 | 130946 = 13:09:46 UTC |
| DDN/S   | Breitengrad (Grad) + N/S | 52N = 52° Nord        |
| MM.MMMM | Breitengrad (Minuten)    | 13.007                |
| DDDE/W  | Längengrad (Grad) + E/W  | 009E = 9° Ost         |
| MM.MMMM | Längengrad (Minuten)     | 33.7736               |

Beispiel: 130946 52N13.007 009E33.7736
- Zeit: 13:09:46 UTC
- Position: 52° 13.007' N, 9° 33.7736' E

---
Ablauf einer Alarmierung

┌─────────┐                              ┌─────────┐
│ Server  │                              │  Pager  │
└────┬────┘                              └────┬────┘
     │                                        │
     │  p/u/24702004551000/r/1379996A         │
     │  {"msg":"Feuer in Musterstadt"}        │
     │ ─────────────────────────────────────► │
     │                                        │
     │  p/u/24702004551000/ka                 │
     │  {"type":"02"}                         │
     │ ◄───────────────────────────────────── │
     │                                        │
     │  p/u/24702004551000/ka                 │
     │  {"type":"80"}                         │
     │ ◄───────────────────────────────────── │
     │                                        │

1. Server sendet Alarm an Topic p/u/<UID>/r/<RIC>
2. Pager bestätigt Empfang mit {"type":"02"} auf /ka
3. Benutzer antwortet (z.B. KOMME) mit {"type":"80"} auf /ka

---
QoS-Einstellungen

| Topic             | QoS | Begründung                                    |
|-------------------|-----|-----------------------------------------------|
| p/u/<UID>/r/<RIC> | 1   | Alarme müssen zuverlässig zugestellt werden   |
| p/u/<UID>/ka      | 1   | Antworten und KeepAlive zuverlässig empfangen |
| p/u/<UID>/lwt     | 1   | Offline-Status zuverlässig erkennen           |

---
Einstellungen im Pager-Broker

Im Bereich Einstellungen können folgende MQTT-Optionen konfiguriert werden:

| Einstellung                    | Beschreibung                                                                 |
|--------------------------------|------------------------------------------------------------------------------|
| Pager automatisch registrieren | Neue MQTT-Pager werden beim ersten Kontakt automatisch im System angelegt    |
| RICs automatisch abonnieren    | RICs werden automatisch aus den MQTT-Topics erkannt und dem Pager zugeordnet |

Diese Einstellungen gelten nur für MQTT-Pager, nicht für TCP-Verbindungen.