Skip to content
Version 6.1.0
Contact Us

Color Temperature

A Color Temperature object controls the colour of white light, in Kelvin. A lighting device uses it so a client can make light warmer or cooler. It can be set directly or faded with a colour command.

  • Warm white in the evening, cool white at midday
  • Tunable white panels
  • Match light to a daily rhythm
  • Fade between two white tones
Property What it holds
Present_Value The target colour temperature in Kelvin. The standard allows 1000 to 30000.
Color_Command Starts a fade or ramp to a new colour temperature.
Tracking_Value The colour temperature the output has reached right now while it fades.
In_Progress Shows whether a fade is under way.
Default_Color_Temperature The value used when the object has no other instruction.

The standard defines no intrinsic event algorithm for this type. A lighting output points to a Color Temperature object to say which one controls its white tone.

Enable it with the STACK_OPTION_OBJECT_TYPE_COLOR_TEMPERATURE build option and add each object with BACnetStack_AddObject. Present_Value is Unsigned, so serve it through the callback you register with BACnetStack_RegisterCallbackGetPropertyUnsignedInteger, and serve the other properties through the callback that matches each datatype. Color_Command cannot be served: there is no callback for a colour command, so a client cannot fade or ramp the object through it in this release.

Color, Lighting Output, Binary Lighting Output, Channel

The properties ASHRAE 135-2024 clause 12.66 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 Unsigned W yes yes No default: value-not-initialized.
Tracking_Value Unsigned R yes no 0
Color_Command BACnetColorCommand W yes yes No default: the read fails.
In_Progress BACnetColorOperationInProgress R yes no 0
Default_Color_Temperature Unsigned R yes no 0
Description CharacterString O no no ""
Default_Fade_Time Unsigned R yes no 0
Default_Ramp_Rate Unsigned R yes no 0
Default_Step_Increment Unsigned R yes no 0
Min_Pres_Value Unsigned O1 no no 0
Max_Pres_Value Unsigned O1 no no 0
Transition BACnetColorTransition O no no 0
Value_Source BACnetValueSource O2,3,4 no no No default: the read fails.
Audit_Level BACnetAuditLevel O5 no no 0
Auditable_Operations BACnetAuditOperationFlags O5 no no An empty bit string.
Tags BACnetARRAY[N] of BACnetNameValue O no no No default: the read fails.
Property_List BACnetARRAY[N] of BACnetPropertyIdentifier R yes no Held by the stack.
Profile_Location CharacterString O no no ""
Profile_Name CharacterString O no no ""