[UNSUPPORTED] Enphase Envoy (local access)

This is my first attempt at creating and releasing a device type - a power & energy meter for a solar system running Enphase inverters. It connects to the Enphase Envoy on the local LAN and thus is not bound to any rate limits or contingent on setup of a developer account with Enphase. This was inspired by this post (with the linked code unfortunately no longer being available).

A few notes:

  • Unfortunately it is not possible to set dynamic colors on tiles - the main tile will turn green for production of 2kW or more (you could adjust that depending on system size)
  • The peak percentage is based on maximum theoretical output (number of inverters multiplied with inverter size)
  • Peak power is not reported by the envoy - this is the maximum value the device type encountered during the day - if it gets polled every five minutes this should match the actual peak
  • Efficiencies are calculated based on panel size (number of inverters multiplied with panel size) - this allows for a system-size independent metric so there colors here should be correct

Minor update published to github:

  • show change (±…W) from last reading
  • formatting fix for production tiles (more consistent text size and no more weird wrapping)

More updates published to github:

  • Added new “Yesterday” row with production & efficiency for previous day (will be populated starting the second day of use)
  • Consistent number formatting for displays (3 decimal digits for all production and efficiency values)
  • More (and nicely formatted) text in the “Recent” tab

Latest update on Github now displays the power and energy readings for the current and previous day on a graph below the main tile (power in blue, energy in read - previous day in light, current day in solid colors):

(Note: the lack of details on the main tile is due to the current ST application bug which no longer displays the SECONDARY_CONTROL for a multiTile).

Here is what the tile looks like on a :cloud: day (at least what we call cloudy around here :wink:) - I also updated the visual appearance some more (added vertical axes labels and color codes them to make it clearer which data belongs to which axis) and fixed a stupid bug causing the energy data to show up as a staircase before (integerValue() for a float value was not the best idea…):


Hi, looking at the screen grabs this looks to be an amazing addition to Smartthings. The only snag I have its that I have installed this on my hub, but it does not get any readings. I’ve looked at your code, and I’m no pro but I see your calling http://(local IP of Envoy)/api/v1/production. I’ve browsed directly there and I get data back.

Being a novice at such things I’m now out of ideas. Is it possible to give me some tips on debugging? I have no clue where to go next.




There are a few things you can look at:

  1. The device settings. Go to your devices list and look for your device - it is listed with whatever name you gave it:
    <img src=“//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/smartthings/original/3X/a/f/afb30569cea4b138bd3057cc1ecd719ef7e5661a.png” width=“690” height=“68”
    The 6th column lists the device network ID (which should be automatically set to your Envoy’s MAC address). Do you have that there or not? If not, try to configure the device again (from within the ST app), making sure to hit “Done” - this should correctly set the device ID to its MAC. If that didn’t work, you can click the device name on the list shown above, click the “Edit” button and manually enter the MAC - for some reason automatically setting it seems to sometimes fail.
  2. Open the IDE Logging link and see what happens when you click the “Refresh” button for the device in the ST app (try this at least three times - for some reason the hub seems to sometimes drop local LAN request. You should do the same when updating the device configuration as well) - if you post the results form the logging I might be able to determine what is going on.
  3. Keep in mind that the device will not automatically update it’s data - I am using the “Pollster” SmartApp to poll it once every five minutes.

Also, make sure that you have the latest version of the device handler from the Github link above - I did some changes to optimize things in order to minimize load on the cloud.

I’m having the same issues as you. Everything appears to be configured correctly, but it doesn’t pull any information. I haven’t had time to look at the issue in depth yet, so I’ll go through Andreas’ suggestions tonight and see if I can get it working. I’m sure it’ll be something stupid.
One thing that I did find odd is that I couldn’t initially put the settings in the App. I had to do it from the IDE. When I tried to put it in the App, it told me that I had to put in all of the settings. But they were all in there.
I’ll follow up if I get things working.

Hi, thanks for the quick response. Seems I was being impatient, I left it alone for a few minutes and all was well has been since.

Best of luck with your installation.

Well, this right here is my issue. When I put in that site with my IP address, I get a 404 page saying that it can’t be found. Maybe my Envoy is too old.

Interesting - my Envoy is two years old. What happens if you go to http://(localIP of Envoy)? Here is what I see in the “System Statistics” table (partial information only):

Current Software Version	R3.12.49 (590f48)
Software Build Date	        Thu Oct 29, 2015 02:56 PM PDT

Not sure what the exact model of my Envoy is (it is up in the attic and I don’t want to wake up my son by going up there…)

Mine is a couple of years old too. Apparently it’s behind on the software version though. I’ll see if I can get it upgraded.

Current Software Version            R3.7.26 (7888b3)
Software Build Date                 Mon Aug 25, 2014 01:56 PM PDT

I guess I’ll have to contact Enphase to get it upgraded.


You should try yourself first - according to this FAQ you should be able to do so yourself. I don’t see the “Tasks” entry but maybe it is not there when your Envoy is up-to-date?

The model number/revision I see on the enlighten website are 800-00069-r05 (Envoy-R-NA)

Yeah, i saw that FAQ too, but I don’t have that task page either. I actually have my solar company coming out on Friday to replace some inverters. I asked them if they could give me a new Envoy (Enphase has new devices that have more features). I doubt they will, but hopefully they’ll be able to update my current one if they won’t give me a new one.

Thanks for the help.

I saw the new Envoys as well but from what I understand they don’t work with the M-style inverters :cry:

How can I find out my inverter and panel size?

You should look in the paperwork you got at installation - that should list the exact hardware you got.

As for inverter size, you can also go to your system’s website on the enlighten website and click the “Devices” tab - this will list your inverter model numbers:

The “M250” is a 250W inverter, the “M215” a 215W model.

Hmmm, i don’t have a devices tab. Maybe because the system is owned by Sunstreet? I did find the model for the panels under the system details section.

Ahh, I see. You have the crippled view only, no access to individual inverters :cry:

The panel model number should allow you to determine the panel size - based on that you can make a bet guess whether you have the 215 or 250 inverters (e.g., I have 250W inverters on my 300W panels)

Yeah, i plugged in my 265W panels and guessed at 250W inverteers and things seem to be flowing into the device ok. Only thing that isn’t working is the yesterday data.

You can verify the inverter size based on the maximum power you get - on a sunny day with optimal exposure it should match (or slightly exceed) number of panels times inverter size. With 265W panels you actually might still use the 215W inverters…

This should populate starting the second day - the Envoy doesn’t give access to yesterday’s data so the device uses the ST event history for that.