WPM Gateway MQTT Topics

Revisionsstand und Historie

Version Änderung Wer Wann
0.1 Erstellung SIC! Software GmbH 23.11.2020

Allgemein

Alle Daten liegen im JSON-Format vor. Ausgenommen davon sind Löschungen mit einer leeren Payload.

Timeseries

Reine Messdaten von Datenhaltern und Sensoren. Enthält den Topic-Baum unterhalb von ts/#.

Datenhalter-Messdaten

Topic: ts/tools/:mac_address

Payload:

Beispiel:

# Topic: ts/tools/00:00:00:38:01:2D
{
  "u": 3.051974,
  "rssi": -59
}

Sensoren-Messdaten

Topic: ts/tools/:tool_mac_address/sensors/:sensor_mac_address

Sensoren ohne Datenhalter erscheinen unter ts/tools/00:00:00:00:00:00/#

Payload:

Beispiel:

# Topic: ts/tools/00:00:00:38:01:2D/sensors/00:00:00:38:01:0B
{
  "t": 18.957628,
  "p": 35.245373,
  "u": 3.1462061,
  "rssi": -68
}

Events

Topic-Baum unterhalb von evt/#.

Datenhalter

Topic-Baum unterhalb von evt/tools/#

Advertising

Regelmäßig von den Datenhaltern publizierte Informationen.

Topic: evt/tools/:mac_address

Payload:

Beispiel:

# Topic: evt/tools/00:00:00:38:00:02
{
  "ts": "2020-11-06T15:02:01.901Z",
  "batt": 3.3035872,
  "rssi": -46,
  "SCnt": 1,
  "SNr": 1002,
  "name": "Anzeigename",
  "LOCK": false,
  "ACTIVE": false,
  "WrnU": false,
  "MEASURE": false,
  "action" : "none"
}

Konfiguration

Bei der Änderung von Datenhalter-Konfigurationen publizierte Einstellungen.

Topic: evt/tools/:mac_adresse/config

Payload:

Beispiel:

# Topic: evt/tools/00:00:00:38:00:01/config
{
  "ts": "2020-11-05T14:25:23.731Z",
  "id": "00:00:00:38:01:2C",
  "serialNumber": 1300,
  "name": "Anzeigename",
  "toolID": -1,
  "deviceName": "",
  "xPos": 0,
  "yPos": 0,
  "measurementInterval": 5,
  "transmissionInterval": 1,
  "transmitStay": 2,
  "advertisementChannel37": true,
  "advertisementChannel38": true,
  "advertisementChannel39": true,
  "operatingHours": 0,
  "sensorCount": 0,
  "locked": false,
  "measuring": false,
  "updatedAt": "2020-10-10",
  "updatedBy": "1#user1@example"
}

Konfigurierte Sensoren

In der Datenhalter-Konfiguration hinterlegte Liste von zugewiesenen Sensoren mit Ihren jeweiligen Konfigurationen. Wird publiziert beim Zuweisen oder Zurücksetzen von Sensoren.

Topic: evt/tools/:mac_address/configured_sensors

Payload:

Beispiel:

# Topic: evt/tools/00:00:00:38:00:01/configured_sensors
[ 
  {
    "serialNumber": 1005,
    "sensorID": 1,
    "name" : "Anzeigename",
    "xPos": 0,
    "yPos": 0,
    "pressureWarning": 150,
    "pressureAlert": 25,
    "temperatureWarning": 50
    "updatedAt": "2020-10-10",
    "updatedBy": "1#user@example",
  } 
]

Werkzeugbilder

Pro Datenhalter kann jeweils ein Werkzeugbild für die Ober- und Unterseite hochgeladen werden.

Topic: evt/tools/:mac_address/images/:position (Positionen: [top, bottom])

Payload:

Beispiel:

# Topic: evt/tools/00:00:00:38:00:01/images/top
{
  "image" : "base64"
}

Werkzeugbild-Koordinaten

Enthält die pro Gerät konfigurierten Koordinaten auf den Werkzeugbildern.

Topic: evt/tools/:mac_address/coordinates

Payload:

Beispiel:

