Enphase Envoy-S Solar Power Plugin (with Panel Monitoring)

TimH
Posts: 40
Joined: Thu Mar 06, 2008 11:41 am
Location: Los Gatos, CA

Re: Enphase Envoy-S Solar Power Plugin (with Panel Monitorin

Post by TimH »

The new version is installed and working well so far with my system. I will let you know if I come across anything. Thanks for the plug-in and speedy support!
User avatar
Different Computers
Posts: 2730
Joined: Sat Jan 02, 2016 10:07 am
Location: East Coast
Contact:

Batteries?

Post by Different Computers »

I've just had 5 Enphase batteries installed. Quite an upgrade.

Does this plugin see/talk to/support batteries?

I can't just try it yet, as much of my system is still offline at the networking level as the installers wait for a part.

Love this plugin either way!
Sonoma on a Mac Mini M1 running Airfoil Pro, Bond Home, Camect, Roku Network Remote, Hue Lights, DomoPad, Adapters, Home Assistant Agent, HomeKitLinkSiri, EPS Smart Dimmer, Fantastic Weather, Nanoleaf, LED Simple Effects, Grafana, Yamaha RX Receiver.
User avatar
Different Computers
Posts: 2730
Joined: Sat Jan 02, 2016 10:07 am
Location: East Coast
Contact:

Re: Enphase Envoy-S Solar Power Plugin (with Panel Monitoring)

Post by Different Computers »

First off, this isn't a big deal because everything seems to be working as designed. I'm going to assume that batteries aren't supported by the plugin because the plugin config doesnt' mention them anywhere.

Also, with a new master panel because of the battery install, I'm now seeing

Code: Select all

 Enphase Envoy Plugin            Error with getting SessionID via check_jwt.
Any idea how to keep that from happening? or if it is problematic?
Sonoma on a Mac Mini M1 running Airfoil Pro, Bond Home, Camect, Roku Network Remote, Hue Lights, DomoPad, Adapters, Home Assistant Agent, HomeKitLinkSiri, EPS Smart Dimmer, Fantastic Weather, Nanoleaf, LED Simple Effects, Grafana, Yamaha RX Receiver.
User avatar
GlennNZ
Posts: 1873
Joined: Sun Dec 07, 2014 3:33 pm
Location: Central Coast, Australia

Enphase Envoy-S Solar Power Plugin (with Panel Monitoring)

Post by GlennNZ »

Hi

The plugin pre-dates the enphase battery’s (even their first ones) by quite a bit.

Not sure what that message is. It is possible firmware is different now.

If you click the [Debug] check all endpoints in the device config - will log everything we can get - welcome to PM the full log output to me and will see what can be added info wise. (for the batteries)


Sent from my iPad using Tapatalk
User avatar
McJohn
Posts: 681
Joined: Tue Dec 18, 2012 5:58 am
Location: The Netherlands
Contact:

Re: Enphase Envoy-S Solar Power Plugin (with Panel Monitoring)

Post by McJohn »

OS 14.8.3 (Sonoma)
Indigo 2025.1
Enphase plugin 0.7.01

After a restart of Indigo, (and some python installations with the terminal for the Dreame plugin) our Enphase plugin no longer works.
Most likely (and coincidentally) something has changed on the Enphase side?

Generating an automatic token no longer works.
The following error messages appear:

Enphase Envoy Plugin Error connecting to Device:Enphase - Envoy-S Device Error is:HTTPConnectionPool(host='192.168.168.168, port=80): Max retries exceeded with url: /production.json (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x108a921d0>: Failed to establish a new connection: [Errno 61] Connection refused'))

and:

Enphase Envoy Plugin Error connecting to Device:Enphase - Envoy-S Device Error is:HTTPConnectionPool(host='192.168.168.168, port=80): Max retries exceeded with url: /production.json (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x1054c11d0>: Failed to establish a new connection: [Errno 61] Connection refused'))


With the web browser, we generated manually a token on the Enphase website.
After about a minute, a connection suddenly comes up and the Indigo Enphase device reports “Producing Energy”, but there is no Enphase panel data available at the other Indigo Panel devices and no data of the energy produced today.

This is very problematic, as our energy system depends on it.

How can we solve this??
Below the debug info.

Thanks for your support.




