Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Data is sent to the API via the /Stream endpoint. Here, data is queued to be processed, and then stored. There are three types of valid message that may be sent to the API. The following examples will hopefully show how these message must be composed.

Warning

Currently the XML format is not supported when POSTing to the Stream. Please use JSON instead.


Datum POST

Single datum posts are, as you'd expect, comprised of just a single DateTime and Value pair.

The Type field is set to 1 - which indicates that this post purely contains data to be processed and stored.

The DataPointIdID for the DataPoint must be included for this.


Code Block
languageactionscript3
themeMidnight
<!-- POST -->
https://nexcloud.io/v1.0/Stream

<!-- HEADER -->
Accept : application/json
Content-Type : application/json

<!-- BODY -->
{
    "Type" : 1, // Type 1 means readingsending data.
    "Message" :
    {
        "DataPointID" : 68367854, // "Room Temperature" UI1 DataPoint.
        "Value" : 22.7, // This is the reading value (numerical).
        "DateTime" : "2016-03-16T16:20:23.456Z" // UTC time when value was read (ISO 6801).
    }
}



Data POST

The Multiple Data Post is nearly identical in form, except that the DateTime and Value are moved to an array.


Code Block
languageactionscript3
themeMidnight
<!-- POST -->
https://nexcloud.io/v1.0/Stream

<!-- HEADER -->
Accept : application/json
Content-Type : application/json

<!-- BODY -->
{
    "Type" : 1, // Type 1 means readingsending data.
    "Message" :
    {
        "DataPointID" : 68367854, // "Room Temperature" UI1 DataPoint.
        "Data" : [            
			{
                "Value" : 22.7,
                "DateTime" : "2016-03-16T16:20:23.456Z"
            },
            {
                "Value" : 22.8,
                "DateTime" : "2016-03-16T16:22:16.673Z"
            },
            {
                "Value" : 22.6,
                "DateTime" : "2016-03-16T16:24:43.998Z"
            },
            ...
        ]
    }
}



Error POST

The final type of message that can be sent to the Stream is an Error post. If there is a problem with a Device or DataPoint, for example it is no longer reachable on the LAN, you should send an error message to the Cloud. This way users will be notified and see the fault condition.

The Type being set to 2 immediately marks this message as being specific to an error. At a minimum, the ControllerID must be provided. If possible, you can then provide the DeviceID. Then, if the error can be traced right to an individual DataPoint, you may include this as well. The code number is assigned a message - you can check the list of codes here. If one doesn't match an error you are faced with, contact us and we will add codes you require. Finally, the DateTime should be provided, however the Value field is entirely optional and may in fact not make sense to include.


Code Block
languagec#
themeMidnight
<!-- POST -->
https://nexcloud.io/v1.0/Stream

<!-- HEADER -->
Accept : application/json
Content-Type : application/json

<!-- BODY -->
{
    "Type" : 2, // Type 2 means sending error.
    "Message" :
    {
        "ControllerID": 123,
        "DeviceID": 456,
        "DataPointID": 789,
        "Code": 4601,
        "DateTime": "2016-06-01T04:03:08Z",
        "Value" : "27.3" 
    }
}





Filter by label (Content by label)
showLabelsfalse
max5
spacesNS
showSpacefalse
sortmodified
reversetrue
typepage
cqllabel in ("api","data-write","stream") and type = "page" and space = "NS"
labelsapi data-write stream


Page Properties
hiddentrue


Related issues