Entities

Entities are objects, arrays, properties and bound properties.

Objects

Objects are entities used to create containers in the JSON message and identify slots in a target ord.

  • A JSON schema Object inserts into the schema an empty named container ({ }) for holding other schema entities.
  • A BoundObject is a named JSON object whose child name and value pairs are the slots within a target ord.
Figure 11.   A Json Schema Bound Object
Image

Arrays

Arrays contain a list of values. They do not include names.

  • A JSON schema Array inserts into a schema an empty named container ([ ]) for the purpose of holding other schema entities.
  • A JSON schema BoundArray is a named JSON object that renders values as a list.

Fixed properties

Fixed Properties are hard-coded name and value pairs, which you always want to appear as constants in the JSON string. You can link to these if the value is expected to vary. The next generation event, triggered by a CoV on a bound entity or by the invocation of the Generate action, includes the current value. A change in the value of any fixed property does not trigger a CoV generation event in the same way that a bound equivalent does.

  • A FixedString property inserts a string value.
  • A FixedNumeric property inserts a numeric value.
  • A FixedBoolean property inserts a Boolean value.

Bound properties

A bound property inserts the current value of the object specified in the binding.

Figure 12.   Bound properties
Image

BoundProperties include:

  • A BoundCSVProperty is a named JSON string that renders child slots as a string, comma–separated list with no surrounding [ ] or { }.
  • A Tag property is a list of name and value properties based upon selected tags found on a binding target. If the tag is not found on the binding target, andSearchParents is true, the framework searches up the hierarchy for the closest component with a matching tag id.
  • A TagList is a list of name and value property pairs that are based upon selected tags found on a binding target. A comma-separated list specified in the Tag Id List Filter property can limit the tags to be included in the output. Example: n:name, n:type or * for all. If Include Namespace is true, the tag dictionary prefix is added to the key (for example, the hs: is added to hvac to give: hs:hvac).
     
    NOTE: Facet and Tag properties are not bound like the other bindings, in that changes of value do not prompt schema generation. The current value is retrieved from the station when the schema generates.
     
    Figure 13.   Json Schema Tag List
    Image
  • A Facet property inserts a single facet value from a bound component into the schema output, for example, the units of the current point.
  • A FacetList inserts a list of name and value facet properties based on a comma-separated list or * for all. Add facet keys as follows: units, mix, max
  • Message properties
    Figure 14.   Message properties
    Image
  • A Count property is a named numeric value, which increments by 1 on each schema generation. Could be used for message IDs.
  • A CurrentTime property inserts the current time as set up in the Config folder’s Time Format property.
  • UnixTime property inserts the current time in Unix time as seconds from January 1, 1970.