Solar Monitoring

Solar Monitor ScreenshotWhile the Enphase Enlighten monitoring site is pretty swanky, it’s slow to load and extremely flash-heavy.  It has the advantage of being able to do per-panel monitoring, event log monitoring, etc, but I was hoping for something a little more lightweight.  Enter  Let’s build out the internet of things….

The Envoy system monitor for the Enphase inverters has very basic output monitoring abilities; it shows you current power, and daily, weekly, and lifetime energy production.  So, we can screen-scrape this and upload it to pachube, then do what we like with the data.

I have this script on a 5-minute* 10-minute cron job to get the data.  The Envoy doesn’t seem to update faster than 5 minutes, and it’s such a gutless wonder, doing it any more often than that brings it to its knees, and it stops updating the main site!  If you have problems, you may want to reduce the updates to 15m or more.

To use the script, first get a Pachube API key, and set  up a new Pachube feed.  Add 4 datastreams, for instantaneous power, daily production, weekly production, and lifetime production, in that order.  Edit the script to add your envoy hostname/IP, your API key, and your feed ID.  Then put the script on a 5-minute cron job.  You’ll start seeing the data on a Pachube feed page like this.  Then you can use some of the apps highlighted on to create widgets as in the image above, as seen on this page.  You can even get an iPhone app to monitor the data, or create an OSX dashboard widget from the HTML objects!

*Edit: Don’t set the cron job to be more frequent than 10 minutes.  I’ve had trouble with the Enovy unit bogging down and not reporting to Enlighten if you hit it more than every 10 minutes (!)

13 thoughts on “Solar Monitoring

  1. This is cool. I think I’ll look into it when my solar company finally sets us up with TED (The Energy Detective).

    On a different note, what do you think about the danger of solar panel theft? I’ve been wondering lately about how wise it is to broadcast the exact location of our 26 brand new panels to the entire world — and this story got me to thinking about it more —

  2. Well, the openpv database @nrel has several hundred installs on their Colorado map w/ exact locations. If my panels were a bit lower on a less-steep roof, perhaps… but personally I wouldn’t want to be that high up in the daytime, much less at night… I’d heard of thefts from more remote locations, but I guess I’m not too concerned.

    I had considered whether locating it precisely was wise, but to be honest the Enphase sites leak location data, the Twin Cities do solar tours, and pretty soon it won’t take too long to just peruse google maps satellite data to find solar installs… hopefully they’ll be so common soon that it won’t be any big deal. ;)

  3. Hm, one nifty thing about Pachube is that you can set up triggers and take actions based on various conditions. I’ll set it up to text me if the output goes to 0 during daylight hours. Stealing panels would be a several-hour job, I figure I could call the cops in time. :)

  4. Eric,

    How did you get the number of panels on your pachube page? Can you post the newer pearl script?



    • I was getting it off the main page, but it slows things down even more, and isn’t that interesting, so dropped it… Just a little tricky to remove the pachube stream…

    • Ross, that’s a pretty slick site, but I have to say I’m not a huge fan of the super-flash-heavy sites. For one, they don’t work on mobile devices, though I see you have a text-only mobile version.

  5. Hi Eric,

    Not sure whether someone already wrote a Python script to retrieve the Envoy data from the local API? I have searched but only found your PERL script. Well…I created a script eventually, so here it is:

    As I do not have access to the Enphase forums, feel free to distribute to others that may be interested in Python scripts for reading the API page.



      • I just asked Enphase support too push it to me and a few hours later I had the release (R3.9). Hopefully more stable than reading it from the status page table…

        • Interesting – I’m not sure if they’ll push it to my old model. I guess I can ask, but frankly I can get the info just as easily by parsing the html off the production page. :)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.