Skip to content

MQTT Interface

The data integration is implemented via MQTT. To configure the broker, navigate to Serivces / System / miotysc. The interface is according to the MIOTY ACMQTTI interface defined by Fraunhofer IIS, and is currently on v0.1.1.

Subscription examples

  • Uplink topic for end point 70-b3-d5-67-70-11-00-01:
    mioty/+/70-b3-d5-67-70-11-00-01/uplink
  • All topics for end point 70-b3-d5-67-70-11-00-01:
    mioty/+/70-b3-d5-67-70-11-00-01/#
  • Uplink topic for every end point:
    mioty/+/+/uplink
  • Every topic for every end point:
    mioty/#
  • or just everything:
    #

Topics

End point data

The end point data follows this scheme:

mioty/XX XX XX XX XX XX XX XX/YY YY YY YY YY YY YY YY/uplink or
mioty/XX XX XX XX XX XX XX XX/YY YY YY YY YY YY YY YY/downlink where
XX XX XX XX XX XX XX XX: common root for the Application Center (use + as wildcard), and,
YY YY YY YY YY YY YY YY: Device EUI

The uplink topic provides data and meta information for uplink transmissions:

{
"baseStations": […],    // Receiving base stations
"cnt": 1234,            // Packet counter
data": [1,2,3,4],       // Payload raw data
"format": 0,            // Payload format ID
"typeEui": 1234567890,  // Type EUI for blueprint selection
"components": {…},      // Payload components
"meta": {…}             // Meta information (blueprint)
}

Base stations

The base stations array contains one base station object for every receiving base station:

{
  "bsEui": 9876543210, // Base station EUI
  "rssi": -123.45,     // RSSI in dBm
  "snr": 6.78,         // SNR in dB
  "rxTime": 1234567890 // Unix time of reception in ns
}

Components

The components object is only present if a blueprint is provided for the end point and contains the interpreted payload components:

{
  "temperature": {
    "unit": "°C",   // Temperature unit
    "value": 22.5   // Temperature value
  },
  "humidity": {
    "unit": "%rel", // Humidity unit
    "value": 50     // Humidity value
  }
  // Additional components...
}

Meta

The meta object is only present if a blueprint is provided for the end point and contains device meta information:

{
  "vendor": "Fraunhofer Mioty Demonstrator", // Vendor name
  "name": "Weather"  // Device name
  // Additional metadata...
}

The downlink topic accepts data and meta information for downlink transmissions:

{
  "data": [1,2,3,4],        // Payload raw data
  "format": 0,              // Payload format ID (optional)
  "queId": 0,               // Queuing ID (optional)
  "prio": 0.0,              // Priority (optional)
  "cnt": [0,1,2,3],         // Packet counter for prescheduling (optional)
  "presched": true,         // True to schedule immediately (optional)
  "responseExp": true,      // EP response expected (optional)
  "responsePrio": true,     // EP priority response expected (optional)
  "dlWindReq": true,        // Further EP DL window requested (optional)
  "expOnly": true           // Only send when EP expects response (optional)
}

End point registration

The end point registration follows this scheme:

mioty/XX XX XX XX XX XX XX XX/register or
mioty/XX XX XX XX XX XX XX XX/deregister where
XX XX XX XX XX XX XX XX: common root for the Application Center (use + as wildcard)

Register

The register topic accepts information of an end point to be registered:

{
  "eui": 12345678,       // EUI
  "shAddr": 1234,        // Short address
  "nwkKey": "0001…0e0f", // Network key
  "bidi": true,          // True for bidi End Points (optional)
  "preAttach": true,     // True to preattach End Point (optional)
  "appKey": "0001…0e0f", // Application key (optional)
  "typeEui": 87654321,   // Type EUI (blueprint) (optional)
  "carrOff": 3,          // EP Carrier offset 3 or 5 (optional)
  "meta": {..},         // EP specific meta infos (optional)
  "calibration": {..}   // EP calibration infos (optional)
}

Deregister

The deregister topic accepts information of an end point to be deregistered:

{
  "eui": 12345678 // EUI
}

End point type registration

The end point type registration follows this scheme:

mioty/XX XX XX XX XX XX XX XX/typeRegister or
mioty/XX XX XX XX XX XX XX XX/typeDeregister where
XX XX XX XX XX XX XX XX: common root for the Application Center (use + as wildcard)

Type Register

The type register topic accepts the payload format description (blueprint) for an end point type to be registered:

{
  "eui": 12345678,  // EUI
  "format": "{}"    // Payload format description (blueprint)
}

Type Deregister

The type deregister topic accepts information for an end point type to be deregistered:

{
  "eui": 12345678 // EUI
}