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.


VerbindungsdatenVerbindung

Broker-Adresse

(TLS)
Parameter Wert
BrokerHost mqtt.pager.dexa.gmbh
Port 8883
VerschlüsselungTLS 1.2+
Protokoll MQTT 3.1.1

Authentifizierung

Authentifizierung erfolgt via Client-Zertifikat oder Username/PasswordPassword.


Topic-Schema

p/u//

SegmentBeschreibung
pPrefix für Pager
uUnique ID Indikator
<UID>14-stellige Seriennummer des Pagers
<SUFFIX>Topic-Typ (siehe unten)

Topic-Struktur

Alle Topics folgen dem Schema:

p/u//...

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

Topics Übersicht

Alarmsenden(ServerPager)

Topic:

Topic Richtung QoS Beschreibung
p/u/<UID>/r/<RIC>Server → Pager1Alarm senden
p/u/<UID>/kaPager → Server1KeepAlive und Antworten
p/u/<UID>/lwtBroker → Server1Last Will Testament

Topic: Alarm senden

Schema

p/u//r/

Richtung

Payload:Server → Pager

Parameter

ParameterBeschreibungBeispiel
<UID>14-stellige Pager-Seriennummer24702004551000
<RIC>RIC-Adresse (hex)1379996A

Payload

{
  "msg": "<Alarmtext>"
}

Beispiel:| 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"}

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

---
Topic: KeepAlive und Antworten

(Pager → Server)

Topic:Schema

p/u/<UID>/ka

AlleRichtung

Pager-NachrichtenPager (KeepAlive, Alarm-Antworten,Server

Notrufe) werden über dieses Topic gesendet. Die UID wird aus dem Topic extrahiert,
nicht aus dem Payload.

Type-CodesParameter

| TypeParameter | Beschreibung                   | Zusätzliche FelderBeispiel       |
|-----------|--------------------------------|----------------|
| <UID>     | 14-stellige Pager-Seriennummer | 24702004551000 |

Type-Codes

| Type | Kategorie | Beschreibung        |
|------|-----------|---------------------|
| 10   | KeepAliveStatus    | bat,KeepAlive gps/ PowerOn |
| 02   | Antwort   | Empfangen (ACK)     |
-| 80   | | 80Antwort   | KOMME               |
-| 82   | | 82Antwort   | KOMME SPÄTER        |
-| 84   | | 84Antwort   | KOMME NICHT         |
-                  |
| 08   | NOTRUFNotfall   | gpsNOTRUF              |
| 0A   | MANDOWNNotfall   | gpsMANDOWN             |
| 0C   | TearoffStatus    | -Tearoff             |

Payload-Felder

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

Beispiele---
KeepAlive:Payload: KeepAlive (Type 10)

Regelmäßige Statusmeldung des Pagers.

{
  "type": "10",
  "bat": "<Spannung>",
  "gps": "<GPS-String>"
}

Beispiel:
Topic:   p/u/24702004551000/ka
Payload: {"type":"10","bat":"4,24V+","gps":"130946 52N13.007 009E33.7736"}

---
Payload: PowerOn (mitType Firmware-Info)10)

Wird beim Einschalten des Pagers gesendet.

{
  "type": "10",
  "bat": "<Spannung>",
  "firm": "<Firmware>",
  "lte": "<LTE-Info>"
}

Beispiel:
Topic:   p/u/24702004551000/ka
Payload: {"type":"10","bat":"4,18V+","firm":"F2470101P60A0P51EF56","lte":"860873040845702"}

---
Payload: Empfangen / ACK (Type 02)

Bestätigung, dass der Alarm empfangen (ACK)wurde.

{
  "type": "02"
}

Beispiel:
Topic:   p/u/24702004551000/ka
Payload: {"type":"02"}

Rückmeldung---
KOMME:Payload: KOMME (Type 80)

Benutzer bestätigt Einsatzteilnahme.

{
  "type": "80"
}

Beispiel:
Topic:   p/u/24702004551000/ka
Payload: {"type":"80"}

NOTRUF:---
Payload: KOMME SPÄTER (Type 82)

Benutzer bestätigt verspätete Einsatzteilnahme.

{
  "type": "82"
}

Beispiel:
Topic:   p/u/24702004551000/ka
Payload: {"type":"82"}

---
Payload: KOMME NICHT (Type 84)

Benutzer lehnt Einsatzteilnahme ab.

{
  "type": "84"
}

