Katherine Chen
Katherine Chen

Reputation: 75

How to add `c8y_Address` property to a device using API in cumulocity?

Here is the image of the asset information widget, which can add a property called c8y_Address

I would like my device to show their address information on the asset information widget, but I don't really know how to upload these properties to a device.

I am using MQTT. So I created a customised SMQRT Template, which is a POST inventory method 001,<region>,<street>,<territory>. And then I publish it using client.publish('s/uc/TemplateName',001,${region},${address},${territory});. But it doesn't work.

I'm just wondering how can we use API to add the address information as a property of a device?

Thank you.

Upvotes: 1

Views: 231

Answers (1)

TyrManuZ
TyrManuZ

Reputation: 2049

POST would create a new object. I guess what you want to do is updating the device with this properties. So a PUT template would be the correct choice.

enter image description here

Note that the preview shown in the UI currently is incorrect for PUT templates.

It says:

999,<c8y_Address.region>,<c8y_Address.street>,<c8y_Address.territory>

but it actually needs to be (like described in the SmartREST 2.0 guide):

999,<externalId>,<c8y_Address.region>,<c8y_Address.street>,<c8y_Address.territory>

The externalId needs to be from the device you want to update (if you only have a single device without children it would be what you also use as MQTT clientId).

Upvotes: 3

Related Questions