BACnet Multi-state Input Object

The BACnet Multi-state Input object (Clause 12.18) represents an input with several named states

What the Multi-state Input Object Is

The Multi-state Input object, defined in Clause 12.18 of ANSI/ASHRAE 135-2024, is how a BACnet device represents an input that has more than two states but is not a continuous number. Where a Binary Input is either active or inactive, a Multi-state Input holds one of several discrete states: a fan running at off, low, medium, or high; a mode selector reading heat, cool, or auto.

Present_Value is an unsigned integer from 1 to Number_Of_States, and each number maps to a human label through the optional State_Text array. State 1 is the first named state, not zero. Multi-state Input objects that support intrinsic reporting apply the CHANGE_OF_STATE event algorithm, alarming when the value enters one of the configured Alarm_Values.

Where You’ll See It

  • Multi-position status. A multi-speed fan, a three-position damper, or a selector switch reporting its current position.
  • Enumerated states. A piece of equipment reporting a mode (off, starting, running, fault) as one of several named states rather than several separate contacts.
  • Fault and alarm states. With Alarm_Values and Fault_Values, specific states trigger an alarm or a fault condition.

Required Properties

Clause 12.18 requires every Multi-state Input object to provide these properties. Datatypes are the spec’s names: Unsigned is 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 multi-state-input for this object
Present_ValueUnsignedThe current state, 1 to Number_Of_States
Status_FlagsBACnetStatusFlagsFour health flags: in-alarm, fault, overridden, out-of-service
Event_StateBACnetEventStateThe object’s current event state (normal, off-normal, or fault)
Out_Of_ServiceBOOLEANWhen true, Present_Value is decoupled from the physical input for testing
Number_Of_StatesUnsignedHow many discrete states this object has
Property_ListBACnetARRAY[N] of BACnetPropertyIdentifierThe list of properties this instance actually implements

Optional Properties

The properties integrators meet most are State_Text (the label for each state number), and Alarm_Values and Fault_Values (which states are alarms or faults). The intrinsic-reporting group generally appears or is absent as a set.

PropertyDatatypeGroup
DescriptionCharacterStringGeneral
Device_TypeCharacterStringGeneral
State_TextBACnetARRAY[N] of CharacterStringState labels
Alarm_ValuesBACnetLIST of UnsignedIntrinsic reporting
Fault_ValuesBACnetLIST of UnsignedFault detection
Time_DelayUnsignedIntrinsic reporting
Notification_ClassUnsignedIntrinsic 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
Reliability_Evaluation_InhibitBOOLEANFault detection
Audit_LevelBACnetAuditLevelAuditing
Auditable_OperationsBACnetAuditOperationFlagsAuditing
Interface_ValueBACnetOptionalUnsignedIntegration
TagsBACnetARRAY[N] of BACnetNameValueTagging and profile
Profile_LocationCharacterStringTagging and profile
Profile_NameCharacterStringTagging and profile

What Chipkin Provides

The Multi-state Input object, including the State_Text label model and CHANGE_OF_STATE intrinsic reporting, is a first-class object type in the CAS BACnet Stack. Talk to us about modeling your device’s points.