IoT device firmware develpment guideline?


I’m developing my own device (let say a kind of sensor) and writing a firmware for it using Arduino libraries. I want to connect this device to your IoT platform, because it looks very promising, but apparently I need some guidance for that.
Suppose I installed OpenRemote software locally on my computer, and my sensor should communicate with it via public internet connection.

There are my questions:

  • Where can I find some specification or guide I should follow in my firmware to establish communication with OpenRemote software stack? In particular, what is the preferred way to make this connection secure?
  • Is there some example firmware project which I could use as template, something like this one for IBM Watson IoT Platform?
  • Is it possible to implement Over-The-Air Firmware Update feature for my device using OpenRemote?



If you want your device to establish a connection to OpenRemote then like the IBM IoT example you posted then MQTT is the way to go, there’s details here:

We’ll be updating these pages the next few days as they are a bit too cryptic and difficult to follow at the moment. Some simple steps:

  1. Create an instance of the ClientEventProtocol (this behind the scenes generates an OAuth client to allow you to programmatically authenticate with OpenRemote).
  2. Add an asset to the manager using the UI either using one of the existing asset types or creating a Thing and customising the attributes that it would have
  3. For each attribute that you want to access via MQTT you need to add a configuration item called Agent Link where the value should be as follows with the correct asset id inserted into the json:

You’ll then hopefully be able to follow the MQTT guide.

1 Like

i followed all instructions, but I’m not able to connect to the mqtt broker (MQTTX tool on windows).

I used the docker-compose.yml from the get started section on github → all docker containers up and running. I can access openremote manager UI & keycloak admin console.

I created a ClientEventAgent and try to make a mqtt connection with MQTT client (since esp32 can’t connect) for testing.
But i can’T login into openremote. What is wrong in my setup?
It would be great if you have a hint.
Thank you very much.

Please see this post: