In many IoT projects a large number of distributed devices are deployed over a large geography. This may mandate that identical devices receive slightly different configuration. Typical examples of this are:

  • local or customer specific MQTT server
  • different frequency configuration for different regions
  • different polling intervals for sensor solutions

qbee.io has taken a very generic approach to solving these problems. Any configuration file can be easily turned into a template. This is done by exposing all or parts of a configuration file through {{ mustache }} notation. Please see the following example:

[broker]

username = "myname"

password = "mypassword"

server = "m23.cloudmqtt.com"

port = 10804

tls = 0

[tinymesh]

system-id = "10,0,0,3"
 

This can be turned into a qbee.io template by doing the following:

[broker]

username = "{{username}}"

password = "{{password}}"

server = "{{server}}"

port = {{port}}

tls = 0

[tinymesh]

system-id = "{{system-id}}"

Here all parameters except for tls=0 are made accessible through the UI. In qbee.io this allows to divide devices into different customer profiles and assign a different MQTT server as well as a different system ID.

In this example a customer in Germany receives a different MQTT server and a different system ID then a customer in Norway. This templating is extremely effective as only the values that are use case specific need to be exposed. Many application or Linux configuration files have hundreds of lines but only one or two parameters that are relevant to change. This allows also to change some parameters on a system level  by rolling out a new configuration template to all devices but maintain the local peculiarities through the templating.
If you are interested in learning more about this please do not hesitate to reach out to us and we get in touch.

Did this answer your question?