A containerized VOLTTRON edge platform with the Grasshopper BACnet network monitoring agent.
The ACE IoT Sentinel Container packages:
- VOLTTRON 9.0.4 - Open-source agent platform for smart buildings
- Grasshopper Agent - BACnet/IP network discovery and monitoring
- ACE Config Agent - Centralized configuration and JWT management
- Web UI - Interactive visualization of discovered BACnet devices
✅ Full BACnet/IP Discovery - Scans network and identifies all devices ✅ Web-Based Visualization - Interactive network topology viewer ✅ ACE IoT Manager Integration - Automatic JWT rotation and data upload ✅ Environment-Based Config - Easy deployment with env vars ✅ Production Ready - Security hardened, health checks, data persistence
- Docker or Podman
- Access to a BACnet/IP network
- Network configuration allowing BACnet broadcasts (UDP port 47808)
- Recommended: Linux host for production deployments
- Create your configuration file:
cp .env.example .env- Edit
.envand configure at minimum:
# Set your BACnet network address
BACNET_ADDRESS=192.168.1.100/24:47808
# Confirm web UI port
WEBAPP_PORT=5000- Start the container:
docker-compose up -d- Access the Grasshopper web UI:
http://localhost:5000
📚 Configuration
- Configuration Reference - Complete guide to all environment variables
- Network Configuration - Host, MACVLAN, and IPVLAN networking modes
📚 Deployment Scenarios
- Host Network Mode - Simple deployment (default)
- MACVLAN Network - Production deployment with isolated IP
- IPVLAN L2 Network - Alternative to MACVLAN
- Multi-Container - Deploy multiple sentinels
📚 Integration
- ACE IoT Manager Integration - Connect to ACE Manager platform
📚 Guides
- Deployment Guide - Step-by-step production deployment
- Troubleshooting - Common issues and solutions
Official images are available on GitHub Container Registry:
# Pull latest version
docker pull ghcr.io/ace-iot-solutions/aceiot-sentinel:latest
# Run with host networking
docker run -d \
--name aceiot-sentinel \
--network host \
-e BACNET_ADDRESS=192.168.1.100/24:47808 \
-v sentinel-data:/home/volttron/.aceiot-sentinel-volttron \
ghcr.io/ace-iot-solutions/aceiot-sentinel:latestPlatform Support:
- linux/amd64
- linux/arm64
The only required configuration is BACNET_ADDRESS. This must be set to an IP address on your BACnet network.
Format: IP/CIDR:PORT
Examples:
# Standard BACnet/IP on network 192.168.1.0/24
BACNET_ADDRESS=192.168.1.100/24:47808
# Different subnet
BACNET_ADDRESS=10.0.50.25/16:47808
# Custom port
BACNET_ADDRESS=192.168.1.100/24:47809See CONFIGURATION.md for all available options.
For issues, questions, or contributions:
See LICENSE file for details.
Built by ACE IoT Solutions
- Grasshopper Agent: Justice Lee, Jackson Giles, Andrew Rodgers
- Based on VOLTTRON platform (PNNL)
- BACpypes3 library