SICON.OS Public MQTT API 1.0

The SICON.OS Public MQTT API serves live changes for devices and their associated data such as events, production status, maintenance status, new parameter values or reports.

How to connect:

  • For development purposes, you can use the SICON.OS domain provided by your installation (sicon-test.local in the examples below)
  • Once deployed as app, we will provide the environment variables MQTT_HOST and MQTT_PORT to your container
  • For external integrations, use the WebSocket protocol to exchange data securely

Servers

  • sicon-test.local:{port}mqttunsecure

    Test broker

    port
    required
    string

    Secure connection (TLS) is available through port 443 via WebSocket

    Default value:"1883"
  • sicon-test.local:{port}wssecure

    Test broker

    port
    required
    string

    WebSocket may have HTTP overhead and reduced feature set depending on library

    Default value:"443"

Operations

  • SUB device/:ID/postReport

    Reports are device datapoints that are captured after every cycle. X and Y values represent the axis they belong to. X is additional to time, Y are individual values. If the device does not provide cyclic data, reports are triggered every two seconds Reports have to be configured via Sicon Device Description

    ID
    required
    integer
    uid: ID

    The ID of the device. More information about the device can be obtained via the Rest API

    Accepts the following message:

    report
    object
    uid: report

    Examples

  • PUB device/:ID/startObservation

    Command to request sending of postObservation for 10 seconds

    ID
    required
    integer
    uid: ID

    The ID of the device. More information about the device can be obtained via the Rest API

    Accepts the following message:

    empty object

    Examples

  • SUB device/:ID/postObservation

    Observation data represents all live values from the group Observation. Has to be started with startObservation

    ID
    required
    integer
    uid: ID

    The ID of the device. More information about the device can be obtained via the Rest API

    Accepts the following message:

    observation
    object
    uid: observation

    Examples

  • PUB device/:ID/putStatData

    Write parameters to a Index.Subindex tuple with the desired value.

    ID
    required
    integer
    uid: ID

    The ID of the device. More information about the device can be obtained via the Rest API

    Accepts the following message:

    putstatdata
    object
    uid: putstatdata

    Examples

  • SUB device/:ID/wrStatData

    Used as response topic to putStatData The payload encodes success of writing the indices ## Result codes

    • 0: OK - Parameter written
    • 17: Key / index not available
    • 18: Subindex not available
    • 35: Access denied(key not writable or device is locked etc.)
    • 48: Value out of range
    • 49: Value greater than limit
    • 50: Value less than limit
    • 51: Value too long(size of data)
    • 52: Value too short(size of data)
    • 53: Function not available
    • 54: Function temporarily not available
    • 65: Parameter set inconsistent
    • 998: Request timed out
    • 999: General error / unknown cause
    ID
    required
    integer
    uid: ID

    The ID of the device. More information about the device can be obtained via the Rest API

    Accepts the following message:

    wrStatData
    object
    uid: wrstatdata

    Examples

  • SUB device/:ID/PDout

    Processdata sent as input to the machine process

    ID
    required
    integer
    uid: ID

    The ID of the device. More information about the device can be obtained via the Rest API

    Accepts the following message:

    processdata out
    object
    uid: pdinout

    Examples

  • SUB device/:ID/PDin

    Processdata sent as result of the machine process

    ID
    required
    integer
    uid: ID

    The ID of the device. More information about the device can be obtained via the Rest API

    Accepts the following message:

    processdata in
    object
    uid: pdinout

    Examples

  • SUB device/:ID/event

    Events notify of changes in the machine state. e.g. warnings of wrong usage, production status change, configuration requiremenmts, productivity tips

    ID
    required
    integer
    uid: ID

    The ID of the device. More information about the device can be obtained via the Rest API

    Accepts the following message:

    event
    object
    uid: event

    Examples

  • SUB device/:ID/fwUpdateStatus

    Notifies of status of a firmware update

    ID
    required
    integer
    uid: ID

    The ID of the device. More information about the device can be obtained via the Rest API

    Accepts the following message:

    firmware update status
    object
    uid: fwupdate

    Examples

  • SUB device/:ID/regDevice

    complete device data on registration sent

    ID
    required
    integer
    uid: ID

    The ID of the device. More information about the device can be obtained via the Rest API

    Accepts the following message:

    regDevice
    object
    uid: hardware

    Examples

  • SUB device/:ID/disDevice

    complete device data on disconnect sent

    ID
    required
    integer
    uid: ID

    The ID of the device. More information about the device can be obtained via the Rest API

    Accepts the following message:

    disDevice
    object
    uid: hardware

    Examples

  • SUB device/:ID/preregDevice

    external triggered registration e.g. from plug or app

    ID
    required
    integer
    uid: ID

    The ID of the device. More information about the device can be obtained via the Rest API

    Accepts the following message:

    preregDevice
    object
    uid: hardware

    Examples

  • SUB device/:ID/registration_status

    Notifies of status of a device registration The RegStatusID encapsulates the new status of the device ## IDs

    • 0: self preregistered
    • 1: preregistered witout device description
    • 2: device description provisioning in progress
    • 3: parsing device description
    • 4: preregistered with device description
    • 5: registration in progress
    • 6: registered
    • 7: disconnected
    ID
    required
    integer
    uid: ID

    The ID of the device. More information about the device can be obtained via the Rest API

    Accepts the following message:

    registration status
    object
    uid: registrationstatus

    Examples

  • PUB device/:ID/removed

    Device was removed from the network physically or manually via UI

    ID
    required
    integer
    uid: ID

    The ID of the device. More information about the device can be obtained via the Rest API

    Accepts the following message:

    empty object

    Examples

Schemas

  • object
    uid: report
  • object
    uid: observation
  • object
    uid: pdinout
  • object
    uid: putstatdata
  • object
    uid: wrstatdata
  • object
    uid: fwupdate
  • object
    uid: registrationstatus
  • object
    uid: hardware
  • object
    uid: event