BACnet Channel Object

The BACnet Channel object (Clause 12.53) forwards one written value to a group of properties via the WriteGroup service, with its property tables.

What the Channel Object Is

The Channel object, defined in Clause 12.53 of ANSI/ASHRAE 135-2024, is how a BACnet device forwards a single received value to a whole collection of object properties at once. Writing one value to the Channel’s Present_Value distributes it to every property listed in List_Of_Object_Property_References, coercing the datatype as needed for each target. It is the standard way to drive many outputs from one write, most often in lighting control.

The Channel does not maintain a state and does not contain a priority array. Each Channel is tied to a logical channel number (0 to 65535) and can belong to one or more control groups, which is what lets the WriteGroup service address many Channels together. Channel objects that support intrinsic reporting apply the NONE event algorithm, so their intrinsic reporting is limited to fault conditions.

Where You’ll See It

  • Lighting scenes. A lighting controller carrying the B-LS Lighting Supervisor profile uses Channels to push one level to a group of Lighting Output objects simultaneously.
  • Group writes. A supervisor issues a WriteGroup to a control group, and every Channel in that group forwards the value to its referenced properties.
  • Mixed-type distribution. One Channel can drive an analog level, a binary state, and a multi-state value together, coercing the written value to each target’s datatype.

How Commanding Works

The Channel is a value-distribution object, not a stateful commandable output, so it has no priority array of its own. When Present_Value is written by WriteProperty, WritePropertyMultiple, or WriteGroup, the Channel immediately writes that value to each property in List_Of_Object_Property_References. If the write carried a priority, the Channel uses that same priority when commanding the referenced properties, so it fans the priority through to the real commandable objects behind it. Write_Status reports whether the fan-out is idle, in progress, or failed, Last_Priority reports the priority of the most recent write, and the optional Execution_Delay array can stagger the writes across the targets.

Required Properties

Clause 12.53 requires every Channel 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 channel for this object
Present_ValueBACnetChannelValueThe value written in, then forwarded to every referenced property. Writable
Last_PriorityUnsignedThe priority of the most recent write to Present_Value
Write_StatusBACnetWriteStatusWhether the fan-out write is idle, in progress, failed, or successful
Status_FlagsBACnetStatusFlagsFour health flags: in-alarm, fault, overridden, out-of-service
Out_Of_ServiceBOOLEANWhen true, the Channel stops forwarding writes to its targets
List_Of_Object_Property_ReferencesBACnetARRAY[N] of BACnetDeviceObjectPropertyReferenceThe target properties the written value is forwarded to. Writable
Channel_NumberUnsignedThe logical channel number (0 to 65535) this object serves. Writable
Control_GroupsBACnetARRAY[N] of UnsignedThe control groups this Channel belongs to for WriteGroup. Writable
Property_ListBACnetARRAY[N] of BACnetPropertyIdentifierThe list of properties this instance actually implements

Optional Properties

The properties integrators meet most are Execution_Delay and Allow_Group_Delay_Inhibit, which stage and gate the fan-out writes. The intrinsic-reporting group generally appears or is absent as a set and reports faults only. The Audit_Level, Auditable_Operations, and Audit_Priority_Filter properties are the audit-logging controls added in 135-2024.

PropertyDatatypeGroup
DescriptionCharacterStringGeneral
ReliabilityBACnetReliabilityFault detection
Execution_DelayBACnetARRAY[N] of UnsignedChannel
Allow_Group_Delay_InhibitBOOLEANChannel
Event_Detection_EnableBOOLEANIntrinsic reporting
Notification_ClassUnsignedIntrinsic reporting
Event_EnableBACnetEventTransitionBitsIntrinsic reporting
Event_StateBACnetEventStateIntrinsic 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
Reliability_Evaluation_InhibitBOOLEANFault detection
Value_SourceBACnetValueSourceCommanding
Audit_LevelBACnetAuditLevelAuditing
Auditable_OperationsBACnetAuditOperationFlagsAuditing
Audit_Priority_FilterBACnetOptionalPriorityFilterAuditing
TagsBACnetARRAY[N] of BACnetNameValueTagging and profile
Profile_LocationCharacterStringTagging and profile
Profile_NameCharacterStringTagging and profile
  • Lighting Output: a common fan-out target when a Channel drives a lighting group.
  • Binary Lighting Output: the on/off lighting target a Channel can switch as a group.
  • Analog Output: any commandable output can be a Channel target; the Channel forwards the priority to it.

What Chipkin Provides

The Channel object, including its property fan-out and WriteGroup control-group membership, is a first-class object type in the CAS BACnet Stack. Talk to us about modeling your device’s points.