BACnet Analog Input Object

The BACnet Analog Input object (Clause 12.2) represents a measured value like a temperature sensor: required and optional properties with datatypes.

What the Analog Input Object Is

The Analog Input object, defined in Clause 12.2 of ANSI/ASHRAE 135-2024, is the standardized way a BACnet device represents an analog input: a measured value coming into the device from the physical world. A temperature sensor wired to a controller shows up on the network as an Analog Input object whose Present_Value is the temperature.

It is usually the first object type anyone meets. Discover a controller, open its object list, and the rows of measured values are Analog Inputs. An Analog Input can also raise its own alarm when the value leaves configured limits; this is called intrinsic reporting, uses the OUT_OF_RANGE event algorithm, and delivers the alarm through the event notification services.

Where You’ll See It

  • Sensors on controllers. Space temperatures, duct pressures, flow rates, humidity: each physical analog input channel on a controller typically maps to one Analog Input object. Reading one is a ReadProperty exchange; watching one efficiently is a COV (Change of Value) subscription, where the device pushes updates instead of being polled.
  • Gateways. A gateway exposing Modbus or M-Bus meter readings to a BMS commonly presents them as Analog Inputs so the head end (the central BMS server) treats them like any other sensor.
  • Trend sources. Trend Logs most often record Analog Input Present_Values, read back with ReadRange.

Required Properties

Clause 12.2 requires every Analog Input object to provide these properties. Datatypes are the spec’s names: REAL is a floating-point number, Unsigned an integer, BOOLEAN a true/false flag, and the BACnet-prefixed types are structured values defined by the standard.

PropertyDatatypeWhat it holds
Object_IdentifierBACnetObjectIdentifierThe object’s type and instance number, unique within the device
Object_NameCharacterStringThe human-readable point name, unique within the device
Object_TypeBACnetObjectTypeAlways analog-input for this object
Present_ValueREALThe measured value. Read-only in normal operation; required to be writable while Out_Of_Service is true
Status_FlagsBACnetStatusFlagsFour health flags: in-alarm, fault, overridden, out-of-service
Event_StateBACnetEventStateThe object’s current event state (normal, high-limit, low-limit, or fault for this object type)
Out_Of_ServiceBOOLEANWhen true, Present_Value is decoupled from the physical input for testing and override
UnitsBACnetEngineeringUnitsThe engineering units of the value (degrees, pascals, percent), as reported by the device; verify against what the head end assumes
Property_ListBACnetARRAY[N] of BACnetPropertyIdentifierThe list of properties this instance actually implements

Optional Properties

The optional set is where vendors differ, and it is what separates a bare sensor point from one that can alarm and report on its own. The ones integrators meet most are COV_Increment (how much the value must change before a COV notification fires), the alarm-limit group (High_Limit, Low_Limit, Deadband, Limit_Enable), and Reliability, which names the reason whenever the fault flag in Status_Flags is set. The intrinsic-reporting group generally appears or is absent as a set: a device that supports intrinsic reporting on this object implements the group, and one that does not omits it. (Interface_Value, in the Integration group, reports the live physical input even while Out_Of_Service is true.)

PropertyDatatypeGroup
DescriptionCharacterStringGeneral
Device_TypeCharacterStringGeneral
Update_IntervalUnsignedGeneral
ResolutionREALGeneral
Min_Pres_ValueREALValue range
Max_Pres_ValueREALValue range
COV_IncrementREALCOV reporting
Time_DelayUnsignedIntrinsic reporting
Notification_ClassUnsignedIntrinsic reporting
High_LimitREALIntrinsic reporting
Low_LimitREALIntrinsic reporting
DeadbandREALIntrinsic reporting
Limit_EnableBACnetLimitEnableIntrinsic reporting
Event_EnableBACnetEventTransitionBitsIntrinsic reporting
Acked_TransitionsBACnetEventTransitionBitsIntrinsic reporting
Notify_TypeBACnetNotifyTypeIntrinsic reporting
Event_Time_StampsBACnetARRAY[3] of BACnetTimeStampIntrinsic reporting
Event_Message_TextsBACnetARRAY[3] of CharacterStringIntrinsic reporting
Event_Message_Texts_ConfigBACnetARRAY[3] of CharacterStringIntrinsic reporting
Event_Detection_EnableBOOLEANIntrinsic reporting
Event_Algorithm_Inhibit_RefBACnetObjectPropertyReferenceIntrinsic reporting
Event_Algorithm_InhibitBOOLEANIntrinsic reporting
Time_Delay_NormalUnsignedIntrinsic reporting
ReliabilityBACnetReliabilityFault detection
Fault_High_LimitREALFault detection
Fault_Low_LimitREALFault detection
Reliability_Evaluation_InhibitBOOLEANFault detection
Audit_LevelBACnetAuditLevelAuditing
Auditable_OperationsBACnetAuditOperationFlagsAuditing
Interface_ValueBACnetOptionalREALIntegration
TagsBACnetARRAY[N] of BACnetNameValueTagging and profile
Profile_LocationCharacterStringTagging and profile
Profile_NameCharacterStringTagging and profile
  • Analog Output: the commandable counterpart driving a physical output.
  • Analog Value: an analog point with no physical input behind it (setpoints, calculated values).
  • Binary Input: the two-state equivalent for contacts and statuses.
  • Multi-state Input: the equivalent for inputs with a small set of named states (off / low / high) rather than a measured number.

What Chipkin Provides

The Analog Input object is a first-class object type in the CAS BACnet Stack, including the OUT_OF_RANGE intrinsic reporting algorithm. Talk to us about modeling your device’s points.