I’m using some python code on a ConnectPort X to read some modbus devices using a Zigbee -> RS-485 adapter.
I’d like to read some BACNet devices in a similar manner. I’ve taken a look at the BACpypes python library and all the examples are using IP. I couldn’t find any examples that used BACnet MS/TP and RS-485.
Has anyone done anything like this?
True BACnet MS/TP is a timing nightmare (per some Digi embedded customers who use a Digi Connect ME for BACnet MS/TP). Packets are expected to move with millisecond accuracy - which won’t survive normal Zigbee. You would not likely be able to just use simple ‘encapsulation’ to a BACnet RS-485 device which was not aware of the ZigBee link.
However, bacnet.org has created a BACnet spec for how to encapsulate BACnet packets over ZigBee. The catch is the remote node would be expecting this special form, not MS/TP.
On to plan B… I’ve been working on getting an ethernet connection to the BACnet controller. It looks like that will be the way to go in the long run.