Introduction
LTE devices such as the ioButton LTE send their messages over the cellular network to a Middleware (also called the uplink gateway). The Middleware sits between the device and your application: it receives the uplink, checks and decodes it, then forwards a readable message to the endpoint you choose.
Integration options
You can connect LTE devices in two ways. In both cases your application receives a decoded uplink; the difference is who runs the Middleware, Key Service, and Downlink Service.
Option A - ioThings backend
ioThings runs the Middleware, Key Service, and Downlink Service. Devices send their uplinks to the ioThings Middleware, which validates and decodes them and forwards the decoded message to your backend.
This is the simplest option if you only need to consume events in your own application.
Option B - Self-hosted middleware
You run the Middleware yourself. The Key Service and Downlink Service can optionally be self-hosted as well; otherwise they can still be provided by ioThings.
Device traffic to the Middleware stays in your environment. See Self-hosted middleware for what the service does and where to find setup and integration details.
Data flow
A typical uplink (heartbeat or button press) follows this path:
sequenceDiagram
participant Device
participant Middleware
participant Keys as Key Service
participant App as Your application
participant Downlinks as Downlink Service
Device->>Middleware: Uplink over UDP or HTTP
Middleware->>Keys: Request device key (first message only)
Keys-->>Middleware: Device key
Middleware->>Middleware: Validate and decode
Middleware->>App: Forward decoded uplink
opt Remote configuration
Middleware->>Downlinks: Request pending messages
Downlinks-->>Middleware: Queued configuration
end
Middleware-->>Device: Acknowledgement (and optional configuration)
- The device sends an uplink to the Middleware over UDP or HTTP.
- If the message is secured, the Middleware looks up the device key (only on the first message from that device, then it is cached).
- The Middleware validates, decrypts if needed, and decodes the message.
- The decoded uplink is forwarded to your application.
- If remote configuration is enabled, the Middleware asks the Downlink Service for any queued messages and can send them back to the device together with the acknowledgement.
Downlinks can only be delivered when the device is already sending an uplink. They are not pushed to the device at an arbitrary time.