When I installed solar panels on my home, I saw an opportunity to save on energy bills, but little did I know that it would give me an opportunity to explore how OpenNMS could be used outside of a traditional network monitoring scenario. This blog post describes how I used the Prometheus Collector in OpenNMS to monitor solar energy production and how this use case can inspire broader applications.

Why Prometheus + OpenNMS?

OpenNMS is known for its robust SNMP data collection, but it’s also a powerful platform for extensible monitoring. Another capability that OpenNMS has is the Prometheus Collector, which allows OpenNMS to ingest metrics from Prometheus Exposition Format compatible endpoints.

This opens the door to monitoring a wide range of systems that expose Prometheus metrics.

The Use Case: Solar Panel Monitoring

My solar setup uses Enphase microinverters, which communicate with a local gateway device. While Enphase provides an app for monitoring, I wanted more control and historical insight. That’s where OpenNMS came in.

Step 1: Getting the Data

After a couple of searches, I was able to find the amazing Enphase Collector project by dlmcpaul on Github, which is an excellent open source Java project that connects to the Enphase gateway and exposes metrics like:

  • Panel production (watts)
  • Total energy generated
  • Consumption vs. production

This exporter works by authenticating locally with the Enphase gateway and retrieving real-time data using a token-based API. It’s a brilliant example of community-driven innovation that makes otherwise siloed data accessible.

Step 2: Configuring OpenNMS

I started by creating some custom resources in OpenNMS to represent the different types of data I wanted to collect (prometheus-enphase-collector.xml).

Next, I defined the Prometheus data collection set using those resources and the exposition formatted metrics as a guide (enphase-collector.xml).

Then, I defined the collection properties for OpenNMS to perform the collection (collectd-configuration-snippet.xml).

Lastly, in OpenNMS, I created a new node to represent the system that I was running the Enphase Collector application, and I assigned the Enphase Collector to it. This collector scrapes the exporter’s endpoint at regular intervals and stores the metrics.

Here’s how it works:

  • The Prometheus Collector reads metrics in the name value format from a URL.
  • OpenNMS stores this data using its time-series backend (in my case, Mimir using the Cortex Plugin that OpenNMS provides). This uses the remote-write capability of Prometheus to enable long term storage of time series data.

Step 3: Visualizing with Grafana

To make the data actionable, I built a Grafana dashboard:

Each panel’s output is visualized in real-time.

Leveraging the Prometheus Query Language (PromQL) enables me to perform easy math operations on the data so I can compare the actual sum total of production from each panel to the sum total that the controller provides:

I added a plugin to track solar altitude, which correlates beautifully with production curves.

Color gradients show panel performance at a glance.

All of the data is being queried directly from Mimir using the Prometheus Query language.

Beyond Solar: Why This Matters

This isn’t just about solar panels. It’s a proof of concept for how OpenNMS can:

  • Collect data from non-SNMP sources

  • Integrate with Prometheus exporters

  • Enrich and visualize data using Grafana

  • Set thresholds and alerts for any metric

We’ve already applied this to other projects and are planning to monitor medical equipment in healthcare environments.

Takeaway: OpenNMS as a Platform

This project highlights OpenNMS’s strengths as a platform, not just as a product. Whether you're monitoring routers, solar panels, or patient data pipelines, OpenNMS can collect, enrich, and visualize the data that matters.

If you’re only using SNMP today, it might be time to explore what else OpenNMS can do.

Jump to section

About the Author: Marshall Massengill

I'm the Principal Solution Delivery Architect for OpenNMS. If you've got questions about IT, Networking, or building robots then I'm happy to help!
Published On: July 25th, 2025Last Updated: July 25th, 20253 min readTags: ,