A Rust-based Prometheus exporter for Go-E Controller devices. This exporter fetches power usage data from your Go-E Controller and exposes it as Prometheus metrics for monitoring and alerting.
- 🔌 Real-time power usage monitoring from Go-E Controller
- 📊 Exposes Prometheus metrics for home, grid, car, and solar power
- 🐳 Docker support with multi-architecture builds (amd64, arm64)
- ⚡ Lightweight and efficient (built with Rust)
- 🔄 Configurable polling interval (default: 30 seconds)
- 📈 Perfect for integration with Grafana dashboards
The exporter provides the following Prometheus metrics:
| Metric Name | Description | Unit |
|---|---|---|
home_power_usage |
Total home power consumption | Watts |
grid_power_usage |
Power drawn from/fed to the grid | Watts |
car_power_usage |
Power used for EV charging | Watts |
solar_power_gauge |
Solar power generation | Watts |
docker run -d \
--name go-e-exporter \
-p 9186:9186 \
-e GOE_CONTROLLER_IP=192.168.1.100 \
ghcr.io/oleggtro/go-e-prometheus-exporter:v0.1.0version: '3.8'
services:
go-e-exporter:
image: ghcr.io/oleggtro/go-e-prometheus-exporter:v0.1.0
container_name: go-e-exporter
ports:
- "9186:9186"
environment:
- GOE_CONTROLLER_IP=192.168.1.100
restart: unless-stopped| Variable | Required | Description | Default |
|---|---|---|---|
GOE_CONTROLLER_IP |
✅ | IP address of your Go-E Controller | - |
RUST_LOG |
❌ | Log level (error, warn, info, debug, trace) | info |
export GOE_CONTROLLER_IP=192.168.1.100
export RUST_LOG=debug- Rust 1.70+ (2024 edition)
- Cargo
# Clone the repository
git clone https://github.com/oleggtro/go-e-prometheus-exporter.git
cd go-e-prometheus-exporter
# Build the project
cargo build --release
# Run the exporter
GOE_CONTROLLER_IP=192.168.1.100 ./target/release/go-e-prometheus-exporter# Build for multiple architectures
chmod +x build-docker-image.sh
./build-docker-image.shAdd the following job to your prometheus.yml:
scrape_configs:
- job_name: 'go-e-controller'
static_configs:
- targets: ['localhost:9186']
scrape_interval: 30s
scrape_timeout: 10sThe exported metrics work perfectly with Grafana dashboards. Here's a sample query to get you started:
# Home power consumption over time
home_power_usage
# Solar generation vs home consumption
home_power_usage + solar_power_gauge
# Grid power (positive = import, negative = export)
grid_power_usage
The exporter exposes metrics on:
- URL:
http://localhost:9186/metrics - Format: Prometheus text format
Example output:
# HELP home_power_usage shows the whole home power usage
# TYPE home_power_usage gauge
home_power_usage 2450.5
# HELP grid_power_usage shows the power taken from the grid
# TYPE grid_power_usage gauge
grid_power_usage 1200.3
# HELP car_power_usage shows the power used by the car charging
# TYPE car_power_usage gauge
car_power_usage 7400.0
# HELP solar_power_gauge shows the power generated by solar
# TYPE solar_power_gauge gauge
solar_power_gauge 3800.2
The exporter supports all Go-E Controller power categories:
- Home: Total household consumption
- Grid: Grid import/export
- Car: EV charging power
- Solar: Solar panel generation
- Akku: Battery storage
- Custom 1-10: Custom power categories
Exporter won't start
# Check if the Go-E Controller IP is reachable
curl http://192.168.1.100/api/status
# Verify environment variable
echo $GOE_CONTROLLER_IPNo metrics appearing
# Check exporter logs
docker logs go-e-exporter
# Test metrics endpoint
curl http://localhost:9186/metricsConnection refused
- Ensure your Go-E Controller is on the same network
- Verify the IP address is correct
- Check firewall settings
Enable debug logging for troubleshooting:
# Docker
docker run -e RUST_LOG=debug -e GOE_CONTROLLER_IP=192.168.178.xx ghcr.io/oleggtro/go-e-prometheus-exporter:v0.1.0
# Binary
RUST_LOG=debug GOE_CONTROLLER_IP=192.168.178.xx ./go-e-prometheus-exporterThis project is licensed under the MIT License - see the LICENSE file for details.