I recently introduced a script that monitors the Enphase solar setup we have here. This post is about the companion script that adds reporting down to an individual panel level.
- Get-EnphaseProduction.py. Queries the installation for an overview of production and consumption.
- Get-EnphaseData.py – this post. Queries the generation data for all of the invidual panels/micro-inverters.
- Get-EnphaseProduction-v7.py – the v7 version of this post. You’ll need this when your firmware is updated.
- Get-EnphaseData-v7.py – the v7 version of this post. You’ll need this when your firmware is updated.
Features
This script has the sole purpose of querying panel/inverter data from our Enphase solar system on a per-panel level. This enables us to confirm that all the panels are working properly and potentially identify any panels that aren’t pulling their weight.
As well as individual panel outputs, the script calculates and returns “panel range”. This is simply the difference between the highest and lowest output numbers. In normal operation, this number shouldn’t be very high as every panel pointing in the same direction should be generating roughly the same amount of power. If any of the panels drops output, the panel range number will increase. This will allow you to set up an alarm if any of the panel outputs drop for an extended amount of time. (Obviously you don’t want that time to be too short, as it would false-trigger on slow-moving clouds shading one or more of the panels while the rest remain in full sunlight.)