Closed brandonbeattie22 closed 2 years ago
I understand that your radio devices a "virtual devices" running on a "virtual network" inside the router application, which is perfectly fine, and being able to use YABE (along with some Wireshark captures of the BACnet traffic being correct) reinforces that conclusion. BACnet addresses have two pieces, a network portion (unsigned 16-bit integer) and a MAC address that can vary in size depending on the network (so little networks have little single-octet numbers, Ethernet and IPv4 six octets, etc).
In order for them to talk to your virtual devices, they have to know the IP address of your router and the virtual network number and the MAC address your devices are providing, and from your description it sounds like they can't handle BACnet devices that are on non-IPv4 networks, which is quite seriously broken and you can be justifiably irritated.
There are two solutions:
Option 1 is non-trivial to get right, especially because all of the virtual devices will be on the same IPv4 network and share a broadcast listening socket (i.e., x.y.z.255) and the other vendor may still complain because they don't want to deal with all of the devices individually, just as an aggregated pool of stuff they can cherry pick from.
Your only realistic option is 2.
Thank you for your super speedy and very helpful answer! That makes a lot of sense and seems not too difficult to implement using your library. I'll close this issue.
I am very new to BACNet and trying to familiarize myself with its concepts as I have been tossed into a situation involving BACNet and this library. I am very sorry if these types of questions are not allowed.
Issues #77 and #184 seem very similar to my setup and I am trying to read and understand them. I have something very similar to IP2VLANRouter.py running on a raspberry pi, but with some radio devices with their various readings instead of random devices as in the sample. In order to integrate this setup into our building, we have sent some units over for testing and were told that due to how the devices show up, they aren't able to integrate. They show up in YABE but apparently with a MAC address of 1, 2, 3, or 4 instead of an actual IP address. I am struggling to find out how to update this code to bring it up to their standards. I am able to use YABE to read the values perfectly fine, so I am not 100% on what the actual issue is.
The actual wording of the complaint from with whom I am trying to get the system integrated with is "We should be able to discover the raspberry pie and that device should be able to populate the data for all your transceivers. Currently we see the transceivers as individual devices that would each require a unique IP address."