Skip to content

Alarms

3.9

NF can receive and store BACnet event notifications from devices on the network. The Alarms page provides a central view for monitoring, filtering, and acknowledging alarms.

Event Subscriptions

To receive alarms from a device, you need to subscribe to its notification classes. The Alarms page shows devices and their notification classes in the left panel. Click Subscribe on a notification class to register NF as a recipient for events from that class.

Subscriptions can be configured as:

  • Confirmed or unconfirmed notifications
  • Transition filters: choose which transitions to receive (to-offnormal, to-fault, to-normal)

NF adds itself to the device's notification class recipient list using BACnet AddListElement. When you unsubscribe, it removes itself with RemoveListElement.

Viewing Alarms

The alarm log table shows received notifications with:

  • Timestamp
  • Source object (type and instance)
  • Event type and priority
  • State transition (from/to)
  • Message text
  • Acknowledgment status

Alarms can be filtered by device, event type, notification type, event state, and priority range.

Acknowledging Alarms

Alarms that require acknowledgment show an Acknowledge button. Acknowledging an alarm records who acknowledged it and when. Optionally, the acknowledgment can also be sent back to the originating device via the BACnet AcknowledgeAlarm service.

Storage and Retention

Alarms are persisted in Redis and backed by a write-ahead log for real-time streaming.

Setting Default Description
ALARM_RETENTION 720h (30 days) How long alarms are kept before cleanup
ALARM_MAX_COUNT 10000 Maximum stored alarms; oldest removed when exceeded

API

Alarms are available through the BACnet v2 gRPC API:

  • GetAlarms -- query alarms with time range, filters, and pagination
  • ObserveAlarms -- server-streaming feed with resume support via version tokens
  • AcknowledgeAlarm -- acknowledge a specific alarm
  • CreateEventSubscription / DeleteEventSubscription -- manage subscriptions
  • GetDeviceEventInformation -- query a remote device's current event state