Building Automation Integration Services

A building rarely runs one vendor’s equipment. It runs whatever was installed over twenty years: BACnet controllers from one era, Modbus meters from another, a LonWorks legacy wing, and increasingly cloud and IoT systems that expect MQTT. Building automation integration is the work of making all of it one coherent system.

Protocols We Integrate

  • BACnet — IP and MS/TP, with proper object mapping rather than raw point dumps.
  • Modbus — TCP and RTU, with the register scaling and byte-order care that decides whether values are correct or merely plausible.
  • LonWorks — legacy estates that still run critical plant.
  • MQTT — edge, IoT and cloud-bound telemetry.
  • SNMP and oBIX — network equipment and enterprise interoperability.
  • Project Haystack tagging — so the data means something to software, not just to the person who mapped it.

Where Integrations Go Wrong

Almost never at the protocol level. They go wrong in the details: a Modbus register scaled incorrectly so a reading looks reasonable and is wrong, a naming convention nobody documented, points mapped without units, or a structure that made sense to the integrator and to nobody since.

We integrate to a convention, document it, and tag the data so analytics and any future AI layer can actually use it. The argument for that groundwork is set out in BACnet vs Modbus and Project Haystack and semantic tagging.

If the network itself is misbehaving — duplicate device IDs, broadcast storms, timeouts — our sister practice covers BACnet and OT network diagnostics.

Tell us what equipment needs to come together and we will scope the integration properly.

Related services

What a Site Survey Turns Up Before Any Driver Is Configured

Integration starts with an inventory, and the inventory is rarely what the drawings say. Controllers get replaced, panels get repurposed, and a wing the documentation still calls LonWorks may have been converted by a contractor who left no record. The survey establishes what is actually on the wire: device addresses, firmware and protocol revisions, which systems are already polling the equipment, and who holds the credentials.

That last item is the one to settle first. A chiller behind a locked vendor gateway can hold a project still while every technical question is already answered. A fire alarm panel is a different case again, and not a commercial one: interfacing to a fire alarm system is governed by code and listing requirements and by whoever holds the fire alarm license, so it is scoped as its own conversation with the people who own that system. Both are far better found during discovery.

  • A device list, with a check that each device answers on the address the drawings claim
  • Existing polling, since another front end sharing an MS/TP trunk consumes part of the poll budget you were counting on
  • Firmware and protocol revision per device, because object and register support varies between them
  • Physical layer notes for serial trunks: topology, termination, and where the trunk was extended over the years
  • Ownership: who can grant access to each system, and what change process they follow

Native Driver or Protocol Gateway?

Gateways are sometimes the sensible answer. When a device speaks something proprietary with no Niagara driver available, or when only a handful of such devices exist, a gateway presenting them as Modbus or BACnet gets the job done without a development cycle. The trade is metadata. Gateways tend to flatten object names, units, alarm state and priority handling into bare registers, and you inherit a second box to power, patch and diagnose at three in the morning.

A native driver keeps the richer model and removes a hop. It tends to win when the device population is large enough that the mapping effort repeats across sites, when the protocol carries state that the gateway discards, or when the integration has to survive equipment being swapped. Custom driver work is covered on the Niagara Framework Development overview, and the Modbus, MQTT and SNMP pages set out what each of those protocols asks of an integration.

Conventions Get Applied at Mapping Time

Renaming a point is trivial before anything depends on it and turns into coordinated rework once histories, alarms, graphics and reports are bound to it. The naming and tagging convention therefore gets agreed before mapping begins, applied to every device in the job, and written somewhere the next engineer will actually find it. Units belong on each point at creation. A dimensionless number that happens to be degrees Fahrenheit will eventually be read by somebody who assumes Celsius.

How an Integration Gets Verified

Verification compares what the station shows against what the device shows, at the source. For analog values that means reading the meter face or controller display while the station is polling. For controllable points it means writing at the intended priority level and confirming both the device response and the release behavior when the write is removed.

Failure behavior is tested deliberately: disconnect the network, power down a gateway, and watch what the station reports. A point that silently holds its last value is a future incident, because an operator will read a stale number as a live one. No test plan covers every case, and a full season of operation can still surface something. The aim is to remove the predictable failures and leave a written record of what was checked, so anything unpredictable can be diagnosed against a known baseline.

When Integration Is Not the Answer

If the estate is single-vendor, the existing front end works, and nobody is asking for cross-system reporting, adding a Niagara layer may buy you very little. If the requirement is one report for one audit, an export from the incumbent system can be enough.

