 
					
							Reading a property tells you what a building system is doing — writing a property tells it what to do next.
In the BACnet protocol, the WriteProperty service enables supervisory controllers or Building Management Systems (BMS) to change values within field devices. This can include adjusting a room’s temperature setpoint, switching lighting modes, or updating occupancy schedules.
The service lies at the heart of building automation, where interoperability and real-time control must coexist.
For a complete overview of BACnet fundamentals, see What is BACnet?.
 
											“WriteProperty is where monitoring turns into control. It’s the point where BACnet systems move from observing to acting — giving intelligence to automation.“
The WriteProperty service is one of the most powerful functions in the BACnet protocol. It allows a BACnet device — typically a Building Management System (BMS) or supervisory controller — to change the value of a property on another BACnet device.
This capability transforms the network from a passive monitoring tool into an active control system. For instance, a BMS can:
Each WriteProperty request contains a structured set of fields that identify exactly what is being written and where:
BACnet distinguishes between two versions of this service:
For more context on how these services interact in the BACnet stack, see BACnet Protocol Basics.
The WriteProperty service is transmitted using a BACnet APDU (Application Protocol Data Unit). This packet defines how a command is encapsulated and interpreted between devices on the network. While the detailed encoding depends on whether the service is confirmed or unconfirmed, the overall structure remains consistent.
| Field | Description | 
|---|---|
| PDU Type | Specifies whether the message is a Confirmed Request or Unconfirmed Request. | 
| Invoke ID | Unique transaction number linking request and acknowledgment (used only in confirmed services). | 
| Service Choice | Identifies the service invoked — here, WriteProperty (service choice = 15). | 
| Service Data | Contains encoded details: object, property, and value to be written. | 
The Service Data portion is where the actual payload resides — it’s composed of several encoded elements:
This APDU structure ensures reliable, standardized communication between multi-vendor BACnet devices — a key reason why BACnet remains the preferred protocol for open building automation systems.
The WriteProperty service data follows the TLV (Tag–Length–Value) encoding model used throughout BACnet.
 This structure ensures that each piece of information in the message — from the object being targeted to the value being written — is self-describing and machine-parsable, allowing devices from different manufacturers to communicate seamlessly.
Below is a simplified view of the key fields within the WriteProperty service data section:
| Parameter | Description | 
|---|---|
| Object Identifier | Specifies which BACnet object to modify (e.g., Analog Output 1). | 
| Property Identifier | Defines the target property (e.g., presentValue). | 
| Array Index (optional) | Used when the property is an array (e.g., specific day in a weekly schedule). | 
| Property Value | The new value to write, encoded according to BACnet data type (Boolean, Real, Enumerated, etc.). | 
| Priority (optional) | Command priority from 1 (highest) to 16 (lowest). | 
For instance, if a BMS writes a temperature setpoint of 22.5°C to an Analog Value object:
This modular encoding allows the same WriteProperty service to handle a wide range of data — from Boolean switches to complex schedule structures — with total interoperability across devices.
Let’s walk through a simple WriteProperty exchange where a Building Management System (BMS) sends a new temperature setpoint to a BACnet device such as a room temperature controller.
| Step | Description | 
|---|---|
| 1 | BMS sends a Confirmed-Request APDU targeting Analog Value 1 and property presentValue = 22.5°C. | 
| 2 | Device receives the message, validates access rights, type, and range. | 
| 3 | Device updates internal logic or actuator outputs with the new value. | 
| 4 | Device sends back a ComplexAck or Error PDU depending on success. | 
WriteProperty-Request ::= {
object-identifier: analogValue, instance 1
property-identifier: presentValue
property-value: REAL, 22.5
priority: 8
}
This process illustrates how WriteProperty enables real-time control and synchronization between management platforms and field devices — a cornerstone of modern BACnet-based automation.
Because the WriteProperty service directly modifies device behavior, BACnet includes robust mechanisms for security, validation, and error management. These ensure that only authorized and valid operations take effect.
Each object represents a logical function of a device. Some of the most frequently used include:
| Error Type | Typical Cause | 
|---|---|
| write-access-denied | Property is read-only or blocked by access control settings. | 
| invalid-data-type | Request value type doesn’t match the property’s expected data type. | 
| value-out-of-range | Value exceeds the allowed range for the property. | 
| unknown-property | Property identifier is not valid for that object type. | 
| device-busy | Device cannot process the request at that moment. | 
| other | Vendor-specific or implementation-defined error. | 
Each BACnet device maintains Write Access Rights that define which objects or properties can be modified — and by whom. Access may be limited to:
If access control fails, the target device sends back a BACnet Error PDU with a detailed reason code.
Error ::= {
pdu-type: Error,
service-choice: WriteProperty,
error-class: property,
error-code: write-access-denied
}
By incorporating these validation layers, BACnet ensures that WriteProperty operations remain safe, predictable, and compliant across multi-vendor environments — a key requirement for large-scale IoT and building management networks.
The WriteProperty service is at the core of automation and control within BACnet-based Building Management Systems.
 It transforms passive monitoring into active decision-making, enabling real-time adjustments to environmental and operational parameters.
