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
| Parameter | Wert |
|---|---|
mqtt.pager.dexa.gmbh |
|
| Port | 8883 |
| Verschlüsselung | TLS 1.2+ |
| Protokoll | MQTT 3.1.1 |
Authentifizierung
Authentifizierung erfolgt via Client-Zertifikat oder Username/PasswordPassword.
Topic-Schema
p/u//
| Segment | Beschreibung |
|---|---|
p |
Prefix für Pager |
u |
Unique ID Indikator |
<UID> |
14-stellige Seriennummer des Pagers |
<SUFFIX> |
Topic-Typ (siehe unten) |
Topic-Struktur
Alle Topics folgen dem Schema:
p/u//...
p= Pageru= Unique ID<UID>= 14-stellige Seriennummer des Pagers
Topics Übersicht
Alarm
| 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
p/u//r/
Richtung
Payload:Server → Pager
Parameter
| Parameter | Beschreibung | Beispiel |
|---|---|---|
<UID> |
14-stellige Pager-Seriennummer | 24702004551000 |
<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 |
| ``` | | | | |
nach oben