Integration earns its place when several systems have to be compared side by side, when a vendor front end is being retired and the data has to outlive it, when meters and equipment need to share one model for energy work, or when analytics and tagging are on the roadmap. Project Haystack and semantic tagging describes what that model needs to look like.

What Sets the Poll Rate on an MS/TP Trunk

MS/TP is a token-passing bus over RS-485. One master holds the token, completes its transactions, and passes it to the next address in rotation, so every request on that trunk is serialized behind the token rather than running in parallel. Common line rates are 9600, 19200, 38400 and 76800 baud, and the whole trunk runs at the slowest rate every device on it can manage. One controller that cannot exceed 9600 sets the ceiling for the other thirty.

The Max_Master setting is the part most often left alone. Each master looks for its successor by polling addresses up to Max_Master, and the factory default of 127 means it keeps polling for masters that were never installed. On a trunk whose highest MAC address is 12, leaving 127 in place spends token time on addresses that will never answer, and the effect grows with the number of masters doing it. Setting Max_Master just above the highest address actually in use is a configuration change on each device, not a station setting, which is why it belongs in the survey findings rather than in commissioning.

Where a device supports change of value, subscribing is cheaper than polling: the station asks once and the device reports when the value moves outside the deadband. COV subscriptions carry a lifetime and have to be renewed, and support varies by device and by object, so a mapping usually ends up mixed. The rest is scheduling. A space temperature read every five minutes and a fan status read every fifteen seconds cost very different amounts of the same trunk, and deciding that per point is what keeps a large trunk usable.

Read Access and Write Access Are Separate Decisions

A supervisory layer will be disconnected at some point. A switch gets replaced, a controller is repowered, a link goes down during unrelated work. Safety interlocks, freeze protection and any sequence the equipment has to hold on its own therefore belong in the controller. If a sequence only works while the station is online, the sequence is in the wrong place. Read access and write access are scoped separately for that reason, rather than granted together because both were technically available.

On BACnet, a commandable object does not hold a single value. It holds a priority array of sixteen slots, and the value in effect is whatever sits in the highest-priority slot that is not null. A write at priority 8, the level normally used for manual operator commands, overrides one at 10 and is itself overridden by 1 and 2, which are reserved for life safety. Releasing a command writes null into that slot rather than a value, and the point falls to the next occupied slot below it.

When every slot is null, the object falls back to Relinquish_Default, which is the value the equipment runs on when nothing is commanding it. It is frequently left at whatever the manufacturer shipped, and it is worth reading before the first release rather than after. Modbus has none of this machinery. A holding register accepts whatever was written last, at whatever rate it was written, and nothing records the source. Two systems writing the same setpoint produce a value that alternates between them, which on a trend looks like an equipment fault rather than a configuration one.

For every point that will be commandable, the same short list gets settled and written down before the first command is issued:

  • Read only or commandable, decided per point rather than per system, since one device usually has both
  • The priority level the station writes at, and what else in the building already writes at or above it
  • Whether the command is released after each use or held, and what releases it
  • The Relinquish_Default the point falls back to, checked against what is safe with nothing commanding it
  • For Modbus points, which single system owns the register, because the protocol will not arbitrate

The Network Path an Integration Depends On

BACnet/IP discovery uses broadcasts, Who-Is and I-Am, and broadcasts do not cross a router. Devices on another subnet therefore need a BBMD on their own subnet, or the station registers as a foreign device against a BBMD that already exists there. Two BBMDs on one subnet, or broadcast distribution table entries left behind by an earlier project, produce duplicated traffic and devices that show up twice.

Address translation is the other common surprise. When BACnet/IP traffic is forwarded, the originating device address travels inside the message, so NAT between the station and the equipment breaks discovery even though the packets arrive. Either the path is routed without translation, or the BBMD is configured with the translated address so the contents and the headers agree.

Firewall rules are where an otherwise finished integration stalls, because a blocked port and an unresponsive device look identical from the station. The default ports below are the ones to confirm are permitted between the station and each system, in the direction each one actually uses.

  • BACnet/IP: UDP 47808 (0xBAC0), and 47809 upward where more than one BACnet network shares a subnet
  • Modbus TCP: TCP 502, station to device
  • MQTT: TCP 1883 plain or 8883 with TLS, outbound from the station to the broker
  • SNMP: UDP 161 outbound for polling, UDP 162 inbound if traps are being received
  • oBIX: over HTTP or HTTPS on whatever port the server publishes, commonly 443
  • Niagara station to station: Fox on TCP 1911 or 4911 for the TLS version, with Workbench platform connections on TCP 3011 or 5011

