Can you write to bacnet tags directly without using scriping system.bacnet.writeRaw?
When trying to write to bacnet objects 'present-value' property tied to tags I get Bad("Bad_NotWritable: The access level does not allow writing to the Node.")
Can you write to bacnet tags directly without using scriping system.bacnet.writeRaw?
When trying to write to bacnet objects 'present-value' property tied to tags I get Bad("Bad_NotWritable: The access level does not allow writing to the Node.")
Yes, you can.
You haven't responded in the other thread where you indicated your BACnet tags come from a 3rd party OPC UA server, in which case the fact they are BACnet is essentially irrelevant. Is this a different scenario?
Yes this is a different scenario talking directly to a bacnet device
What kind of Object are you trying to write the present-value property on?
Is there a warning in the gateway logs about the writing failing? The device you are writing to may be responding with an ErrorCode indicating WriteAccessDenied.
A analog-value object type.
Pasted below appears to be the log from the error. I can write to this value from another BACnet device but not from Ignition.
com.serotonin.bacnet4j.exception.ErrorAPDUException: ErrorAPDU(errorClass=property, errorCode=write-access-denied,errorClass=property, errorCode=write-access-denied)
at com.serotonin.bacnet4j.transport.ServiceFutureImpl.result(ServiceFutureImpl.java:83)
at com.serotonin.bacnet4j.transport.ServiceFutureImpl.get(ServiceFutureImpl.java:64)
at com.serotonin.bacnet4j.util.RequestUtils.writeProperty(RequestUtils.java:509)
at com.inductiveautomation.ignition.drivers.bacnet.BatchWriteContextImpl$execute$statusCodes$1$1.invokeSuspend(BatchWriteContext.kt:81)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
Maybe you can compare a Wireshark capture or something. This is clearly the device rejecting the write for some reason