Datapoints are the most common types of data encountered when communicating with a BOS. 4 types of points can be listed.



List of different points

A Point is a Data asset with the tag assetType="Data" and the tag dataType="Point"

There is also a dedicated tag to define the type of data point: controlType with the following possible values:


 

Numeric. It is a number with a precision, it includes a unit and sometimes it contains a minimum and/or a maximum


Boolean. Its value can be "false" or "true". A tag is generally available to define a text for each of the states. "On" & "Off, "Occupied" & "Unoccupied"


Enum. It is an ordinal, i.e. an integer greater than or equal to zero, for which each value has a meaning. A tag is generally available to define a text for each ordinal. "Up = 0", "Down = 1", "Stop = 2


String. The text can contain special characters. It can also be used to transmit complex data in JSON format. (A list of bookable rooms for example)




Input levels

Each point can be read-only or writable. There is no dedicated tag for this information since a connector or the API can allow you to change the value of a point or not, it all depends on the configuration from the MSI, whether you're allowed to do it or not.

Usually writable points will match these conditions: b:pointType='Command' or b:pointType='Setpoint' or b:pointType='Setpoint Offset' or b:pointType='Setting'

A point has different levels of writing: 17 levels to be precise and only one single output. You will be able to write only at three different levels as shown below: in1, in8 and fallback.

The highest input level will win over the others.


Important to know:


Both override has a release mechanism, to remove the override. In that case the closest lower level will take over.


Examples: 

An Override action is triggered with the value 10.5. The level 8 is winning so the output takes the in8 value.

Then the Auto action is triggered, the in8 becomes inactive and the in10 is taking over. 





Input strategy

When you interact with the BOS, through the API or through a connector, you will need to choose between these three actions and their counter action.

You will need to understand how the local implementation is done and exchange with the local MSI as there are many possibilities.

The good practices (but that cannot be known for certain) are the following:



Output definition

The output of a point will contain three different parts:

The active input will indicate which input is actively reported to the output.

Linksper will merge the status and the active input into the same field (through the API or the connector).

Different examples with exposed points on MongoDb:



Additional notes

A point is a little more complex that the representation given above., there are additional features to calculate the output value from the inputs such as

This is internal behavior to the BOS and do not alter a third party understanding of the exposed data.