For the complete documentation index, see llms.txt. This page is also available as Markdown.

BACnet Connection Properties

localInterface (string)

Local network interface bound by the BACnet listener thread. PROCESS-WIDE — all Connections in the same protocol-mapper instance share one UDP socket; the first Connection's value wins. Default behaviour binds the first non-loopback interface.

Default: "eth0"

Examples: "lo", "eth0"

localPort (integer)

Local UDP port bound for sending and receiving BACnet/IP frames. PROCESS-WIDE — see localInterface. Default 47808 (0xBAC0) per ASHRAE 135 Annex J. Change only when 47808 is in use; broadcast discovery (Who-Is) targets 47808 by convention so changing it limits interoperability.

Default: 47808

Example: 47808

Additional restrictions:

  • Minimum: 1

  • Maximum: 65535

deviceInstance (integer, required)

BACnet device instance number (0-4194303). Routing uses deviceAddress (required); deviceInstance identifies the device in logs/metrics and is the device-object instance read by the connect and liveness probes.

Example: 27335

Additional restrictions:

  • Maximum: 4194303

deviceAddress (string, required)

Static device address as 'ip:port' (e.g., '192.168.1.50:47808'); port defaults to 47808 if omitted. The adapter uses direct addressing for all reads and writes. For BACnet/IP devices on a remote subnet, also set 'bbmd' and use the peer's address as seen from the BBMD's subnet.

Example: "192.168.2.114:40426"

bbmd (object)

Register as a foreign device (BIBB F-A, FDR-only — never BBMD-serve) with the configured BBMD so the adapter can talk to BACnet/IP devices on remote subnets. The C-stack auto-renews the registration at TTL/4. PROCESS-WIDE: only one BBMD registration is active at a time; if multiple Connections configure different BBMDs in the same protocol-mapper instance, the last writer wins. For multi-site deployments, shard by site into separate protocol-mapper containers.

Properties of the bbmd object:

address (string, required)

Example: "192.168.1.1:47808"

ttlSeconds (integer)

Default: 600

Additional restrictions:

  • Minimum: 1

  • Maximum: 65535

apduTimeoutMs (integer)

BACnet APDU timeout (ms) — per ASHRAE 135 §19.5, time the C-stack waits for an ACK before retrying. Default 3000. Increase to 8000-10000 for legacy controllers (Trend IQ4, Andover Continuum, Desigo PXC100) on saturated networks. PROCESS-WIDE setting: the first Connection's value wins and later Connections that differ are ignored with a warning; coordinate across Connections in the same protocol-mapper instance, or run separate instances per device class.

Default: 3000

Example: 3000

Additional restrictions:

  • Minimum: 100

  • Maximum: 60000

apduRetries (integer)

Number of times a confirmed APDU is retried before the C-stack gives up (per ASHRAE 135 §19.5). Default 3. Set to 1-2 on devices that respond deterministically; raise to 5+ for flaky links. PROCESS-WIDE setting (first writer wins; later differing values are ignored with a warning).

Default: 3

Example: 3

Additional restrictions:

  • Maximum: 10

sweepIntervalSeconds (integer)

How often the listener-thread sweep reclaims invoke-ids from stuck transactions whose C-stack retry budget (apduTimeoutMs * (apduRetries + 1)) has elapsed. Default 5 s. Lower this only if you see iid-pool exhaustion under sustained burst loads; the floor is 1 s. PROCESS-WIDE setting (first writer wins; later differing values are ignored with a warning).

Default: 5

Example: 5

Additional restrictions:

  • Minimum: 1

  • Maximum: 60

connectionStrategy (object)

If a connection attempt fails, retries will be performed with increasing delay (waiting time) in between. The following parameters control how these delays behave.

Properties of the connectionStrategy object:

initialDelay (integer)

Delay (waiting time) of the first connection retry (in milliseconds). For subsequent retries, the delay will be increased according to the parameter incrementFactor which has a default value of 2.

Default: 1000

Additional restrictions:

  • Minimum: 1000

maxDelay (integer)

Maximum delay (waiting time) to wait until the next retry (in milliseconds). The delay (waiting time) for any subsequent connection retry will not be larger than this value. Must be strictly greater than initialDelay.

Default: 30000

Additional restrictions:

  • Minimum: 1000

incrementFactor (integer)

The factor used to increment initialDelay up to maxDelay. For example if initialDelay is set to 1000 and maxDelay to 5000 the values for the delay would be 1000, 2000, 4000, 5000.

Default: 2

Additional restrictions:

  • Minimum: 2

Last updated

Was this helpful?