MQTT Broker Service
Der DEXA Pager Broker unterstützt MQTT als Kommunikationsprotokoll für LX7-Pager.
Verbindung
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
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 |
Topic: Alarm senden
Schema
Topic: p/u/<UID>/r/<RIC>
p/u//r/
Richtung
Server → Pager
Parameter im Topic
| Parameter | Beschreibung | Beispiel |
|---|---|---|
<UID> |
14-stellige Pager-Seriennummer | 24702004551000 |
<RIC> |
RIC-Adresse (hex) | 1379996A |
PayloadPayload-Felder
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
|
string | ja | Alarmtext (max. 256 Zeichen) |
Beispiel
Topic: p/u/24702004551000/r/1379996A
Payload:
{"msg":"Feuer in Musterstadt, Hauptstraße 15"}
---
Topic: KeepAlive und Antworten
SchemaTopic: p/u/<UID>/ka
RichtungRichtung: Pager → Server
Parameter
| Parameter | Beschreibung | Beispiel |
|-----------|--------------------------------|----------------|
| <UID> | 14-stelligeAlle Pager-SeriennummerNachrichten |werden 24702004551000ü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
(TypeType: 10)10
Regelmäßige Statusmeldung des Pagers.
{Felder
"type":| "10",Feld "bat":| "<Spannung>",Typ "gps":| "<Pflicht | Beschreibung |
|------|--------|---------|------------------|
| type | string | ja | 10 |
| bat | string | nein | Batteriespannung |
| gps | string | nein | GPS-String>"Position }|
Beispiel:Beispiel
Topic:
p/u/24702004551000/ka
Payload:
{"type":"10","bat":"4,24V+","gps":"130946 52N13.007 009E33.7736"}
---
Payload: PowerOn
(TypeType: 10)10
Wird beim Einschalten des Pagers gesendet.
{Felder
"type":| "10",Feld "bat":| "<Spannung>",Typ "firm":| "<Firmware>",Pflicht "lte":| "<LTE-Info>"Beschreibung }|
Beispiel:|------|--------|---------|---------------------|
| 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"}
---
Payload: Empfangen /(ACK)
ACKType: (Type 02)02
Bestätigung, dass der Alarm empfangen wurde.
{Felder
"type":| "02"Feld }| Beispiel:Typ | Pflicht | Beschreibung |
|------|--------|---------|--------------|
| type | string | ja | 02 |
Beispiel
Topic:
p/u/24702004551000/ka
Payload:
{"type":"02"}
---
Payload: KOMME
(TypeType: 80)80
Benutzer bestätigt Einsatzteilnahme.
{Felder
"type":| "80"Feld }| Beispiel:Typ | Pflicht | Beschreibung |
|------|--------|---------|--------------|
| type | string | ja | 80 |
Beispiel
Topic:
p/u/24702004551000/ka
Payload:
{"type":"80"}
---
Payload: KOMME SPÄTER
(TypeType: 82)82
Benutzer bestätigt verspätete Einsatzteilnahme.
{Felder
"type":| "82"Feld }| Beispiel:Typ | Pflicht | Beschreibung |
|------|--------|---------|--------------|
| type | string | ja | 82 |
Beispiel
Topic:
p/u/24702004551000/ka
Payload:
{"type":"82"}
---
Payload: KOMME NICHT
(TypeType: 84)84
Benutzer lehnt Einsatzteilnahme ab.
{Felder
"type":| "84"Feld }| Beispiel:Typ | Pflicht | Beschreibung |
|------|--------|---------|--------------|
| type | string | ja | 84 |
Beispiel
Topic:
p/u/24702004551000/ka
Payload:
{"type":"84"}
---
Payload: NOTRUF
(TypeType: 08)08
Manuell ausgelöster Notruf.
{Felder
"type":| "08",Feld "gps":| "<Typ | Pflicht | Beschreibung |
|------|--------|---------|--------------|
| type | string | ja | 08 |
| gps | string | ja | GPS-String>"Position }|
Beispiel:Beispiel
Topic:
p/u/24702004551000/ka
Payload:
{"type":"08","gps":"130946 52N13.007 009E33.7736"}
---
Payload: MANDOWN
(TypeType: 0A)0A
Automatisch ausgelöster Alarm bei Sturz oder Bewegungslosigkeit.
{Felder
"type":| "0A",Feld "gps":| "<Typ | Pflicht | Beschreibung |
|------|--------|---------|--------------|
| type | string | ja | 0A |
| gps | string | ja | GPS-String>"Position }|
Beispiel:Beispiel
Topic:
p/u/24702004551000/ka
Payload:
{"type":"0A","gps":"130946 52N13.007 009E33.7736"}
---
Payload: Tearoff
(TypeType: 0C)0C
Pager wurde aus der Ladestation genommen.
{Felder
"type":| "0C"Feld }| Beispiel:Typ | Pflicht | Beschreibung |
|------|--------|---------|--------------|
| type | string | ja | 0C |
Beispiel
Topic:
p/u/24702004551000/ka
Payload:
{"type":"0C"}
---
Topic: Last Will Testament
Schema
p/u/<UID>/lwt
Richtung
Broker → Server (automatisch)
Beschreibung
Wird vom MQTT-Broker gesendet, wenn die Verbindung zum Pager unerwartet abbricht.
Payload
{
"type": "lwt"
}
Beispiel:
Topic: p/u/24702004551000/lwt
Payload: {"type":"lwt"}
---
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: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
| BeispielWert | 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 |
---
ServerServer-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 Topics
| Topic | Richtung | Payload |
|-------------------|----------|----------------------------------------------------|
| p/u/<UID>/r/<RIC> | OUT | {"msg":"..."} |
| p/u/<UID>/ka | IN | {"type":"10","bat":"...","gps":"..."} |
| p/u/<UID>/ka | IN | {"type":"10","bat":"...","firm":"...","lte":"..."} |
| p/u/<UID>/ka | IN | {"type":"02"} |
| p/u/<UID>/ka | IN | {"type":"80"} |
| p/u/<UID>/ka | IN | {"type":"82"} |
| p/u/<UID>/ka | IN | {"type":"84"} |
| p/u/<UID>/ka | IN | {"type":"08","gps":"..."} |
| p/u/<UID>/ka | IN | {"type":"0A","gps":"..."} |
| p/u/<UID>/ka | IN | {"type":"0C"} |
| p/u/<UID>/lwt | IN | {"type":"lwt"} |
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 |
| ``` | | | | |