Skip to main content

BACnet Knowledgebase

i4BACnet Service Settings

Abstract

Here is the list of the i4BACnet Service Settings that need to be organized before starting to use the software.

As soon as the installation steps for i4BACnet has been finished, the Service Settings page will be, by default, opened in your browser. 

Service may be configured at any point, under http://localhost:5000/settings/edit.

new_settings.jpg

To preserve changes in this view, the user needs to click the Save button, located at the bottom of the settings list.

Warning

By saving i4BACnet Service Settings, the BACnet Service will be automatically restarted.

The following fields can be configured in this view:

  • InstanceNumber -This is the BACnet instance number for the virtual device associated with the BACnet service.  Two devices must not have the same number. The field InstanceNumber must contain values between 0 and 4194303.

  • CharSet - Character Setting

  • NetworkNumber -The field stands for the network number, used for the broadcast of WhoIs requests. The network number represents the portion of the high-order bit of an IP Address. 

  • PortId - This field is required. It represents the BACnet port number, used by the BACnet Service.

  • Segmentation - Stands for the segmentation in BACnet protocol, for both transmit and receive. This field is required.

  • SegmentTimeout - This field is also required. Here, you can define the timeout in ms/s/min/hr, etc, of one segment in the BACnet protocol. 

  • Timeout - Field is required and it defines the timeout in ms/s/min/hr, etc, in BACnet protocol.

  • LifetimeCOV - The lifetime of COV (change of value) subscriptions, described in seconds, after which subscriptions will be recreated. The LifetimeCOV field is required.

  • BrokerUrl - The URL of the broker with which the service will communicate. The BrokerUrl field is required.  The default value points to a local broker installation. Change this field if the broker runs in a different location. 

  • ClientTsmPoolSize - This required field defines the size of the client TSM pool. The pool size determines the maximum number of outstanding client confirmed requests. The field ClientTsmPoolSize must be between 1 and 65535.

  • ServerTsmPoolSize - The server TSM pool field is required. The pool size determines the maximum number of incoming confirmed requests that the application can execute concurrently. The field ServerTsmPoolSize must be between 1 and 65535.

  • MaxMessageSizeInBytes - The maximum size in bytes of messages sent from the client to the server via WebSockets. The default value is 10485760 bytes (10 MB).

  • ProcessMeasurementsBufferIntervalInMilliseconds - The buffer interval to wait to receive measurements and process them after the interval elapses. The default value is 50 milliseconds.

  • SelfDiscovery - If this field is checked, the BACnet Service will also discover itself as a device during the discovery process. 

  • CheckAvailablePropertiesOnServer - If this field is checked, a separate request will be sent, to check which Object properties are available on the server.  

  • PollingInterval - The system monitoring frequency. The user is provided with a set of predefined options, available in a drop-down list: 100 milliseconds, 200 milliseconds, 500 milliseconds, 1 second, 2 seconds, 3 seconds, and 10 seconds.

  • KestrelLimitsMinRequestBodyBytesPerSecond - The minimum rate in bytes/second at which data should be processed for a request. The default value is 240.

  • KestrelLimitsMinRequestBodyGracePeriodSeconds - The amount of time to delay enforcement of bytesPerSecond, starting at the time data is first to read or written for a request. The default value is 5 seconds.

  • KestrelLimitsMinResponseBytesPerSecond - The minimum rate in bytes/second at which data should be processed for a response. The default value is 240.

  • KestrelLimitsMinResponseGracePeriodSeconds - The amount of time to delay enforcement of bytesPerSecond, starting at the time data is first to read or written for a response. The default value is 5 seconds.

  • DelayPollingDuringSubscription - Whether the polling should be delayed during a subscription operation (subscribe or unsubscribe). The default value of this property is true.

  • CheckRunningSubscriptionsIntervalMilliseconds - The timer's interval (in milliseconds) to check if there is a subscription operation (subscribe or unsubscribe) running. The default value is 5000 milliseconds (5 seconds).

  • RemoveLongRunningSubscriptionIntervalMilliseconds - The interval (in milliseconds) allowed for a subscription operation (subscribe or unsubscribe) to run. After this interval, the polling is no more delayed. The settings are per operation (subscribe or unsubscribe). The default value is 3000 milliseconds (3 seconds). Remark: the subscription operation is not canceled, but the polling is no longer delayed and can execute in parallel with the subscription.

  • ProcessDeviceDiscoveryBufferIntervalMilliseconds - The buffer interval to wait for device discovery data and process data after the interval elapses. The default value is 3000 milliseconds (3 seconds).

  • PerformSubscriptionsIntervalMilliseconds - The interval to check if there are new subscription requests coming from the consumers to be sent to the devices. The default value is 1000 milliseconds (1 second).

  • SubscriptionsChunkSize - The length of a chunk of subscriptions (subscribe/unsubscribe operations) to be sent to a device. The default value is 100 subscriptions.

  • WaitBetweenChunksIntervalMilliseconds - The interval to wait between consecutive calls (sending subscriptions) to a device. The default value is 100 milliseconds.

  • InitialDelayWhoIs - The interval to wait before broadcasting the first WhoIs message, in the network, after the BACnet Service is turned on. The default value is 5000 milliseconds (5 seconds). The reason to delay the first WhoIs message is to allow a proper initialization and stabilization of the network.

  • PeriodToWaitForIAmAfterWhoIs - The interval to wait for BACnet devices to respond with IAm. The default value is 10000 milliseconds (10 seconds).

  • PeriodToWaitForAnotherWhoIs - The interval to wait before the next WhoIs message is broadcast in the network. The default value is 20000 milliseconds (20 seconds).

  • PollStrategy - The system monitoring strategy type to use for polling subscription type. The user can select the desired strategy from the drop-down list, choosing from the following options:

    • DevicesSequentiallyPropertiesOneByOne - during the polling cycle, devices are read sequentially and the properties are handled one by one.

    • DevicesInParallelPropertiesInBatch - during the polling cycle, devices are read in parallel and the properties are handled in one batch. This strategy is set as default.

  • PoolBatchSize - The length of a chunk of properties to be read from a device during pooling. The default value is 100, and the minimum is 1.

  • WaitBetweenPoolBatchesIntervalMilliseconds - The interval described in milliseconds to wait between consecutive calls (reading properties for pooling) to a device. The default value is 50 milliseconds, and the minimum is 1 millisecond.

  • AutoTimeSynchronization - Turns the automatic time synchronization mechanism on or off. By default, this setting is disabled (the automatic time synchronization mechanism is turned off).

    Tip

    The BACnet Service contains an internal service that broadcasts the time synchronization command, on a configurable interval. The automatic time synchronization mechanism starts when the BACnet Service starts and stops when BACnet Service stops.

    If the automatic time synchronization mechanism is not enabled, it will not broadcast anything to the network. If it is enabled, in starting phase, this mechanism will wait (one time only) for at least 10 seconds for the initialization of other components and after this waiting interval, will start to broadcast the time synchronization command, in accordance with the configured interval. This means that the first synchronization will be done after at least 10 seconds after BACnet Service starts and afterward will be executed automatically.

  • AutoTimeSynchronizationIntervalMinutes - The interval (measured in minutes) to wait between consecutive calls before the time is automatically synchronized. By default, the automatic time synchronization interval is set to 30 minutes.

    Tip

    The minimum allowed value is 1 minute and the maximum allowed value is 2147483647 minutes (Int32.MaxValue). A validation mechanism is integrated, therefore, values with an incorrect numerical format, or values outside the range, can not be saved.

    Error_message.jpg

    Error message: Value outside of the range

    ErrorMessage2.jpg

    Error message: Incorrect numerical format

  • TimeSynchronizationUseUtc - Uses the UTC time scale (Universal Time Coordinated) if the automatic time synchronization mechanism is turned on. By default, this setting is disabled.

    Tip

    If this setting is enabled, the UTC will be sent in the broadcast, otherwise, the local time of the BACnet Service will be sent in the broadcast.

  • UseReadMultiplePropertiesOnSubscriptions - If this field it's checked, the read multiple properties will get the initial values of the properties subscribed for a device. The default value of this property is false.

  • ReadMultiplePropertiesChunkSize - the length of a chunk of properties for getting the initial values on subscriptions. The default value is 100.

  • WaitBetweenReadMultiplePropertiesChunksIntervalMilliseconds - The interval to wait between consecutive calls (sending read multiple properties) to a device. The default value is 10 milliseconds.

  • PerformReadOnSubscriptionCovObjectPresentValueStatusFlags - If set to false, the single read of the initial value of a property when the subscription is performed and the subscription type is COV-Object. The default value is set to true.

    Note

    This setting has effect only for Present-Value and Status-Flags properties.

  • PerformOneSubscriptionOnBothPresentValueStatusFlags - If set to true, it will only perform one subscription, usually for Present-Value properties. This is applied If both properties Present-Value and Status-Flags are subscribed to the same object. The default value is false.

    Tip

    This setting is applied only for COV-Object or COV-Property properties. The device is sending a COV notification with the initial values for both properties after this type of subscription.