What Happens to the Data After the Points Are Mapped

A point that reads correctly still needs a decision about history. Interval collection samples on a fixed period and produces predictable storage; change of value collection records only when the value moves past a deadband, which captures detail during transitions and nothing during steady state. A noisy analog with too small a deadband can generate more records than a one-minute interval would, and storage on an embedded controller is finite, which is why long retention usually means archiving to a Supervisor rather than keeping everything at the edge.

Timestamps deserve their own check, because there are two clocks involved: the device's and the station's. Where the station timestamps at poll time, the record says when the value was read, not when it changed, and the difference is the poll period. Energy and demand work is the least forgiving of this, since intervals get compared against the utility's own. The station gets its time from NTP, devices that keep their own clocks can be aligned with the BACnet time synchronization services, and the time zone and daylight saving settings have to match across the estate or a season change will introduce an hour of skew into a year of trends.

Alarms are where a new integration is most likely to annoy people on day one. Adding an alarm extension to every mapped point produces alarms from equipment that is simply off, from analogs sitting outside their limits during a shutdown, and from points that chatter around a threshold. Limits belong with a time delay so a brief excursion does not raise anything, and each alarm needs a class that decides who is notified and whether an acknowledgment is required. An alarm nobody acts on trains operators to ignore the ones that matter.

Frequently Asked Questions

Does integrating a system mean replacing its controllers or its front end?

No. Integration adds a supervisory layer that talks to the controllers already installed, and the equipment keeps executing the sequences programmed into it. An existing vendor front end can usually stay online alongside the station, though somebody eventually has to decide which one operators use day to day, because two front ends with different graphics and different names for the same point produce two versions of the truth. Replacing controllers or rewriting their sequences is a controls retrofit and separate work.

How do device and point counts affect what we have to buy?

They decide the license and the hardware, so scope and equipment are one decision rather than two. Niagara licensing is issued with device and point limits, and that count is consumed by everything the station connects to, not only the equipment being added in this phase. An embedded controller also enforces resource limits that drivers, histories, alarms and graphics all draw on, so a station sized exactly to today's point list has nothing left for the next phase. It is worth agreeing the expected growth before the license and the hardware are sized.

How does the work proceed once access is in place?

The first device of each type is done in full before the rest of the population is touched. The driver is configured against that one unit, the addressing and any register scaling are proved on it, and the naming and tags are applied so the template is correct before it gets repeated. The remaining devices are then added against that template, and histories, alarms and graphics are bound once the point layer is stable. Verification comes last and needs coordination with whoever operates the equipment.

What if the equipment does not speak BACnet or Modbus at all?

Ask the manufacturer first. Chillers, boilers, VFDs, meters and packaged units are commonly sold with a protocol option card or communication module that adds BACnet or Modbus to equipment that shipped without it, and it arrives with a documented point list and the vendor's own support behind it. It usually has to be ordered per unit and on some equipment must be fitted by the manufacturer's technician, so it is a lead-time item rather than something handled on the same visit. The harder case is equipment that exposes nothing at the building and only a vendor cloud API: that data comes back over HTTPS subject to the vendor's rate limits and delay, which is workable for reporting and not for control.

Does the station need internet access?

Only for the functions that reach off site: an MQTT broker in the cloud, remote access for support, hosted analytics or reporting, and license and software operations. A station with no route off the building still polls, controls, alarms and trends normally. If remote access is wanted, how it is provided is a decision for the customer's IT group, and settling it early matters because it changes what the network has to allow.

How much of the work can be done remotely?

Once there is a route to the station, driver configuration, point mapping, history and alarm setup, graphics and reporting are all remote work. What needs a person at the building is anything physical: setting the address switches on a controller, fitting a communication card, or putting a meter into the mode its protocol requires. Commanding points also needs a window agreed with whoever runs the equipment, since a write moves real plant, and having someone at the equipment during that window shortens the round trip when something does not respond as expected.

What should we hold at the end of the job?

The mapping documentation, a backup of the station configuration, the platform and station credentials, and the license along with its registration details. The backup is what restores the configuration onto replacement hardware, and the license matters in that same situation, because a Niagara license is tied to the host ID of the machine it runs on, so a hardware swap is a license transfer as well as a restore. Keeping all of it somewhere the facilities team can find it is the difference between a failed controller being a restore and being a rebuild.