| Application | Example of WriteProperty Action | 
|---|---|
| HVAC Control | Adjust temperature or humidity setpoints on Analog Value objects. | 
| Lighting Systems | Switch lights ON/OFF or adjust brightness through Binary/Analog Outputs. | 
| Scheduling | Update occupancy or time-based schedules via Schedule objects. | 
| Energy Optimization | Modify demand-response thresholds or energy limits. | 
| Security Systems | Control locks, alarms, or access relays through Binary Outputs. | 
| Remote Commissioning | Write configuration parameters to field devices remotely. | 
When BACnet is extended over LoRaWAN® or other IoT communication layers — as done by Actility’s ThingPark Enterprise (TPE) and BACnet/LoRaWAN gateways —
 the WriteProperty service can be used to control remote, low-power devices located far beyond standard wired networks.
This means a single BMS can:
By bridging BACnet and LoRaWAN, Actility brings WriteProperty’s power of control and interoperability to massive-scale IoT deployments, unlocking new possibilities for smart buildings, campuses, and cities.
The BACnet WriteProperty service is the mechanism that brings intelligence and control to the network layer of smart buildings. Combined with technologies like LoRaWAN® through Actility’s IoT solutions, it enables scalable, secure, and vendor-neutral control across distributed infrastructures.
WriteProperty allows a BACnet device, such as a Building Management System (BMS), to change the value of a property on another device. It’s the service that turns monitoring into actionable control — adjusting setpoints, modes, or schedules across a BACnet network.
No. Only writable properties defined by the BACnet object model can be modified. Read-only properties (e.g., object identifiers, status flags) cannot be changed. Devices may also restrict write access based on configuration or user permissions.
A Confirmed WriteProperty requires an acknowledgment or error response, ensuring reliability.
 An Unconfirmed WriteProperty sends the same command without expecting a reply — useful in cases where speed or bandwidth matters more than confirmation.
If access control, data validation, or range checks fail, the target device responds with a BACnet Error PDU, including an error-class (e.g., property) and error-code (e.g., write-access-denied). The sender can log or retry the command.
In solutions like Actility’s ThingPark Enterprise, a WriteProperty command can be transmitted from a cloud BMS through a LoRaWAN® gateway, allowing operators to change parameters in remote or battery-powered BACnet devices, even across long distances.
BACnet supports multiple application data types: Boolean, Unsigned, Integer, Real, Double, Enumerated, Bit String, Character String, and more. The tag in the TLV encoding identifies which type is being used.
When multiple WriteProperty commands target the same property, the highest-priority active command determines the property’s current value. Lower-priority commands remain stored until higher ones are relinquished, restoring their influence.
Both. It can configure device parameters (like calibration constants or limits) or perform real-time control actions (like adjusting fan speed or temperature). Its flexibility makes it a cornerstone of dynamic building automation.
 
															About Actility
Actility, one of the co-inventors of LoRaWAN® technology and a founding member of the LoRa Alliance, is the leader in industrial-grade low-power wide-area network (LPWAN) connectivity and IoT tracking solutions. Actility’s ThingPark™ platform, which supports multi-radio connectivity (LoRaWAN®, NB-IoT, LTE-M), powers the majority of public networks and numerous private and enterprise networks worldwide. Through its subsidiary Abeeway, Actility offers patented ultra-low power, multi-radio trackers and comprehensive indoor and outdoor geolocation services. Additionally, the ThingPark Market boast the largest catalog of LoRaWAN® devices, gateways, and solutions available.
Media contact : marketing@actility.com – https://www.actility.com/contact/
At Actility, we are passionate about unlocking the full potential of IoT for businesses and communities around the world. Join us as we continue to innovate, collaborate, and lead the way in connecting the digital and physical realms through cutting-edge IoT solutions.
© 2025 Actility’s All Rights Reserved