I'm trying to send BACnet commands through a Siemens Insight Server to a device with a VMAC address. The device is discoverable with a BACnet browser. Also, BACnet commands work fine with the device using VTS by specifying the VMAC address on the NPCI tab for reading and writing properties.. Unfortunately, I cannot access the device at all using its VMAC address from a Java program using BACnet4J.

Perusing the BACnet4J code, I came across the following:


  • Network layer protocol control information. This class currently only implements the reading of information.
  • @author mlohbihler
    public class NPCI {

Looking at the BACnet4J code further, it appears that the BBMD functionality in BACnet4J knows how to read a message containing a VMAC for the purpose of forwarding it on (as it's required to do) but, as the comment above indicates, it has no mechanism for writing to a device with a VMAC address.

Does anyone know if there is a way to write to a device with a VMAC address using BACnet4J?

Devices with VMAC addresses appear to be fairly common in large BACnet installations due to the existence a large amount of legacy non-BACnet equipment. Surely BACnet4J must have some means off handling these sorts of installations.