Skip to Content

Internet of Things (IoT) Adding a new device to the IoT Services


Internet of Things (IoT) Adding a new device to the IoT Services

By Craig Cmehil

Part 7 of 10, Add a new device to your IoT Services

You will learn

With the MMS service now deployed, and your user assigned the appropriate role it’s time for to add your device(s) so you can communicate with it. To do this you will add your device to the service.


  1. From the SAP Cloud Platform cockpit, select Java Applications then select the iotmms application. Open the Message Management Service Cockpit by clicking on the Application URL.

    Application URL
  2. Click on the View registered devices and device types tile to open the IoT Services Cockpit. You will use this page frequently, so it is worth bookmarking it.

    View registered devices
  3. Click the Message Types tile, then the + symbol to add a new message type and define the structure of the data you will to collect. In the Information section, enter a name “climateData”.

    Device definition
  4. In the Fields section, click the + Add Field button to add in two more fields, then enter the following for name and data types. Click the Create button (bottom right corner) when complete. When the message type is created, copy the ID string. You will need it later.

    Note: Be sure to follow the names and capitalization specified below.

    Name Type
    timestamp date
    Humidity double
    Temperature double

    Copy and save the message type ID, which you will need later:

    ID value
  5. Click the “back arrow” again to return the the IoT Services Cockpit. Click on Device Types, then the + symbol to create a new device. Give it a simple name that makes sense for what you are doing, like “TesselClimate”. Now click the + Add Message Type to attach your previously created message type “climateData”. Make sure the Direction is “From Device” and click Create.

    New Device Type
  6. Finally you can now click the < “back arrow” icon and click Devices. Click + to add a new device, name it DevelopmentTessel and make sure its device type is TesselClimate.

    This is extremely important, once you click Create a pop-up will appear that will display the OAuth access token for this new device. Copy that and save it somewhere, as you will need it soon. If you lose it, click into the Authorization tab and generate a new token.

  7. When the OAuth Access Token is displayed, copy the token ID and save it. Click Close.

  8. Now copy and save the Device ID string

    Device ID
  9. With the device type, message type and device configured, it is time to send some data. Go to the IoT Services Cockpit and click the Send and view messages… tile.

    View Messages

    Then click the Messaging through HTTP tile in Data Services group.

    View stored messages
  10. On the HTTP API page, you will see a Sample Client to Send Messages with an HTTP endpoint like this:

    Change d000-e000-v000-i000-c000-e001 to your device’s ID (it is a GUID) you copied in step 8 above. Note: the GUID is the device ID, not its authorization token.


  11. You will next formulate your HTTP POST payload. Since you are sending OData, numbers (float, int, double, etc) are not placed in double quotes, while strings and the Key of the Key/Value pair are in quotes.

    Under Message to post replace the existing content with the following which matches the message type your used earlier.

    {"mode":"sync", "messageType":"m0t0y0p0e1", "messages":[{"Humidity":25.7, "Temperature": 21.5, "timestamp":"2016-11-15T08:45:37.930Z"}]}

    NOTE - the messageType value "m0t0y0p0e1" must be changed to match your message type ID.

    The date format is a combined date and time representation in ISO 8601 format. It is in UTC (Coordinated Universal Time) as indicated by a Z directly after the time without a space.

  12. Click the POST button. If everything goes OK, you should see a response code of 200 similar to this screen shot or response code 202 when you post for the very first time.

    Server Reply

    You receive response code 202 when your request was not immediately processed, but instead was placed in a processing queue. You should copy returned HTTP endpoint into Receive acknowledgments field to receive the status of your queued message.

    Response codes 4xx or 5xx indicate that post request has failed.

  13. To verify that the posting worked, switch back IoT Services Cockpit, click View messages received, use sample clients, etc. tile, then click the Display stored messages tile. When the page updates you should see something like this:Viewing stored messages

  14. Now you will post from an external REST client. In this step you will use Postman Extension for Google Chrome.

    Once installed in Chrome open the Postman extension in incognito mode to avoid authentication issues in the same browser session with SAP Cloud Platform. For that you might need to allow the Postman extension to run in Chrome’s incognito mode.

    Postman extension in incognito mode
  15. Copy the HTTP endpoint to it and select POST from the drop down menu.

    Open the Headers section and set:

    • the “Authorization” value to “Bearer [TOKEN ID]” using the token id you copied when you added your device to the system,
    • the “Content-Type” to “application/json”.
    Authorization values
  16. Select then the RAW type and copy and paste in the same content you just had (with a few value changes to make it easier to spot this insert. Make sure you change the messageType to your ID.

    {"mode":"sync", "messageType":"m0t0y0p0e1", "messages":[{"Humidity":25.8, "Temperature": 21.6, "timestamp":"2016-11-15T08:46:37.930Z"}]}
  17. Click Send and you should receive a message similar to when you used the SAP Cloud Platform simple client. This indicates that your POST was successful and if you return to the “Display Stored Messages” you will see your new entry.

    If you receive 40x authorization error in return, then check if you are running Postman client in Chrome’s incognito mode.

Next Steps

Back to top