Issue
I/A Series R2 station fails to send BACnet alarm to a third-party system. The error indicates tridiumx.bacnet.BACnetException E_BACNET_UNRESOLVED_DEVICE_ADDRESS.
Environment
I/A Series R2, BACnet
Cause
A notification class and BACnet recipient have been configured with a BACnet device instance however an error is generated for each alarm attempt. The error log indicates that there is an unresolved device address.
tridiumx.bacnet.BACnetException E_BACNET_UNRESOLVED_DEVICE_ADDRESS
at tridiumx.bacnet.services.BACnetTransport.sendConfirmedRequestSimple (bytecode 21)
at tridiumx.bacnet.notification.BACnetNotification.sendRequest (bytecode 9)
at tridiumx.bacnet.notification.AsyncEventNotificationRequest.execute (bytecode 15)
at tridium.services.helpers.AsynchronousRequestHelper.processMsg (bytecode 4)
at tridium.services.helpers.MessageQueueHelper.run (bytecode 23)
at java.lang.Thread.run (line 5)
Resolution
For the alarm to work, the station must contain the associated BACnet device object for the target device. This provides the information required to properly route the alarm (e.g. IP address, device instance, etc.). In addition, the target device must be online and able to receive and process BACnet alarms. Use the BACnet service BACnetUtility and learnNetwork command to create the BACnet device objects for the target devices.
Additional details can be found in the I/A Series R2 BACnet Integration Reference Guide (Configuring for BACnet Alarm Generation) included with the R2 documentation. These requirements and restrictions apply to Niagara BACnet alarm generation:
- Only Niagara objects that are exposed as BACnet objects can generate BACnet alarms. This means only alarms from Niagara AIs, AOs, BIs, BOs, MSIs, and MSOs can be routed to BACnet devices (Calendar and Schedule objects are not alarmable). This draws from the BACnet requirement that every alarm message must contain the BACnet object ID of its source.
- Only local objects in a station can generate BACnet alarms. Therefore, a Enterprise Server station cannot generate a BACnet alarm on behalf of an object in a subordinate station. If a subordinate station needs to generate a BACnet alarm, it must be configured with the BACnet service and the appropriate recipient(s).
- A separate BACnetRecipient must be created for each remote device to which BACnet alarms must be routed (one-to-one BACnetRecipient to device).
- Alarms are not regenerated. If a BACnet device is down when the Niagara system sends an alarm, the alarm is not saved for retransmission later. The Niagara system, of course, still maintains a record of the alarm in its buffer.
- The Niagara system does not support setting up a third-party BACnet system to receive BACnet alarms, configure its notification classes, and so forth. All alarm configuration and setup must be done using the system’s native tools.