Life Safety Point
A Life Safety Point object represents one fire or safety initiating or indicating device, such as a smoke detector, a pull station, a horn or a sprinkler flow switch. It reports a life-safety state and supports silencing and reset operations, so a safety panel can be monitored over BACnet.
Typical uses
Section titled “Typical uses”- Report a smoke detector in alarm
- Show a pull station as tripped
- Expose the state of a sounder or strobe
- Flag a detector that needs maintenance
Key properties
Section titled “Key properties”| Property | What it holds |
|---|---|
| Present_Value | The point’s life-safety state, such as quiet, pre-alarm, alarm or fault. It may stay latched until reset. |
| Mode | The operating mode of the point, for example on, off or test. Accepted_Modes lists the modes it allows. |
| Silenced | Whether the audible and visible signals are silenced. |
| Operation_Expected | The next operation the point expects, such as reset or silence. |
| Alarm_Values | The states that put the point in off-normal. |
| Life_Safety_Alarm_Values | The states that put the point in the life-safety-alarm state. |
How it behaves
Section titled “How it behaves”The point is not commandable; clients change it through the LifeSafetyOperation service and by writing Mode. Where it reports events itself, the standard pairs it with the CHANGE_OF_LIFE_SAFETY algorithm, which moves the point to off-normal or life-safety-alarm depending on Present_Value and Mode. A fault algorithm can set Reliability from Fault_Values.
With the CAS BACnet Stack
Section titled “With the CAS BACnet Stack”Enable it with the STACK_OPTION_OBJECT_TYPE_LIFE_SAFETY_POINT build option and add each object with BACnetStack_AddObject. Serve Present_Value with the callback you register with BACnetStack_RegisterCallbackGetPropertyEnumerated and the BACnetStack_RegisterCallbackSetPropertyEnumerated callback, and Object_Name with the BACnetStack_RegisterCallbackGetPropertyCharacterString callback. Handle silence and reset requests with BACnetStack_RegisterCallbackLifeSafetyOperation. Arm alarms with BACnetStack_SetAlarmsAndEventsForObjectEnabled, then BACnetStack_SetIntrinsicChangeOfLifeSafetyAlgorithm, and add BACnetStack_SetFaultLifeSafetyAlgorithm for fault values.
Related object types
Section titled “Related object types”Life Safety Zone, Notification Class, Binary Input
Properties
Section titled “Properties”The properties ASHRAE 135-2024 clause 12.15 defines for this object type.
How to read the table:
- Conformance is what the standard asks of every object of this type: R is required, W is required and writable by a client, O is optional. A digit after the letter marks a condition in the standard that decides when the property is present or writable, such as support for intrinsic reporting.
- Present by default: yes means the stack presents the property as soon as you add the object; no means it
is optional and you turn it on with
BACnetStack_SetPropertyEnabled. This is the stack’s starting setup, so it can differ from the conformance code. - Writable is whether a client can write the property by default. Change it with
BACnetStack_SetPropertyWritable. - not in profile means the stack does not offer this property for this object type.
- Value when your callback does not answer: “Held by the stack” means the stack stores and serves the value itself and does not ask your callbacks. Otherwise it is the value the stack answers when your callback declines or is not registered.
| Property | Datatype | Conformance | Present by default | Writable | Value when your callback does not answer |
|---|---|---|---|---|---|
| Object_Identifier | BACnetObjectIdentifier | R | yes | no | Held by the stack. |
| Object_Name | CharacterString | R | yes | no | "Object <type>,<instance>", such as "Object 0,1" for Analog Input 1. |
| Object_Type | BACnetObjectType | R | yes | no | Held by the stack. |
| Present_Value | BACnetLifeSafetyState | R | yes | no | No default: value-not-initialized. |
| Tracking_Value | BACnetLifeSafetyState | R1 | yes | no (yes while Out_Of_Service is true) | 0 |
| Description | CharacterString | O | no | no | "" |
| Device_Type | CharacterString | O | no | no | "" |
| Status_Flags | BACnetStatusFlags | R | yes | no | Built by the stack from your callbacks. |
| Event_State | BACnetEventState | R | yes | no | 0 |
| Reliability | BACnetReliability | R1 | yes | no (yes while Out_Of_Service is true) | 0 |
| Out_Of_Service | Boolean | R | yes | no | false |
| Mode | BACnetLifeSafetyMode | W | yes | yes | 0 |
| Accepted_Modes | BACnetLIST of BACnetLifeSafetyMode | R | yes | no | 0 |
| Time_Delay | Unsigned | O2,5 | no | no | 0 |
| Notification_Class | Unsigned | O2,5 | no | no | 0 |
| Life_Safety_Alarm_Values | BACnetLIST of BACnetLifeSafetyState | O2,5 | no | no | 0 |
| Alarm_Values | BACnetLIST of BACnetLifeSafetyState | O2,5 | no | no | 0 |
| Fault_Values | BACnetLIST of BACnetLifeSafetyState | O | no | no | 0 |
| Event_Enable | BACnetEventTransitionBits | O2,5 | no | no | An empty bit string. |
| Acked_Transitions | BACnetEventTransitionBits | O2,5 | no | no | An empty bit string. |
| Notify_Type | BACnetNotifyType | O2,5 | no | no | 0 |
| Event_Time_Stamps | BACnetARRAY[3] of BACnetTimeStamp | O2,5 | no | no | No default: the read fails. |
| Event_Message_Texts | BACnetARRAY[3] of CharacterString | O5 | no | no | "" |
| Event_Message_Texts_Config | BACnetARRAY[3] of CharacterString | O5 | no | no | "" |
| Event_Detection_Enable | Boolean | O2,5 | no | no | false |
| Event_Algorithm_Inhibit_Ref | BACnetObjectPropertyReference | O5 | no | no | No default: the read fails. |
| Event_Algorithm_Inhibit | Boolean | O5,6 | no | no | false |
| Time_Delay_Normal | Unsigned | O5 | no | no | 0 |
| Reliability_Evaluation_Inhibit | Boolean | O | no | no | false |
| Silenced | BACnetSilencedState | R | yes | no | 0 |
| Operation_Expected | BACnetLifeSafetyOperation | R | yes | no | 0 |
| Maintenance_Required | BACnetMaintenance | O | no | no | 0 |
| Setting | Unsigned8 | O | no | no | 0 |
| Direct_Reading | Real | O3 | no | no | 0.0 |
| Units | BACnetEngineeringUnits | O3 | no | no | 95 (no units) |
| Member_Of | BACnetLIST of BACnetDeviceObjectReference | O | no | no | No default: the read fails. |
| Floor_Number | Unsigned8 | O | no | no | 0 |
| Property_List | BACnetARRAY[N] of BACnetPropertyIdentifier | R | yes | no | Held by the stack. |
| Value_Source | BACnetValueSource | O7,8,9 | no | no | No default: the read fails. |
| Audit_Level | BACnetAuditLevel | O10 | not in profile | not in profile | No default: the read fails. |
| Auditable_Operations | BACnetAuditOperationFlags | O10 | not in profile | not in profile | No default: the read fails. |
| Tags | BACnetARRAY[N] of BACnetNameValue | O | no | no | No default: the read fails. |
| Profile_Location | CharacterString | O | no | no | "" |
| Profile_Name | CharacterString | O | no | no | "" |