Intro
Connhex Remote Init - short for Remote Initialization - is the service responsible to make provisioned configurations available to devices.
In fact, initialization refers to the process of bringing the device into an operational state with respect to interfacing with the cloud infrastructure. This involves initializing a communication with connection parameters found in each device's configuration.
Provided the device is using the proper authentication key, there's no constraint over how many times a device can request its configuration. Common practices are both requesting the configuration after the first boot only or requesting it after a specific event (e.g. at every device startup).
Device configuration
The device configuration consists of:
- connection parameters (a.k.a. default parameters). These are required for any device
- custom parameters (a.k.a. additional configuration). These are optional and must be known during the provisioning phase.
Default parameters
The default parameters included in the device's configuration are:
Parameter | Description |
---|---|
username | MQTT user |
password | MQTT password |
client_cert | mTLS client certificate |
client_key | mTLS client key |
ca_cert | CA certificate |
ca_chain | CA certificates chain |
Custom parameters
Custom parameters are completely arbitrary data that can be added to the default configuration. Their values depend on the type of device and its specific functionalities.
Examples of such parameters are:
- fallback configurations;
- diagnostic or debug flags;
- other dynamic information potentially useful when powering up the device.
The device configuration is not to meant to be used for run-time interactions with the device, but only to provide an initial snapshot.
Configuration update
You can leverage the remote initialization procedure to update a device's configuration. Suppose you need to:
- update certificates for renewal or security reasons;
- update connection credentials (username and password);
- update custom parameters.
You could inspect the device through Connhex Control and update its configuration. Then either send a command to force the configuration fetch or, provided the device executes the remote initialization routine at each boot, simply reboot the device itself.
More details on downloading a configuration are here.