Right now, write appears to be limited to updating only Present_Value. It would be very helpful if it could also write other writable object properties. The current implementation of _writePropertyMultiple() seems to be the culprit:
``javascript
that.client.writeProperty(
point.address,
point.objectId,
baEnum.PropertyIdentifier.PRESENT_VALUE,
point.values.value,
point.options,
...
);
The solution might be as simple as
```javscript
point.propertyId || baEnum.PropertyIdentifier.PRESENT_VALUE,
though I would prefer the msg uses a friendly name rather than a number.
The Problem
A practical example is Out_Of_Service:
if an object is created initially with Out_Of_Service = true there is currently no way to write it back to false
later.
This seems like a straightforward fix. The write path already has the property identifier available, so instead of restricting updates to Present_Value, it should allow updates to any supported writable property for that object.
Requested behavior
Allow write to update writable properties other than Present_Value, for example:
Out_Of_Service
and any other writable BACnet properties already represented in the object model
Why this matters
Without this, some object state can only be set at creation time and cannot be changed later, even when the property is meant to be writable.
That makes workflows like this impossible:
create object with Out_Of_Service = true
perform setup/testing
write Out_Of_Service = false to return it to service
Suggested implementation
The write handler already identifies the target property, so the logic could be generalized to update the addressed property rather than effectively treating all writes as Present_Value updates only.
Right now, write appears to be limited to updating only Present_Value. It would be very helpful if it could also write other writable object properties. The current implementation of _writePropertyMultiple() seems to be the culprit:
``javascript
that.client.writeProperty(
point.address,
point.objectId,
baEnum.PropertyIdentifier.PRESENT_VALUE,
point.values.value,
point.options,
...
);
though I would prefer the msg uses a friendly name rather than a number.
The Problem
A practical example is Out_Of_Service:
if an object is created initially with Out_Of_Service = true there is currently no way to write it back to false
later.
This seems like a straightforward fix. The write path already has the property identifier available, so instead of restricting updates to Present_Value, it should allow updates to any supported writable property for that object.
Requested behavior
Allow write to update writable properties other than Present_Value, for example:
Out_Of_Service
and any other writable BACnet properties already represented in the object model
Why this matters
Without this, some object state can only be set at creation time and cannot be changed later, even when the property is meant to be writable.
That makes workflows like this impossible:
create object with Out_Of_Service = true
perform setup/testing
write Out_Of_Service = false to return it to service
Suggested implementation
The write handler already identifies the target property, so the logic could be generalized to update the addressed property rather than effectively treating all writes as Present_Value updates only.