Skip to content

Read and write values

pichler edited this page Sep 25, 2016 · 3 revisions

Depending on the BACnet object type and the related OpenMUC configuration, BACnet objects may be read and written after a connection has been established. This documentation is related to remote devices. When reading or writing values from/to a local BACnet server, please go to this wiki page.

Reading values

The BACnet driver reads one or more values from a remote devices. BACnet's ReadPropertyMultiple functionality will be used automatically, if the remote device supports this feature. By default, the driver reads the Present Value property of the BACnet object. If other properties of the BACnet object should be read, the channel address must contain the property name seperated with a # char. The following example shows the syntax of the resulting channel address:

<channel address>[#<property identifier>]

The timestamp returned with a reading will be built using the system clock of the local device (current time when reading). If multiple values will be read at once, all readings have the same timestamp (independent from multiple or single BACnet reading).

Change of value

It is also possible to get a notification, if a BACnet value changes (COV). This feature is provided by BACnet (thus, configuration like tresholds has to be done at the BACnet object) and will be adopted by the OpenMUC framework.

Writing values

The BACnet driver writes one or more values to BACnet objects. If writing to a specified object (or the object itself) is not supported, the OpenMUC flag DRIVER_ERROR_CHANNEL_VALUE_TYPE_CONVERSION_EXCEPTION in the channel value container is set. Otherwise, the value will be written with the globally defined priority to the Present Value property of the specified BACnet object. WritePropertyMultiple is not supported at the moment, each value will be written one by one.