Direkt zum Hauptinhalt

MQTT Broker Service

Der DEXA Pager Broker unterstützt MQTT als Kommunikationsprotokoll für LX7-Pager.


Verbindung

Broker-Adresse

Parameter Wert
Host mqtt.pager.dexa.gmbh
Port 8883
Verschlüsselung TLS 1.2+
Protokoll MQTT 3.1.1

Authentifizierung

Authentifizierung erfolgt via Client-Zertifikat oder Username/Password.


Topic-Schema

Alle Topics folgen dem Schema:

p/u//

Segment Beschreibung
p Prefix für Pager
u Unique ID Indikator
<UID> 14-stellige Seriennummer des Pagers
<SUFFIX> Topic-Typ

Topics

Übersicht

Topic Richtung QoS Beschreibung
p/u/<UID>/r/<RIC> Server → Pager 1 Alarm senden
p/u/<UID>/ka Pager → Server 1 KeepAlive und Antworten
p/u/<UID>/lwt Broker → Server 1 Last Will Testament

Alarm senden

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

Richtung: Server → Pager

Parameter im Topic

Parameter Beschreibung Beispiel
<UID> 14-stellige Pager-Seriennummer 24702004551000
<RIC> RIC-Adresse (hex) 1379996A

Payload-Felder

Feld Typ Pflicht Beschreibung
msg string ja Alarmtext (max. 256 Zeichen)

Beispiel

Topic: p/u/24702004551000/r/1379996A

Payload:

{"msg":"Feuer in Musterstadt, Hauptstraße 15"}

---
KeepAlive und Antworten

Topic: p/u/<UID>/ka

Richtung: Pager → Server

Alle Pager-Nachrichten werden über dieses Topic gesendet. Die UID wird aus dem Topic extrahiert.

Type-Codes

| Type | Kategorie | Beschreibung        |
|------|-----------|---------------------|
| 10   | Status    | KeepAlive / PowerOn |
| 02   | Antwort   | Empfangen (ACK)     |
| 80   | Antwort   | KOMME               |
| 82   | Antwort   | KOMME SPÄTER        |
| 84   | Antwort   | KOMME NICHT         |
| 08   | Notfall   | NOTRUF              |
| 0A   | Notfall   | MANDOWN             |
| 0C   | Status    | Tearoff             |

Payload-Felder

| Feld | Typ    | Beschreibung            |
|------|--------|-------------------------|
| type | string | Type-Code (Pflichtfeld) |
| bat  | string | Batteriespannung        |
| gps  | string | GPS-Position            |
| firm | string | Firmware-Version        |
| lte  | string | LTE/SIM-Information     |

---
Last Will Testament

Topic: p/u/<UID>/lwt

Richtung: Broker → Server (automatisch)

Wird vom MQTT-Broker gesendet, wenn die Verbindung zum Pager unerwartet abbricht.

Payload-Felder

| Feld | Typ    | Beschreibung |
|------|--------|--------------|
| type | string | Immer lwt    |

Beispiel

Topic:
p/u/24702004551000/lwt

Payload:
{"type":"lwt"}

---
Payloads

KeepAlive

Type: 10

Regelmäßige Statusmeldung des Pagers.

Felder

| Feld | Typ    | Pflicht | Beschreibung     |
|------|--------|---------|------------------|
| type | string | ja      | 10               |
| bat  | string | nein    | Batteriespannung |
| gps  | string | nein    | GPS-Position     |

Beispiel

Topic:
p/u/24702004551000/ka

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

---
PowerOn

Type: 10

Wird beim Einschalten des Pagers gesendet.

Felder

| Feld | Typ    | Pflicht | Beschreibung        |
|------|--------|---------|---------------------|
| type | string | ja      | 10                  |
| bat  | string | nein    | Batteriespannung    |
| firm | string | nein    | Firmware-Version    |
| lte  | string | nein    | LTE/SIM-Information |

Beispiel

Topic:
p/u/24702004551000/ka

Payload:
{"type":"10","bat":"4,18V+","firm":"F2470101P60A0P51EF56","lte":"860873040845702"}

---
Empfangen (ACK)

Type: 02

Bestätigung, dass der Alarm empfangen wurde.

Felder

| Feld | Typ    | Pflicht | Beschreibung |
|------|--------|---------|--------------|
| type | string | ja      | 02           |

Beispiel

Topic:
p/u/24702004551000/ka

Payload:
{"type":"02"}

---
KOMME

Type: 80

Benutzer bestätigt Einsatzteilnahme.

Felder

| Feld | Typ    | Pflicht | Beschreibung |
|------|--------|---------|--------------|
| type | string | ja      | 80           |

Beispiel

Topic:
p/u/24702004551000/ka

Payload:
{"type":"80"}

