Skip to content

Feature request: Allow write to modify properties other than Present_Value #41

@wz2b

Description

@wz2b

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions