ESP32 devices
Many IoT devices are or can be based on an ESP32 microcontroller.
A typical setup for integrating such a device in the OpenRemote ecosystem includes 3 components:
- a firmware running on the ESP32 MCU in the device
- a mobile app to configure the device and connect to the backend
- the OpenRemote backend
We offer software elements to support the development of all 3 components.
A device is represented in the OpenRemote backend by an asset of a specific type. The device communicates with OpenRemote over MQTTS, authenticated with a dedicated service user.
In this typical use case, the device uses Wi-Fi for its internet connectivity.
To integrate a new device into the system, it needs to be provisioned.
This can either be done automatically, see User Guide Auto provisioning
or through a manual process performed by the end-user.
For the latter case, the workflow is as follows
Communication between the Mobile Application and the Device is based on Espressif Unified Provisioning.
This mechanism is used to discover the device, then establish a secure communication channel over BLE.
Communication on this channel uses Protocol Buffer payloads, in addition to the messages defined by Espressif, OpenRemote uses messages defined in the following ProtoBuf spec: ORConfigChannelProtocol
OpenRemote includes the ESP Provision provider to support the implementation of the mobile application side.
On the backend, the project must implement a single /rest/device endpoint, see Provision Device API for more details.