Another Enphase Envoy-S integration into a local EmonCMS

Exactly what Bill said :slight_smile:

In Australia, we also get rebate credits from the government based on the total panel Wattage, not the total inverter Wattage, up to 30% over the capacity of the inverter(s). The 3 solar providers that quoted me all oversized the panels by almost the 30% maximum to both maximise the credits and the time the inverters are at their maximum production. I have 370W panels attached to the 290W inverters (although quite usually 300W by my logging). According to Enphase, the IQ7+ inverters are suitable for 235W - 440W panels.

image
This is a screenshot of a 7-day energy harvest. The three on the left are 355 Watt modules,
the other two are 305 Watt modules. All are driving 250 Watt inverters.

1 Like

Interesting that you were able to get the 370W panels on the IQ7+. My supplier said they couldn’t go higher than the 350W panels as higher wasn’t (from memory) certified. The desire was to maximise the shoulder production.

Either your supplier was misinformed, or the spec sheet was updated after your installation was performed.

The spec sheet on the Enphase US and Australian websites both say 235W - 440W for the IQ7PLUS-72-* modules.

The IQ7 (non-plus) modules (also on the same spec sheet) are capped at 350W, although it does say “+” after that, whatever that means! :slight_smile:

refs:
US: https://enphase.com/sites/default/files/downloads/support/IQ7-IQ7plus-DS-EN-US.pdf,
AU: https://enphase.com/sites/default/files/downloads/support/IQ7-IQ7%2BIQ7X-EN4-DS-EN-APAC.pdf

1 Like

Hello, thanks for sharing. I have the Enphase ENV-IQ-AM1-240 M IQ Envoy Communications Gateway. Is my envoy compatible? I have the emonpi and the emontx is it possible adding this code for monitoring? Or do I need to prepare a machine to install EmonCMS? Thanks in advance for your help.

Your EmonPi should have everything on it that you need, although I’m not sure if the particular URLs are valid on your Envoy or not.

You can test by trying the various URL’s mentioned in the previous posts in this thread from a web browser - if they work and return data, then these scripts will work against your Envoy. If they don’t work (return 404 or other errors), then either the data isn’t available, or it is published on different URLs and may have a different format.

Thanks for your response. Will try and post results.

Hello tried this url:
http://my envoy ip/stream/meter
I’m receiving this window:

I’d tried with:
user: admin pass: admin
user: envoy pass: last six serial
user: envoy pass: my toolkit login password

Can’t access with any of them, is the user different from the one I’m using?

This link (in the first post of this thread) has instructions and an app that should answer your question.

Hello Bill,

Forgot to mention that option also. Tried it out with the password generated and cant login either. user used: admin, envoy

Looking at my code above, that URL needs username “installer” with password generated by the Android App - did you try that?

Hello that did work with installer as user. Thanks. Now I’ll tried the rest and see if I successfully integrated it with my emonpi.

1 Like

Hi,
Just saw your post depiste that I read OpenenergyMonitor from some time.
Thanks a lot for all the valuable information. .
The code for reading the stream is much interesting. Does anyone know if there is some library some some type of microcontroller that can help read that stream ( Arduino; ESP8266, ESP32) ?
Some example or even some coding available ?
I would like to build a configurable module that strats a load on various production/export criteria.

I just did an out-of-character (for me :slight_smile: ) experiment and used the python script linked to there (which can be found at GitHub - sarnau/EnphaseEnergy: Various collected information about Enphase Energy solar system ) together with the serial number of my Envoy (Not an Envoy S!) and it worked to give me the installer password. So woo-hoo and cheers, buy you a beer and all the rest of it…

2 Likes

@Greebo Thank you so much for posting this.

I tried following your steps here, but when checking the log I get this response, suggesting the script is shutting down immediately after starting. Do you know what “status=2” implies?

