The Hobson MQTT plugin (when installed) allows external devices (such as sensors) to connect to Hobson via MQTT for sending and/or receiving of data.
When the plugin is installed, Hobson creates a local MQTT server that devices can connect to anonymously. The anonymous connection is used by a device to obtain a device passport from Hobson. This passport allows the device to re-connect securely to Hobson's MQTT server and participate as a normal device within the Hobson system.
The process of setting up a brand new MQTT-enabled device with a device uses to obtain device passport information from Hobson is referred to as bootstrapping.
When a non-bootstrapped device device with no device passport information is powered on, it should immediately begin the bootstrapping process.
- The user must create a device passport for the device to Hobson through the web console or REST API. This lets Hobson know that the device is allowed to directly interact with it.
- The user powers on the device.
- It is up to the device to determine how it identifies Hobson's MQTT server. One suggestion is to dynamically discover it using an SSDP search (see below).
- When the device identifies Hobson's MQTT server, it must anonymously connect to the MQTT server and begin listening to the appropriate bootstrap response topic (see below).
- If the previous step is successful, the device must post a bootstrap request message to the bootstrap topic (see below).
- If Hobson allows the registration, the device will receive a bootstrap response message on the bootstrap response topic containing the passport information. Otherwise, an error message is sent to the bootstrap response topic.
- The device should store the contents of the bootstrap response message for future use (e.g. if the device is power cycled).