I'm interested with this project and tried to start some of the examples, like the ThermostatDevice custom class.
I noticed though, that the outOfService object property seems to be readonly, trying to write to this property results in an ERROR_CODE_WRITE_ACCESS_DENIED. Looking at the source code this seems to be caused by the configuratio nof BDSingletProperty writable parameter as false in object.js:
bacnet:transport:debug server got message from 10.1.2.79:51451: 810a0016010400756f0f0c0000000119513e113f4910 +10s
bacnet:client:trace handlePdu Header: {
func: 10,
sender: { address: '10.1.2.79:51451', forwardedFrom: null },
apduType: 0,
expectingReply: true
} +10s
bacnet:client:trace Received service requestwith invokeId 111: writeProperty +2ms
bacnet:client:trace Handled service requestwith invokeId 111: writeProperty {"len":4,"type":0,"service":15,"maxSegments":112,"maxApdu":5,"invokeId":111,"sequencenumber":0,"proposedWindowNumber":0,"header":{"func":10,"sender":{"address":"10.1.2.79:51451","forwardedFrom":null},"apduType":0,"expectingReply":true,"confirmedService":true},"payload":{"len":12,"objectId":{"type":0,"instance":1},"value":{"property":{"id":81,"index":4294967295},"value":[{"type":1,"value":true}],"priority":16}}} +12ms
bacnet:client:trace listener count by name emits writeProperty with content. {
bacnet:client:trace len: 4,
bacnet:client:trace type: 0,
bacnet:client:trace service: 15,
bacnet:client:trace maxSegments: 112,
bacnet:client:trace maxApdu: 5,
bacnet:client:trace invokeId: 111,
bacnet:client:trace sequencenumber: 0,
bacnet:client:trace proposedWindowNumber: 0,
bacnet:client:trace header: {
bacnet:client:trace func: 10,
bacnet:client:trace sender: { address: '10.1.2.79:51451', forwardedFrom: null },
bacnet:client:trace apduType: 0,
bacnet:client:trace expectingReply: true,
bacnet:client:trace confirmedService: true
bacnet:client:trace },
bacnet:client:trace payload: {
bacnet:client:trace len: 12,
bacnet:client:trace objectId: { type: 0, instance: 1 },
bacnet:client:trace value: {
bacnet:client:trace property: { id: 81, index: 4294967295 },
bacnet:client:trace value: [ { type: 1, value: true }, [length]: 1 ],
bacnet:client:trace priority: 16
bacnet:client:trace }
bacnet:client:trace }
bacnet:client:trace } +2ms
bacnet:device:device req #+10s: writeProperty
bacnet:device:device error while handling request: Error: not writable
Is there any way to actually make outOfService writable without having to make a custom clone of the built-in basic object?
I'm interested with this project and tried to start some of the examples, like the ThermostatDevice custom class.
I noticed though, that the outOfService object property seems to be readonly, trying to write to this property results in an
ERROR_CODE_WRITE_ACCESS_DENIED. Looking at the source code this seems to be caused by the configuratio nofBDSingletPropertywritable parameter as false inobject.js:Is there any way to actually make outOfService writable without having to make a custom clone of the built-in basic object?