● envoy2emon.service - Reads a password protected Envoy-S data stream and sends it to EmonCMS
   Loaded: loaded (/home/pi/envoy2emon.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Fri 2022-10-07 21:44:19 BST; 15s ago
  Process: 17280 ExecStart=/usr/bin/python3 /home/pi/envoy2emon.py (code=exited, status=2)
 Main PID: 17280 (code=exited, status=2)

Also, a very basic question, but will the script create the Inputs or do I need to manually create the Inputs first? Once I have the Inputs showing up, I’m confident of being able to create the Feeds.

Thank you!

There’s a log file that gets created - is there anything in that? The path is in the first section of the python script:

LogFile              = "/var/log/envoy2emon/envoy2emon.log"

it should contain lines like this if it is working normally:

2020-10-29 10:51:47,479 PID(31463) INFO: ****** Starting envoy2emon.py ******
2020-10-29 10:51:47,831 PID(31463) INFO: Stream connection established

Yes, the Inputs will appear automatically once the service starts POSTing to your EmonCMS instance.

Thanks for confirming that the Inputs will just appear once the service starts POSTing.

On the log, I found this (I’ve removed my API key):

Oct 09 19:16:37 emonpi envoy2emon[6672]:     resp = self.send(prep, **send_kwargs)
Oct 09 19:16:37 emonpi envoy2emon[6672]:   File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
Oct 09 19:16:37 emonpi envoy2emon[6672]:     r = adapter.send(request, **kwargs)
Oct 09 19:16:37 emonpi envoy2emon[6672]:   File "/usr/lib/python3/dist-packages/requests/adapters.py", line 516, in send
Oct 09 19:16:37 emonpi envoy2emon[6672]:     raise ConnectionError(e, request=request)
Oct 09 19:16:37 emonpi envoy2emon[6672]: requests.exceptions.ConnectionError: HTTPConnectionPool(host='emon-pi.local', port=80): Max retries exceeded with url: /emoncms/input/post?&node=Envoy-S&apikey=[REMOVED API KEY]&fulljson=%7B%22prod_ph-a_wNow%22:-2.771,%22prod_ph-b_wNow%22:0.0,%22prod_ph-c_wNow%22:0.0,%22prod_ph-a_rmsVoltage%22:240.913,%22prod_ph-b_rmsVoltage%22:0.0,%22prod_ph-c_rmsVoltage%22:0.0,%22prod_ph-a_rmsCurrent%22:0.219,%22prod_ph-b_rmsCurrent%22:0.0,%22prod_ph-c_rmsCurrent%22:0.0,%22prod_ph-a_pwrFactor%22:-0.14,%22prod_ph-b_pwrFactor%22:0.0,%22prod_ph-c_pwrFactor%22:0.0,%22cons_ph-a_wNow%22:551.189,%22cons_ph-b_wNow%22:0.0,%22cons_ph-c_wNow%22:0.0,%22cons_ph-a_rmsVoltage%22:240.857,%22cons_ph-b_rmsVoltage%22:0.0,%22cons_ph-c_rmsVoltage%22:0.0,%22cons_ph-a_rmsCurrent%22:3.971,%22cons_ph-b_rmsCurrent%22:0.0,%22cons_ph-c_rmsCurrent%22:0.0,%22cons_ph-a_pwrFactor%22:0.58,%22cons_ph-b_pwrFactor%22:0.0,%22cons_ph-c_pwrFactor%22:0.0,%22net_ph-a_wNow%22:553.96,%22net_ph-b_wNow%22:0.0,%22net_ph-c_wNow%22:0.0,%22net_ph-a_rmsVoltage%22:240.8,%22net_ph-b_rmsVoltage%22:0.0,%22net_ph-c_rmsVoltage%22:0.0,%22net_ph-a_rmsCurrent%22:3.751,%22net_ph-b_rmsCurrent%22:0.0,%22net_ph-c_rmsCurrent%22:0.0,%22net_ph-a_pwrFactor%22:0.6,%22net_ph-b_pwrFactor%22:0.0,%22net_ph-c_pwrFactor%22:0.0%7D (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x75b040f0>: Failed to establish a new connection: [Errno -2] Name or service not known'))
Oct 09 19:16:37 emonpi systemd[1]: envoy2emon.service: Main process exited, code=exited, status=1/FAILURE
Oct 09 19:16:37 emonpi systemd[1]: envoy2emon.service: Failed with result 'exit-code'.
Oct 09 19:17:04 emonpi systemd[1]: Stopped Reads a password protected Envoy-S data stream and sends it to EmonCMS.
Oct 09 19:17:09 emonpi systemd[1]: Started Reads a password protected Envoy-S data stream and sends it to EmonCMS.

So encouragingly it looks like the script is successfully getting data from Envoy (currently dark so all the values are 0), but I seem to fail to be able to POST to Emoncms? Any thoughts?

Thanks

Smells like a networking error to me. How is the network connected (wired or wireless etc)? sorry haven’t read upthread. Can you ping whatever name or address is being posted to? Is there any network-related stuff in syslog or wherever that might be relevant?

1 Like

Thanks @djh - you gave me a great idea which was to check the URL to which @Greebo 's script was POSTing. Turns out his script had:

emon_url          = 'http://emon-pi.local/emoncms/input/post?'

But my hostname is emonpi.local (no hyphen - and I think this is the default now?) and this was causing the connection error. Hyphen removed, problem solved.

I’m delighted to now be pulling data from the Envoy, albeit it is night now so I’ll need to check again in the morning :sun_with_face:

2 Likes