This Eclipse VOLTTRON agent supports capturing BACnet Traffic and uploading it to the Optigo Visual BACnet API By collecting BACnet traffic from the Eclipse VOLTTRON platform, you can use the Visual BACnet platform to monitor how your Eclipse VOLTTRON BACnet applications affect BACnet network health, including monitoring singlecast traffic generated by your applications or data acquisition workloads.
Installing this agent uses the standard process for installing agents on the VOLTTRON platform. You can review detailed instructions in the official docs
It is recommended to use the install-agent.py script in the VOLTTRON installation scripts directory.
While in the activated VOLTTRON virtual environment, run the following command:
python scripts/install-agent.py -s <agent directory> -c <config file> -i platform.visualbacnetcapture -t vbc --start --enable -f
where <agent_directory>
and <config file>
are where the agent's source directory and configuration file are stored, respectively.
By default, the configuration file is set to capture packets on ports 47808 and 47809. If that entry in the config file is missing, the agent itself will default to port 47808. All other configuraton entries have similar safe defaults.
The only entry that will not default to anything is the API key used to upload the captured data. To find the API key, log in to Visual BACnet and open the view for the capture node you've configured in the platform, under it's respective site. The API key can be found by clicking on the "Tools" tab on the top left corner of the graph.
By default, most Linux distros will only allow raw packet capture by the root user. To enable the capabilities for an arbitrary user, one must enable certain capabilities on the tcpdump executable.
This can be done from a user with sudoer permissions.
1: create the pcap
group if it doesn't exist.
sudo groupadd pcap
2: add your user to the pcap group
sudo usermod -aG pcap <volttron-agent-user>
3: set the CAP_NET_RAW
and CAP_NET_ADMIN+eip
capabilities on the tcpdump executable
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
Note: Some Linux distros store the tcpdump executable in /usr/bin, or somewhere else
You can find the location by running which tcpdump