# Topic: evt/tools/00:00:00:38:00:02/coordinates
{
  "00:00:00:38:00:03": {
    "x": 57.90355,
    "y": 49.12954,
    "position": "top"
  },
  "00:00:00:38:00:04": {
    "x": 27.12345,
    "y": 33.12924,
    "position": "bottom"
  }
}

Sensoren

Topic-Baum unterhalb von evt/sensors/#

Advertising

Regemäßig von Sensoren publizierte Informationen, inkl. aktueller Messdaten.

Topic (Freie Sensoren): evt/sensors/:mac_address

Topic (Zugewiesene Sensoren): evt/tools/:tool_mac_address/sensors/:sensor_mac_address

Payload:

Beispiel:

# Topic: evt/tools/00:00:00:38:00:9E/sensors/00:00:00:38:01:10
{
  "ts": "2020-11-06T15:02:01.936Z",
  "temp": 18.941765,
  "press": 39.868786,
  "batt": 2.9628665,
  "rssi": -92,
  "SNr": 1272,
  "SId": 114,
  "ts_rtc": "20-11-06_15:01:31",
  "LOCK": false,
  "ACTIVE": false,
  "MEASURE": false,
  "AlmT": false,
  "AlmP": false,
  "WrnU": true,
  "WrnT": false,
  "WrnP": true
}

Konfiguration

Bei der Änderung von Sensor-Konfigurationen publizierte Einstellungen.

Topic (Freie Sensoren): evt/sensors/:mac_address/config

Topic (Zugewiesene Sensoren): evt/tools/:tool_mac_address/sensors/:sensor_mac_address/config

Payload:

Beispiel:

# Topic: evt/tools/00:00:00:38:00:0B/sensors/00:00:00:38:00:18/config
{
  "ts": "2020-11-05T16:25:44.097Z",
  "toolID": "00:00:00:38:00:0B",
  "serialNumber": 1024,
  "sensorID": 13,
  "name": "Anzeigename",
  "xPos": 0,
  "yPos": 0,
  "pressureWarning": 150,
  "pressureAlert": 25,
  "temperatureWarning": 50,
  "temperatureAlert": 80,
  "measurementInterval": 10,
  "transmissionInterval": 10,
  "transmitStay": 0,
  "advertisementChannel37": true,
  "advertisementChannel38": true,
  "advertisementChannel39": true,
  "operatingHours": 0,
  "operatingHoursOnline": 0,
  "locked": false,
  "measuring": false
  "updatedAt": "2020-10-10",
  "updatedBy": "1#user1@example"
}

Pressen-Modus

Enthält Informationen zum aktuellen Pressen-Modus, sofern dieser aktiv ist.

Topic: evt/press_mode

Payload:

Beispiel:

# Topic: evt/press_mode
{
  "tool": "00:00:00:38:00:02",
  "initiatedVia": "webui",
  "initiatedBy": 1
}

GPIO Input Ports

Spiegelt die Eingänge (GPIO-Ports) des Gateways.

Topic: evt/gpio/in/:port

Ports:

Payload:

Beispiel:

# Topic: evt/gpio/in/0
{
  "value": false
}

Lizenz

Enthält Informationen zur im Gateway hinterlegten Lizenz. Wird publiziert, wenn diese geändert wird.

Topic: evt/license

Payload:

Eine gültige Lizenz liegt vor, wenn ein gültig signierter Lizenzschlüssel eingetragen ist, dessen lizenzierter Gateway-Identifier mit dem internen Identifier des Gerätes übereinstimmt. Außerdem gilt eine Lizenz nur innerhalb des angegebenen Gültigkeitszeitraumes als valide.

Beispiel:

# Topic: evt/license
{
  "currentLicense" : {
    "key" : "Signierter Schlüssel",
    "validFrom" : null,
    "validTo" : "2022-07-02T00:00:00Z",
    "deviceIdentifier" : "device-identifier"
  },
  "deviceIdentifier" : "device-identifier",
  "valid" : true
}

Gateway-Update

Gibt an, ob derzeit ein Update der WPM-Software durchgeführt wird.

Topic: evt/gateway_update

Payload:

Beispiel:

# Topic: evt/gateway_update
{
  "running": true
}