Gateways Overview
A gateway is a device that connects its client devices to OmniCore and performs several tasks on their behalf, such as:
- communicating with OmniCore
- connecting to the internet when the device can't directly connect itself, such as a ZigBee or Bluetooth device
- authenticating to OmniCore when the device can't send its own credentials, or when you want to add a layer of security by using the credentials of both the device and the gateway
- publishing telemetry events, getting configuration data, or setting device state
- storing and processing data
- translating protocols
You can manage gateways in the same way as any other device: they can publish their own telemetry data, report state, and receive configuration data.
OmniCore supports gateway connections and communication over both MQTT and HTTP.
Architecture
The following diagram gives an overview of the device/gateway architecture for use with the MQTT bridge.
Key concepts
To understand gateways, you should be familiar with the following concepts:
- bind/unbind : Create or remove an association between the device and the gateway. Binding enables devices to access OmniCore through the gateway without having to provide their own JSON Web Token (JWT). Binding is optional; see Non-gateway Device Authentication for more details.
- attach/detach : (MQTT only) Enable or disable communication between an authenticated device and OmniCore through the gateway.
Setup
To use gateways with OmniCore:
- Decide how to authenticate the devices to OmniCore through the gateway.
- Create the gateway.
- Configure the gateway and get state.
- Optional: Create devices, if you haven't already.
- Use either the MQTT bridge or HTTP bridge to relay messages and configuration data between the devices and OmniCore.
Pricing
Sent gateway messages are billed as normal device traffic. For details, see the main Pricing documentation.