Starting plugin "Enphase Envoy Plugin 0.7.01" (pid 12396)
Processing requirements for plugin "Enphase Envoy Plugin 0.7.01"
Requirements for "Enphase Envoy Plugin 0.7.01" previously processed, continuing startup
Enphase Envoy Plugin
Enphase Envoy Plugin ================================================ Initializing New Plugin Session =================================================
Enphase Envoy Plugin Plugin name: Enphase Envoy Plugin
Enphase Envoy Plugin Plugin version: 0.7.01
Enphase Envoy Plugin Plugin ID: com.GlennNZ.indigoplugin.EnphaseEnvoy
Enphase Envoy Plugin Indigo version: 2025.1.0
Enphase Envoy Plugin Python version: 3.11.6 (v3.11.6:8b6ee5ba3b, Oct 2 2023, 11:18:21) [Clang 13.0.0 (clang-1300.0.29.30)]
Enphase Envoy Plugin Python Directory: /Library/Frameworks/Python.framework/Versions/3.11
Enphase Envoy Plugin ============================================== End Initializing New Plugin Session ===============================================
Started plugin "Enphase Envoy Plugin 0.7.01"
Enphase Envoy Plugin Debug Starting Enphase Plugin. startup() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Starting Enphase/Envoy device: Enphase - Envoy-S Device
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug deviceStartComm() method called.
Enphase Envoy Plugin Debug Found configured device: Enphase - Envoy-S Device
Enphase Envoy Plugin Debug Enphase - Envoy-S Device is enabled.
Enphase Envoy Plugin Debug Enphase - Envoy-S Device: Time Since Device Update = 0
Enphase Envoy Plugin Debug Type of Envoy Checking...: Enphase - Envoy-S Device
Enphase Envoy Plugin Debug getTheData PRODUCTION METHOD method called.
Enphase Envoy Plugin Debug Create_Headers called for device.name Enphase - Envoy-S Device
Enphase Envoy Plugin Debug Use Manual token: True & Generate Token True
Enphase Envoy Plugin Debug Using Headers: {'Accept': 'application/json', 'Authorization': 'Bearer xxxxxxxxxxxxxxxxxxxxxxxLCJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJhdWQiOiIxMjIwMDEwNzA5NjkiLCJpc3MiOiJFbnRyZXoiLCJlbnBoYXNlVXNlciI6Im93bmVyIiwiZXhwIjoxODAwMTg0MTM3LCJpYXQiOjE3Njg2NDgxMzcsImp0aSI6Ijg0NGUxNDZlLTcwYTUtNDFmZi1iOGM4LTQyNWFhNzBhN2EyZCIsInVzZXJuYW1lIjoic3RlZW5odWlzQG1hYy5jb20ifQ.bPEseTrBmHAUWqwym2Us6e7UDXFs3yr-Fdi6xnor1alAa_PVJ94IUprFSAbUCpqRkIPPi_zp75QheduF-A2fbQ'}
Enphase Envoy Plugin Debug
Using URL http://192.168.168.168/production.json
Cookies: {}
Headers {'Accept': 'application/json', 'Authorization': 'Bearer xxxxxxxxxxxxxxxxxxxxxxLTRkMGQtYmNiNC0yNDRmOThlZTE1NmIiLCJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJhdWQiOiIxMjIwMDEwNzA5NjkiLCJpc3MiOiJFbnRyZXoiLCJlbnBoYXNlVXNlciI6Im93bmVyIiwiZXhwIjoxODAwMTg0MTM3LCJpYXQiOjE3Njg2NDgxMzcsImp0aSI6Ijg0NGUxNDZlLTcwYTUtNDFmZi1iOGM4LTQyNWFhNzBhN2EyZCIsInVzZXJuYW1lIjoic3RlZW5odWlzQG1hYy5jb20ifQ.bPEseTrBmHAUWqwym2Us6e7UDXFs3yr-Fdi6xnor1alAa_PVJ94IUprFSAbUCpqRkIPPi_zp75QheduF-A2fbQ'}
Enphase Envoy Plugin Debug [HTTP] Re-using session 0x105ddec90 for host 192.168.168.168
Enphase Envoy Plugin Debug [HTTP] GET http://192.168.178.202/production.json
timeout=15 auth=NO
headers={'Accept': 'application/json', 'Authorization': 'Bearer xxxxxxxxxxxxxxxxxQtYmNiNC0yNDRmOThlZTE1NmIiLCJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJhdWQiOiIxMjIwMDEwNzA5NjkiLCJpc3MiOiJFbnRyZXoiLCJlbnBoYXNlVXNlciI6Im93bmVyIiwiZXhwIjoxODAwMTg0MTM3LCJpYXQiOjE3Njg2NDgxMzcsImp0aSI6Ijg0NGUxNDZlLTcwYTUtNDFmZi1iOGM4LTQyNWFhNzBhN2EyZCIsInVzZXJuYW1lIjoic3RlZW5odWlzQG1hYy5jb20ifQ.bPEseTrBmHAUWqwym2Us6e7UDXFs3yr-Fdi6xnor1alAa_PVJ94IUprFSAbUCpqRkIPPi_zp75QheduF-A2fbQ'}
cookies={}
Enphase Envoy Plugin Debug [HTTP] ERROR for host 192.168.168.168: HTTPConnectionPool(host='192.168.168.168, port=80): Max retries exceeded with url: /production.json (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x105dee3d0>: Failed to establish a new connection: [Errno 61] Connection refused')) — closing session 0x105ddec90 and recreating
Enphase Envoy Plugin Error connecting to Device:Enphase - Envoy-S Device Error is:HTTPConnectionPool(host='192.168.168.168', port=80): Max retries exceeded with url: /production.json (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x105dee3d0>: Failed to establish a new connection: [Errno 61] Connection refused'))
Enphase Envoy Plugin Debug Device is offline. No data to return.
Enphase Envoy Plugin Debug Data is Nonetype. Returning.


AND:


Enphase Envoy Plugin Debug Found configured device: Enphase - Envoy-S Device
Enphase Envoy Plugin Debug Enphase - Envoy-S Device is enabled.
Enphase Envoy Plugin Debug Enphase - Envoy-S Device: Time Since Device Update = 79
Enphase Envoy Plugin Debug Online: Refreshing device: Enphase - Envoy-S Device
Enphase Envoy Plugin Debug getTheData PRODUCTION METHOD method called.
Enphase Envoy Plugin Debug Create_Headers called for device.name Enphase - Envoy-S Device
Enphase Envoy Plugin Debug Use Manual token: True & Generate Token True
Enphase Envoy Plugin Debug Using Headers: {'Accept': 'application/json', 'Authorization': 'Bearer xxxxxxxxxxxxxxxxxxxxxxZTE1NmIiLCJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJhdWQiOiIxMjIwMDEwNzA5NjkiLCJpc3MiOiJFbnRyZXoiLCJlbnBoYXNlVXNlciI6Im93bmVyIiwiZXhwIjoxODAwMTg0MTM3LCJpYXQiOjE3Njg2NDgxMzcsImp0aSI6Ijg0NGUxNDZlLTcwYTUtNDFmZi1iOGM4LTQyNWFhNzBhN2EyZCIsInVzZXJuYW1lIjoic3RlZW5odWlzQG1hYy5jb20ifQ.bPEseTrBmHAUWqwym2Us6e7UDXFs3yr-Fdi6xnor1alAa_PVJ94IUprFSAbUCpqRkIPPi_zp75QheduF-A2fbQ'}
Enphase Envoy Plugin Debug
Using URL https://192.168.178.202/production.json
Cookies: {}
Headers {'Accept': 'application/json', 'Authorization': 'Bearer xxxxxxxxxxxxxxxxC0yNDRmOThlZTE1NmIiLCJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJhdWQiOiIxMjIwMDEwNzA5NjkiLCJpc3MiOiJFbnRyZXoiLCJlbnBoYXNlVXNlciI6Im93bmVyIiwiZXhwIjoxODAwMTg0MTM3LCJpYXQiOjE3Njg2NDgxMzcsImp0aSI6Ijg0NGUxNDZlLTcwYTUtNDFmZi1iOGM4LTQyNWFhNzBhN2EyZCIsInVzZXJuYW1lIjoic3RlZW5odWlzQG1hYy5jb20ifQ.bPEseTrBmHAUWqwym2Us6e7UDXFs3yr-Fdi6xnor1alAa_PVJ94IUprFSAbUCpqRkIPPi_zp75QheduF-A2fbQ'}
Enphase Envoy Plugin Debug [HTTP] Re-using session 0x101f04450 for host 192.168.168.168
Enphase Envoy Plugin Debug [HTTP] GET https://192.168.168.168/production.json
timeout=15 auth=NO
headers={'Accept': 'application/json', 'Authorization': 'Bearer xxxxxxxxxxxxxxxxxx3ODk5LTRkMGQtYmNiNC0yNDRmOThlZTE1NmIiLCJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJhdWQiOiIxMjIwMDEwNzA5NjkiLCJpc3MiOiJFbnRyZXoiLCJlbnBoYXNlVXNlciI6Im93bmVyIiwiZXhwIjoxODAwMTg0MTM3LCJpYXQiOjE3Njg2NDgxMzcsImp0aSI6Ijg0NGUxNDZlLTcwYTUtNDFmZi1iOGM4LTQyNWFhNzBhN2EyZCIsInVzZXJuYW1lIjoic3RlZW5odWlzQG1hYy5jb20ifQ.bPEseTrBmHAUWqwym2Us6e7UDXFs3yr-Fdi6xnor1alAa_PVJ94IUprFSAbUCpqRkIPPi_zp75QheduF-A2fbQ'}
cookies={}
Enphase Envoy Plugin Debug [HTTP] 192.168.168.168 → 200 (session 0x101f04450)
Enphase Envoy Plugin Debug Result:{'production': [{'type': 'inverters', 'activeCount': 26, 'readingTime': 1768649170, 'wNow': 2533, 'whLifetime': 14142084}, {'type': 'eim', 'activeCount': 1, 'measurementType': 'production', 'readingTime': 1768649170, 'wNow': 2503.108, 'whLifetime': 15126192.025, 'varhLeadLifetime': 0.019, 'varhLagLifetime': 7015135.799, 'vahLifetime': 20265022.644, 'rmsCurrent': 10.851, 'rmsVoltage': 701.488, 'reactPwr': 388.854, 'apprntPwr': 2542.537, 'pwrFactor': 0.98, 'whToday': 4118.025, 'whLastSevenDays': 32102.025, 'vahToday': 8024.644, 'varhLeadToday': 0.019, 'varhLagToday': 4605.799}], 'consumption': [{'type': 'eim', 'activeCount': 0, 'measurementType': 'total-consumption', 'readingTime': 1768649170, 'wNow': 912.417, 'whLifetime': 5317843.51, 'varhLeadLifetime': 0.0, 'varhLagLifetime': -2404957.608, 'vahLifetime': 0.0, 'rmsCurrent': 3.962, 'rmsVoltage': 232.75, 'reactPwr': 127.999, 'apprntPwr': 922.05, 'pwrFactor': 0.99, 'whToday': 5317843.51, 'whLastSevenDays': 5317843.51, 'vahToday': 0.0, 'varhLeadToday': 0.0, 'varhLagToday': 0.0}, {'type': 'eim', 'activeCount': 0, 'measurementType': 'net-consumption', 'readingTime': 1768649170, 'wNow': -0.0, 'whLifetime': 0.001, 'varhLeadLifetime': 0.0, 'varhLagLifetime': 0.0, 'vahLifetime': 0.0, 'rmsCurrent': -0.0, 'rmsVoltage': 232.75, 'reactPwr': 0.0, 'apprntPwr': -0.0, 'pwrFactor': -1.0, 'whToday': 0, 'whLastSevenDays': 0, 'vahToday': 0, 'varhLeadToday': 0, 'varhLagToday': 0}], 'storage': [{'type': 'acb', 'activeCount': 0, 'readingTime': 0, 'wNow': 0, 'whNow': 0, 'state': 'idle'}]}
Enphase Envoy Plugin Debug Saving Values method called.
Enphase Envoy Plugin Debug no Storage result found.
Enphase Envoy Plugin Debug State Image Selector:SensorOn
Enphase Envoy Plugin Debug Envoy Unmetered equivalent used for Status:
Enphase Envoy Plugin Debug Producing Watts:2533
Enphase Envoy Plugin Debug State Image Selector:SensorOn
User avatar
McJohn
Posts: 681
Joined: Tue Dec 18, 2012 5:58 am
Location: The Netherlands
Contact:

Re: Enphase Envoy-S Solar Power Plugin (with Panel Monitoring)

Post by McJohn »

Below is the response from Enphase regarding the API update of the Envoy-S.
Apparently, they roll out these updates randomly and we were not informed about this at all.




Hi John,

Thank you for your prompt response and for resending the error details.

I reviewed the Envoy associated with location ID xxxxxx and can confirm that a software upgrade was performed on the device shortly before the reported issue date (January 16). This corresponds with the time when your local API stopped responding.

The errors you provided indicate two concurrent issues:

1. HTTP access on port 80 is no longer available: Your Envoy is rejecting requests to http://<envoy‑ip>/production.json. This explains the repeated "Connection refused" messages. Recent Envoy firmware updates have disabled access to the older, unencrypted HTTP endpoints.

2. Your plugin continues retrying and eventually crashes: Because the endpoint is inaccessible, the plugin repeatedly attempts to connect, leading to a recursion error. This behavior is due to the plugin's design and is unrelated to the Envoy itself.

To continue retrieving local production data, you will need to update your plugin or tool to conform with the new local API requirements. Specifically, replace calls such as http://<envoy‑ip>/production.json with the newer HTTPS-based endpoints, for example: https://<envoy‑ip>/api/v1/production or https://<envoy‑ip>/ivp/meters/readings.

The updated local API now requires authentication. Any tool or integration accessing the Envoy must include a valid authentication token in the request headers.

If your current plugin does not support HTTPS and token-based authentication, it will need to be updated or replaced with a version that does.

The software upgrade on your Envoy introduced enhanced security measures. The removal of the HTTP endpoint on port 80 is why your existing integration is failing. Transitioning to the supported HTTPS endpoints and implementing authenticated requests will resolve these issues.
User avatar
GlennNZ
Posts: 1873
Joined: Sun Dec 07, 2014 3:33 pm
Location: Central Coast, Australia

Re: Enphase Envoy-S Solar Power Plugin (with Panel Monitoring)

Post by GlennNZ »

McJohn wrote:Below is the response from Enphase regarding the API update of the Envoy-S.
Apparently, they roll out these updates randomly and we were not informed about this at all.




Hi John,

Thank you for your prompt response and for resending the error details.

I reviewed the Envoy associated with location ID xxxxxx and can confirm that a software upgrade was performed on the device shortly before the reported issue date (January 16). This corresponds with the time when your local API stopped responding.

The errors you provided indicate two concurrent issues:

1. HTTP access on port 80 is no longer available: Your Envoy is rejecting requests to http://<envoy‑ip>/production.json. This explains the repeated "Connection refused" messages. Recent Envoy firmware updates have disabled access to the older, unencrypted HTTP endpoints.

2. Your plugin continues retrying and eventually crashes: Because the endpoint is inaccessible, the plugin repeatedly attempts to connect, leading to a recursion error. This behavior is due to the plugin's design and is unrelated to the Envoy itself.

To continue retrieving local production data, you will need to update your plugin or tool to conform with the new local API requirements. Specifically, replace calls such as http://<envoy‑ip>/production.json with the newer HTTPS-based endpoints, for example: https://<envoy‑ip>/api/v1/production or https://<envoy‑ip>/ivp/meters/readings.

The updated local API now requires authentication. Any tool or integration accessing the Envoy must include a valid authentication token in the request headers.

If your current plugin does not support HTTPS and token-based authentication, it will need to be updated or replaced with a version that does.

The software upgrade on your Envoy introduced enhanced security measures. The removal of the HTTP endpoint on port 80 is why your existing integration is failing. Transitioning to the supported HTTPS endpoints and implementing authenticated requests will resolve these issues.
Just to close the loop on this.

New Plugin version fixes 8.3 Firmware changes that Enphase introduced.

Basically above isn’t quite correct - the plugin has always support https: endpoints, with the Envoys depending on their version of firmware redirecting http requests to https. The new version of firmware stopped this redirect - and we need to directly go to the https endpoint. Issue with this is breaks some lower firmwares… which hopefully are uncommon.

Version 0.8.01:

Return to automatic token generation, or manual token if preferred. Select in settings.
Use pyenphase library for token authentication - hopefully no compiling issues for this library
Add new Device states firmwware_version, token_expires, serial_number
Code changes.
Change to logging
Bug fixes for multiple devices.
Changes to stop/start reporting, and device start up - should refresh immediately


Sent from my iPad using Tapatalk
Post Reply

Return to “Enphase Envoy Solar”