Beispiel:
Topic:   p/u/24702004551000/ka
Payload: {"type":"84"}

---
Payload: NOTRUF (Type 08)

Manuell ausgelöster Notruf.

{
  "type": "08",
  "gps": "<GPS-String>"
}

Beispiel:
Topic:   p/u/24702004551000/ka
Payload: {"type":"08","gps":"130946 52N13.007 009E33.7736"}

MANDOWN:---
Payload: MANDOWN (Type 0A)

Automatisch ausgelöster Alarm bei Sturz oder Bewegungslosigkeit.

{
  "type": "0A",
  "gps": "<GPS-String>"
}

Beispiel:
Topic:   p/u/24702004551000/ka
Payload: {"type":"0A","gps":"130946 52N13.007 009E33.7736"}

Hinweis:---
Alarm-AntwortenPayload: Tearoff (02,Type 80,0C)

82,Pager 84)wurde enthaltenaus keinender RIC.Ladestation Diegenommen.

Antwort{
  bezieht"type": sich"0C"
immer}

aufBeispiel:
denTopic:   zuletztp/u/24702004551000/ka
empfangenenPayload: Alarm des 
Pagers.{"type":"0C"}

---
Topic: Last Will Testament

(Broker → Server)

Topic:Schema

p/u/<UID>/lwt

Payload:Richtung

{"type":"lwt"}Broker Diese NachrichtServer wird(automatisch)

Beschreibung

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

(z.B.Payload

Funkloch,{
  Akku"type": leer)."lwt"
Der}

ServerBeispiel:
markiertTopic:   denp/u/24702004551000/lwt
PagerPayload: daraufhin als offline.{"type":"lwt"}

---
Datenformate

GPS-Format

Das GPS-Feld verwendet folgendes Format:

HHMMSS DDN/SMM.MMMM DDDE/WMM.MMMM

| TeilSegment | Beschreibung          | Beispiel |
|---------|--------------------------|-----------------------|
| HHMMSS  | UTC-Zeit              | 130946   = 13:09:46 UTC |
| DDN/SDD      | Breitengrad (Grad)    +| 52       |
| N/S     | 52NNord/Süd              =| 52° NordN        |
| MM.MMMM | Breitengrad (Minuten) | 13.007   |
| DDDE/WDDD     | Längengrad (Grad)     +| 009      |
| E/W     | 009EOst/West              =| 9° OstE        |
| MM.MMMM | Längengrad (Minuten)  | 33.7736  |

Beispiel:
130946 52N13.007 009E33.7736

| Wert        | Bedeutung        |
|-------------|------------------|
Zeit:| 130946      | 13:09:46 UTC     -|
Position:| 52N13.007   | 52° 13.007' N,Nord |
| 009E33.7736 | 9° 33.7736' EOst  |

Batterie-Format

<Spannung>V<Ladeindikator>

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

---
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-EinstellungenSchritt | Topic             | QoS | BegründungBeschreibung                                |
|-------------------|-----|-----------------------------------------------|
| 1       | Server sendet Alarm an p/u/<UID>/r/<RIC>    |
1| 2       | AlarmePager müssenbestätigt zuverlässigEmpfang zugestelltmit werdenType 02         |
| p/u/<UID>/ka3       | 1Benutzer |antwortet Antworten(z.B. undKOMME) KeepAlivemit zuverlässigType empfangen |
| p/u/<UID>/lwt     | 1   | Offline-Status zuverlässig erkennen80 |

---
EinstellungenServer imSubscriptions

Pager-BrokerDer ImServer Bereich Einstellungen könnenabonniert folgende MQTT-OptionenTopics:

konfiguriertp/u/+/ka
werden:p/u/+/lwt

---
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                                            |
|-------------------|----------|----------------------------------------------------|
| Pager automatisch registrierenp/u/<UID>/r/<RIC> | NeueOUT      MQTT-Pager| werden beim ersten Kontakt automatisch im System angelegt{"msg":"..."}                                      |
| RICs automatisch abonnierenp/u/<UID>/ka      | RICs werden automatisch aus den MQTT-Topics erkannt und dem Pager zugeordnetIN       | Diese{"type":"10","bat":"...","gps":"..."}              Einstellungen|
gelten| nurp/u/<UID>/ka      für| MQTT-Pager,IN       nicht| für{"type":"10","bat":"...","firm":"...","lte":"..."} TCP-Verbindungen.|
| 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 | 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        |
| ```  |              |           |          |                            |