---
KOMME SPÄTER

Type: 82

Benutzer bestätigt verspätete Einsatzteilnahme.

Felder

| Feld | Typ    | Pflicht | Beschreibung |
|------|--------|---------|--------------|
| type | string | ja      | 82           |

Beispiel

Topic:
p/u/24702004551000/ka

Payload:
{"type":"82"}

---
KOMME NICHT

Type: 84

Benutzer lehnt Einsatzteilnahme ab.

Felder

| Feld | Typ    | Pflicht | Beschreibung |
|------|--------|---------|--------------|
| type | string | ja      | 84           |

Beispiel

Topic:
p/u/24702004551000/ka

Payload:
{"type":"84"}

---
NOTRUF

Type: 08

Manuell ausgelöster Notruf.

Felder

| Feld | Typ    | Pflicht | Beschreibung |
|------|--------|---------|--------------|
| type | string | ja      | 08           |
| gps  | string | ja      | GPS-Position |

Beispiel

Topic:
p/u/24702004551000/ka

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

---
MANDOWN

Type: 0A

Automatisch ausgelöster Alarm bei Sturz oder Bewegungslosigkeit.

Felder

| Feld | Typ    | Pflicht | Beschreibung |
|------|--------|---------|--------------|
| type | string | ja      | 0A           |
| gps  | string | ja      | GPS-Position |

Beispiel

Topic:
p/u/24702004551000/ka

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

---
Tearoff

Type: 0C

Pager wurde aus der Ladestation genommen.

Felder

| Feld | Typ    | Pflicht | Beschreibung |
|------|--------|---------|--------------|
| type | string | ja      | 0C           |

Beispiel

Topic:
p/u/24702004551000/ka

Payload:
{"type":"0C"}

---
Datenformate

GPS-Format

Format: HHMMSS DDN/SMM.MMMM DDDE/WMM.MMMM

Segmente

| Segment | Beschreibung          | Beispiel |
|---------|-----------------------|----------|
| HHMMSS  | UTC-Zeit              | 130946   |
| DD      | Breitengrad (Grad)    | 52       |
| N/S     | Nord/Süd              | N        |
| MM.MMMM | Breitengrad (Minuten) | 13.007   |
| DDD     | Längengrad (Grad)     | 009      |
| E/W     | Ost/West              | E        |
| MM.MMMM | Längengrad (Minuten)  | 33.7736  |

Beispiel

130946 52N13.007 009E33.7736

| Wert        | Bedeutung        |
|-------------|------------------|
| 130946      | 13:09:46 UTC     |
| 52N13.007   | 52° 13.007' Nord |
| 009E33.7736 | 9° 33.7736' Ost  |

---
Batterie-Format

Format: <Spannung>V<Ladeindikator>

Beispiele

| Wert   | Bedeutung                   |
|--------|-----------------------------|
| 4,24V+ | 4,24 Volt, wird geladen     |
| 4,02V  | 4,02 Volt, Batteriebetrieb  |
| 3,85V  | 3,85 Volt, Batterie niedrig |

---
Ablauf Alarmierung

Sequenzdiagramm

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

Schritte

| Schritt | Beschreibung                                |
|---------|---------------------------------------------|
| 1       | Server sendet Alarm an p/u/<UID>/r/<RIC>    |
| 2       | Pager bestätigt Empfang mit Type 02         |
| 3       | Benutzer antwortet (z.B. KOMME) mit Type 80 |

---
Server-Konfiguration

Subscriptions

Der Server abonniert folgende Topics:

| Topic     | Beschreibung                 |
|-----------|------------------------------|
| p/u/+/ka  | KeepAlive und alle Antworten |
| p/u/+/lwt | Last Will Testament          |

Einstellungen

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

---
Referenz

Alle Type-Codes

| Code | Name         | Kategorie | Hat GPS  | Beschreibung               |
|------|--------------|-----------|----------|----------------------------|
| 10   | KeepAlive    | Status    | optional | Regelmäßige Statusmeldung  |
| 02   | ACK          | Antwort   | nein     | Alarm empfangen            |
| 80   | KOMME        | Antwort   | nein     | Einsatzteilnahme bestätigt |
| 82   | KOMME SPÄTER | Antwort   | nein     | Verspätete Teilnahme       |
| 84   | KOMME NICHT  | Antwort   | nein     | Teilnahme abgelehnt        |
| 08   | NOTRUF       | Notfall   | ja       | Manueller Notruf           |
| 0A   | MANDOWN      | Notfall   | ja       | Automatischer Sturzalarm   |
| 0C   | Tearoff      | Status    | nein     | Aus Ladestation genommen   |
| lwt  | LWT          | System    | nein     | Verbindung verloren        |
| ```  |              |           |          |                            |