Device connection and status

  • Describe the problem in detail.
    I had worked on the functionality of updating the availability status and time for the device by mentioning required interval. However, the time and availability are not updated when manually pushing the data.

  • What are you trying to achieve?
    When a data is pushed manually for a particular device, the device status should be active, and status should be updated.

  • What is the full error message you see in the logs?
    image
    When the payload is pushed to that device after the required interval, the colour is still in red and status is UNAVAILABLE.

One of the reasons could be because the client which is generating the data has the HTTP header set X-Cumulocity-Application-Key (which is the default if you’re using the Cumulocity IoT Java or Angular SDKs).

There is a Concept page which mentions some details about this, below is a snippet from the references docs.

Furthermore, most of the HTTP requests which are sent by microservices must contain the HTTP header X-Cumulocity-Application-Key . The header indicates that an action is performed by an application. When the header is missing Cumulocity IoT assumes that the HTTP request is originated by an IoT device. Therefore, a request without X-Cumulocity-Application-Key affects for example, the device availability state, or the billing data.

Long story short, if you remove the X-Cumulocity-Application-Key HTTP header from the REST API calls which are generating data which should count towards the device monitoring (though inventory updates don’t generally affect it, except for an empty PUT).

Note

I inferred that you are using a microservice to generate the data has the screenshot showed that the device owner follows the pattern service_xxxx.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.