Open pedrocr opened 3 years ago
The /stream/meter
output is generated about every second.
Is this stream data generated independently from whether it is actually being read or not? Could reading the stream every second possibly negatively impact performance of communication between Envoy and the inverters? (All probably depends on how powerful the Envoy hardware actually is.)
My (Dutch) smart power meter reports data every single second. I would love to see the same from the Envoy. While inverter data is updated only every 5 minutes, the update frequency of data from the current transformers may be much higher (maybe even once a second). I am unable to verify this because I have no CT's installed.
Since the output is a stream where we only get values when the meter decides instead of continuously hitting it with requests it should theoretically be less of a performance drag. It doesn't have to continuously react to new connections and only outputs values at its own rate. Enphase themselves tell me this per-phase information is available for premium subscribers so they are already expecting this to work continuously and not just for installers.
Apparently there's an URL without authentication that's confirmed to give per-phase values:
https://github.com/jesserizzo/envoy_reader/issues/37#issuecomment-733861030
I discovered that /production.json
can also provide per-phase values with: /production.json?details=1
Phase objects are grouped in "lines" arrays and lack a phase identifier. A phase is determined by its order in the array: [L1, L2, L3].
Sample output:
From: Enphase-S Metered Multiphase (ENV-S-WM-230), 3-phase, no CT's installed, only L1 is connected on the power input. Panels were not producing during capture.
{
"production": [
{
"type": "inverters",
"activeCount": 15,
"readingTime": 1606340800,
"wNow": 0,
"whLifetime": 234081
},
{
"type": "eim",
"activeCount": 0,
"measurementType": "production",
"readingTime": 1606340801,
"wNow": 2.378,
"whLifetime": 0.0,
"varhLeadLifetime": 0.0,
"varhLagLifetime": 0.0,
"vahLifetime": 0.0,
"rmsCurrent": 0.539,
"rmsVoltage": 246.078,
"reactPwr": -0.0,
"apprntPwr": 60.302,
"pwrFactor": 0.09,
"whToday": 0.0,
"whLastSevenDays": 0.0,
"vahToday": 0.0,
"varhLeadToday": 0.0,
"varhLagToday": 0.0,
"lines": [
{
"wNow": 2.079,
"whLifetime": 0.0,
"varhLeadLifetime": 0.0,
"varhLagLifetime": 0.0,
"vahLifetime": 0.0,
"rmsCurrent": 0.249,
"rmsVoltage": 238.697,
"reactPwr": -0.0,
"apprntPwr": 59.227,
"pwrFactor": 0.09,
"whToday": 0,
"whLastSevenDays": 0,
"vahToday": 0,
"varhLeadToday": 0,
"varhLagToday": 0
},
{
"wNow": 0.263,
"whLifetime": 0.0,
"varhLeadLifetime": 0.0,
"varhLagLifetime": 0.0,
"vahLifetime": 0.0,
"rmsCurrent": 0.19,
"rmsVoltage": 3.772,
"reactPwr": -0.0,
"apprntPwr": 0.718,
"pwrFactor": 0.0,
"whToday": 0,
"whLastSevenDays": 0,
"vahToday": 0,
"varhLeadToday": 0,
"varhLagToday": 0
},
{
"wNow": 0.035,
"whLifetime": 0.0,
"varhLeadLifetime": 0.0,
"varhLagLifetime": 0.0,
"vahLifetime": 0.0,
"rmsCurrent": 0.1,
"rmsVoltage": 3.609,
"reactPwr": -0.0,
"apprntPwr": 0.358,
"pwrFactor": 0.0,
"whToday": 0,
"whLastSevenDays": 0,
"vahToday": 0,
"varhLeadToday": 0,
"varhLagToday": 0
}
]
}
],
"consumption": [
{
"type": "eim",
"activeCount": 0,
"measurementType": "total-consumption",
"readingTime": 1606340801,
"wNow": 0.181,
"whLifetime": 0.0,
"varhLeadLifetime": 0.0,
"varhLagLifetime": 0.0,
"vahLifetime": 0.0,
"rmsCurrent": 0.289,
"rmsVoltage": 246.723,
"reactPwr": 0.0,
"apprntPwr": 71.334,
"pwrFactor": 0.0,
"whToday": 0.0,
"whLastSevenDays": 0.0,
"vahToday": 0.0,
"varhLeadToday": 0.0,
"varhLagToday": 0.0,
"lines": [
{
"wNow": -0.118,
"whLifetime": 0.0,
"varhLeadLifetime": 0.0,
"varhLagLifetime": 0.0,
"vahLifetime": 0.0,
"rmsCurrent": -0.001,
"rmsVoltage": 238.588,
"reactPwr": 0.0,
"apprntPwr": -0.203,
"pwrFactor": -1.0,
"whToday": 0,
"whLastSevenDays": 0,
"vahToday": 0,
"varhLeadToday": 0,
"varhLagToday": 0
},
{
"wNow": 0.263,
"whLifetime": 0.0,
"varhLeadLifetime": 0.0,
"varhLagLifetime": 0.0,
"vahLifetime": 0.0,
"rmsCurrent": 0.19,
"rmsVoltage": 3.558,
"reactPwr": 0.0,
"apprntPwr": 0.676,
"pwrFactor": 0.39,
"whToday": 0,
"whLastSevenDays": 0,
"vahToday": 0,
"varhLeadToday": 0,
"varhLagToday": 0
},
{
"wNow": 0.035,
"whLifetime": 0.0,
"varhLeadLifetime": 0.0,
"varhLagLifetime": 0.0,
"vahLifetime": 0.0,
"rmsCurrent": 0.1,
"rmsVoltage": 4.578,
"reactPwr": 0.0,
"apprntPwr": 0.457,
"pwrFactor": 0.08,
"whToday": 0,
"whLastSevenDays": 0,
"vahToday": 0,
"varhLeadToday": 0,
"varhLagToday": 0
}
]
},
{
"type": "eim",
"activeCount": 0,
"measurementType": "net-consumption",
"readingTime": 1606340801,
"wNow": -2.197,
"whLifetime": 0.0,
"varhLeadLifetime": 0.0,
"varhLagLifetime": 0.0,
"vahLifetime": 0.0,
"rmsCurrent": 0.25,
"rmsVoltage": 247.369,
"reactPwr": 0.0,
"apprntPwr": 59.786,
"pwrFactor": 0.0,
"whToday": 0,
"whLastSevenDays": 0,
"vahToday": 0,
"varhLeadToday": 0,
"varhLagToday": 0,
"lines": [
{
"wNow": -2.197,
"whLifetime": 0.0,
"varhLeadLifetime": 0.0,
"varhLagLifetime": 0.0,
"vahLifetime": 0.0,
"rmsCurrent": 0.25,
"rmsVoltage": 238.478,
"reactPwr": 0.0,
"apprntPwr": 59.786,
"pwrFactor": 0.0,
"whToday": 0,
"whLastSevenDays": 0,
"vahToday": 0,
"varhLeadToday": 0,
"varhLagToday": 0
},
{
"wNow": -0.0,
"whLifetime": 0.0,
"varhLeadLifetime": 0.0,
"varhLagLifetime": 0.0,
"vahLifetime": 0.0,
"rmsCurrent": -0.0,
"rmsVoltage": 3.344,
"reactPwr": 0.0,
"apprntPwr": -0.0,
"pwrFactor": 0.0,
"whToday": 0,
"whLastSevenDays": 0,
"vahToday": 0,
"varhLeadToday": 0,
"varhLagToday": 0
},
{
"wNow": -0.0,
"whLifetime": 0.0,
"varhLeadLifetime": 0.0,
"varhLagLifetime": 0.0,
"vahLifetime": 0.0,
"rmsCurrent": -0.0,
"rmsVoltage": 5.546,
"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"
}
]
}
Sample output with just consumption CT's (3 phases) installed:
{ "production":[ { "type":"inverters", "activeCount":14, "readingTime":1606391880, "wNow":135, "whLifetime":1491812 }, { "type":"eim", "activeCount":0, "measurementType":"production", "readingTime":1606392132, "wNow":0.919, "whLifetime":0.982, "varhLeadLifetime":1.333, "varhLagLifetime":3.617, "vahLifetime":597.594, "rmsCurrent":0.315, "rmsVoltage":698.098, "reactPwr":0.489, "apprntPwr":73.331, "pwrFactor":0, "whToday":0.982, "whLastSevenDays":0.982, "vahToday":3.594, "varhLeadToday":0.333, "varhLagToday":0.617, "lines":[ { "wNow":0, "whLifetime":0.001, "varhLeadLifetime":0.102, "varhLagLifetime":0.054, "vahLifetime":9.395, "rmsCurrent":0, "rmsVoltage":232.931, "reactPwr":0, "apprntPwr":0, "pwrFactor":0, "whToday":0, "whLastSevenDays":0, "vahToday":0, "varhLeadToday":0, "varhLagToday":0 }, { "wNow":0.919, "whLifetime":0.979, "varhLeadLifetime":0.021, "varhLagLifetime":3.563, "vahLifetime":538.178, "rmsCurrent":0.315, "rmsVoltage":232.885, "reactPwr":0.489, "apprntPwr":73.331, "pwrFactor":0, "whToday":0, "whLastSevenDays":0, "vahToday":0, "varhLeadToday":0, "varhLagToday":0 }, { "wNow":0, "whLifetime":0.002, "varhLeadLifetime":1.21, "varhLagLifetime":0, "vahLifetime":50.022, "rmsCurrent":0, "rmsVoltage":232.283, "reactPwr":0, "apprntPwr":0, "pwrFactor":0, "whToday":0, "whLastSevenDays":0, "vahToday":0, "varhLeadToday":0, "varhLagToday":0 } ] } ], "consumption":[ { "type":"eim", "activeCount":1, "measurementType":"total-consumption", "readingTime":1606392132, "wNow":475.964, "whLifetime":2377318.296, "varhLeadLifetime":2567745.952, "varhLagLifetime":1399.872, "vahLifetime":5795333.395, "rmsCurrent":5.784, "rmsVoltage":698.21, "reactPwr":-989.586, "apprntPwr":1347.256, "pwrFactor":0.36, "whToday":9240.296, "whLastSevenDays":136950.296, "vahToday":18957.395, "varhLeadToday":12903.952, "varhLagToday":5.872, "lines":[ { "wNow":330.718, "whLifetime":814767.207, "varhLeadLifetime":1344943.939, "varhLagLifetime":125.906, "vahLifetime":2013122.202, "rmsCurrent":3.073, "rmsVoltage":232.852, "reactPwr":-543.905, "apprntPwr":716.403, "pwrFactor":0.47, "whToday":4702.207, "whLastSevenDays":56059.207, "vahToday":9346.202, "varhLeadToday":6618.939, "varhLagToday":0.906 }, { "wNow":-21.852, "whLifetime":343690.162, "varhLeadLifetime":410536.99, "varhLagLifetime":650.84, "vahLifetime":1869140.064, "rmsCurrent":0.895, "rmsVoltage":232.938, "reactPwr":-127.997, "apprntPwr":208.063, "pwrFactor":-0.11, "whToday":1370.162, "whLastSevenDays":25297.162, "vahToday":3698.064, "varhLeadToday":2556.99, "varhLagToday":0.84 }, { "wNow":167.098, "whLifetime":1218860.927, "varhLeadLifetime":812265.023, "varhLagLifetime":623.125, "vahLifetime":1913071.128, "rmsCurrent":1.817, "rmsVoltage":232.42, "reactPwr":-317.683, "apprntPwr":422.789, "pwrFactor":0.4, "whToday":3167.927, "whLastSevenDays":55593.927, "vahToday":5913.128, "varhLeadToday":3728.023, "varhLagToday":4.125 } ] }, { "type":"eim", "activeCount":1, "measurementType":"net-consumption", "readingTime":1606392132, "wNow":475.045, "whLifetime":0, "varhLeadLifetime":2567744.619, "varhLagLifetime":1396.255, "vahLifetime":5795333.395, "rmsCurrent":5.47, "rmsVoltage":698.154, "reactPwr":-989.097, "apprntPwr":3818.661, "pwrFactor":0.12, "whToday":0, "whLastSevenDays":0, "vahToday":0, "varhLeadToday":0, "varhLagToday":0, "lines":[ { "wNow":330.718, "whLifetime":0, "varhLeadLifetime":1344943.836, "varhLagLifetime":125.852, "vahLifetime":2013122.202, "rmsCurrent":3.073, "rmsVoltage":232.891, "reactPwr":-543.905, "apprntPwr":715.727, "pwrFactor":0.46, "whToday":0, "whLastSevenDays":0, "vahToday":0, "varhLeadToday":0, "varhLagToday":0 }, { "wNow":-22.771, "whLifetime":0, "varhLeadLifetime":410536.969, "varhLagLifetime":647.277, "vahLifetime":1869140.064, "rmsCurrent":0.58, "rmsVoltage":232.911, "reactPwr":-127.509, "apprntPwr":135.035, "pwrFactor":-0.17, "whToday":0, "whLastSevenDays":0, "vahToday":0, "varhLeadToday":0, "varhLagToday":0 }, { "wNow":167.098, "whLifetime":0, "varhLeadLifetime":812263.814, "varhLagLifetime":623.125, "vahLifetime":1913071.128, "rmsCurrent":1.817, "rmsVoltage":232.352, "reactPwr":-317.683, "apprntPwr":422.104, "pwrFactor":0.4, "whToday":0, "whLastSevenDays":0, "vahToday":0, "varhLeadToday":0, "varhLagToday":0 } ] } ], "storage":[ { "type":"acb", "activeCount":0, "readingTime":0, "wNow":0, "whNow":0, "state":"idle" } ] }
It seems the only data this may not include is frequency, although I'm not sure that's actually being measured or if it's just a fixed value. /stream/meter
may still be better as a way to get more frequent data to react to power variations. But for reporting purposes this seems like the best solution.
@OllemGit How are your consumption CT's wired? Apparently as "Load with solar production".
One of your consumption wNow values above is negative, which would mean 'production feeding back to the grid'.
There are two ways to wire (and accordingly manually configure) consumption CT's:
The first measures the actual value of consumption - production
.
The second measures the actual true consumption
values.
I wonder how the Envoy handles both situations and how it calculates net-consumption and total-consuption values.
In case of "Load only" the CT's should measure total-consumption. And net-consumption can be calculated as total-consumption - production. In a situation where only consumption CT's are installed, there is no CT measured production. CT's apparently are measured once a second (like input voltage?), but without production CT's there is no live production data, only production data that comes from the inverters every 5 minutes. Will in this case, net-production be a bogus value?
In case of "Load with solar production" the CT's should measure net-consumption. And total-consumption can be calculated as net-consumption + production. Again, in a situation where only consumption CT's are installed, there is no CT measured production. The CT's apparently are measured once a second, but without production CT's there is no live production data, only production data that comes from the inverters every 5 minutes. Will in this case, total-production be a bogus value?
I would expect that the Envoy knows which inverter is connected to which phase (based on doing an inventory). But I have been unable to find a relation between inverter and phase/line in the available data.
It seems the only data this may not include is frequency.
Which is probably not an issue.
In Europe the grid frequency is 50 Hz. In my Envoy I see below configuration values. It appears to work with frequencies between 48 an 51 Hz, which is 50 Hz +2%/-4%.
"frequency_limits": {
"label": "Frequency limits",
"parameters": {
"fast_over_frequency_trip_time": {
"label": "Over frequency trip time",
"parameter_type": "tpm",
"display_value": "2,000",
"units": "ms",
"table": "Over frequency disconnect",
"row": "Limit",
"column": "Time"
},
"fast_over_frequency_limit": {
"label": "Over frequency limit",
"parameter_type": "tpm",
"display_value": "51.00",
"units": "Hz",
"table": "Over frequency disconnect",
"row": "Limit",
"column": "Magnitude"
},
"fast_under_frequency_trip_time": {
"label": "Under frequency trip time",
"parameter_type": "tpm",
"display_value": "2,000",
"units": "ms",
"table": "Under frequency disconnect",
"row": "Limit",
"column": "Time"
},
"fast_under_frequency": {
"label": "Under frequency limit",
"parameter_type": "tpm",
"display_value": "48.00",
"units": "Hz",
"table": "Under frequency disconnect",
"row": "Limit",
"column": "Magnitude"
},
"reconnect_ac_frequency_high": {
"label": "Reconnect AC frequency high",
"parameter_type": "tpm",
"display_value": "50.05",
"units": "Hz",
"table": "Reconnect frequency",
"row": "High",
"column": "Magnitude"
},
"reconnect_ac_frequency_low": {
"label": "Reconnect AC frequency low",
"parameter_type": "tpm",
"display_value": "48.00",
"units": "Hz",
"table": "Reconnect frequency",
"row": "Low",
"column": "Magnitude"
}
}
},
@OllemGit How are your consumption CT's wired? Apparently as "Load with solar production".
One of your consumption wNow values above is negative, which would mean 'production feeding back to the grid'.
There are two ways to wire (and accordingly manually configure) consumption CT's:
* "Load with solar production" * "Load only"
The first measures the actual value of
consumption - production
. The second measures the actual trueconsumption
values.I wonder how the Envoy handles both situations and how it calculates net-consumption and total-consuption values.
I would expect that the Envoy knows which inverter is connected to which phase (based on doing an inventory). But I have been unable to find a relation between inverter and phase/line in the available data.
The fact I only have consumption CT's and no production CT's is not my choice, but the installation firm initially didn't want to install any CT's at all. Because the Envoy already measures production we agreed to install only the consumption ones.
They selected 'Load Only' in the configuration.
I haven't been able to figure out if there are any bogus values measured. To make things more complicated I have some more solar panels which are using a regular inverter (Onmik). (The production ratio is around 2:3 Omnik:Enphase) So this might also be the reason for showing some strange numbers?
I currently have no CT's installed, so everything below will be a theoretical excercise based on Envoy documentation, my Envoy's firmware (Web UI/API) and experience.
Be aware that the information below contains some (common sense) assumptions.
In my Envoy-S Installer setup menu two options can be selected for configuring the Consumption CT's: (visible in manual metering setup)
This is not just a configuration setting but very probably needs to correspond to how the CT's are physically wired. I have tried to visualize both options in below image.
In the 'Envoy-S Metered Multiphase Installation and Operation' manual only a single wiring option is documented, while the firmware provides the two different options listed above. The wiring documented in the manual corresponds to a "Load with solar production" situation because both consumption and production current can flow through the CT metered wires (actually their delta and the direction is determined by which of both is higher).
To create a "Load only" situation the Consumption CT's will have to be wired as depicted in green on the image. Only then will the CT's measure pure total-consumption. While this option is not described in the manual, it can be selected in the firmware. (The manual is not exhaustive and lacks certain details and explanations.)
An advantage of "Load with solar production" wiring is that all consumption is measured, including power used by the Q-Relay and the Envoy. It is yet unclear however if this will also work reliable when only consumption CT's installed.
An advantage of "Load only" wiring may be, in case only consumption CT's are installed (and "Load with solar production" can work only when production CT's are installed), that you still get actual total-consumption measurements. And when using stream/meter
to read them that they can be combined with data reported by a smart electricity meter (e.g. every second by a Dutch DSMR5 compliant smart meter) for use in Home Assistant, Grafana etc.. The disadvantage is that this will not measure power usage from the Envoy itself and the Q-Relay (so your own consumption measurements will not 100% exactly match the consumption measurement by your electricity meter and corresponding energy bill).
Maybe others have experience with "Load only" wiring of their consumption CT's and can share their experience here.
Note that I enhanced an existing image. The black consumption CT's could also be placed after the primary circuit breaker and the green consumption CT"s could also be placed before the residual current circuit breakers. Whichever is most practical to implement in existing installations.
In the "Load only" case the CT's will only measure true actual consumption, and because the production plays no part here the measured values are/should be only positive and never negative.
In the "Load with solar production" case the CT's will measure the difference between consumption and production (per phase). When production on a phase is 100W and consumption on that phase is 200W, 100W will flow from the solar panels to the consumer and the other 100W will be coming from the grid: the consumption CT for that phase will measure consumption - production
in this case 200W - 100W = 100W.
When production is higher than consumption, e.g. production is 300W and consumption is 200W then the consumption CT should measure 200W - 300W = -100W (which is unused production flowing back to the grid).
@OllemGit This could explain why there is a negative value in your consumption values. So possibly your CT's are wired according to "Load with solar production" instead of "Load only". (Other possible causes could be incorrect direction placement of a CT or its wires being switched).
The problem with "Load with solar production" is that production must also be metered in order to calculate the true consumption values. But in your situation the production CT's are not installed.
The Envoy could possibly use production data from the inverters as substitute for the missing CT metered production. But that is only updated once every 5 minutes but the results probably would not be accurate. I also wonder whether the Envoy actually knows which micro-inverters are connected to which phase (this would be required to use production data from the inverters as substitute for missing CT production data). I suspect however, that the Envoy will not use the inverter data as substitute.
In worst case I could be totally mistaking and "Load with solar production" could possibly mean 'consumption with production CT's also installed' but I guess not because the firmware will already know if production CT's are enabled (in the configuration).
Interesting questions:
Is an Envoy installation with only consumption CT's installed actually a supported configuration? I guess so because in manual metering configuration (in installer setup) one can have zero production CT's selected while selecting 1, 2 or 3 consumption CT's.
If installing only consumption CT's without installing production CT's is supported, is it still possible to wire them as "Load with solar production" or would this require them to be wired as "Load only" (because live CT production data is missing to calculate total-consumption)?
What production and consumption data is sent to the Enphase Enlighten cloud? Both (separately) the data reported by the micro-inverters and data from the CT's or will these be combined into single production and total-consumption values (in the Envoy, before uploading to the cloud)? And will the resolution be per 5 minutes only or will it be more fine-grained for the CT data?
To make things more complicated I have some more solar panels which are using a regular inverter (Onmik). (The production ratio is around 2:3 Omnik:Enphase) So this might also be the reason for showing some strange numbers?
Assuming that your CT's are wired as "Load with solar production" as explained above, does this mean that production current from both the Omnik and Enphase go through the same consumption CT's? If (and only if) true, then the values measured by your consumption CT's would indeed be strange and not be a reliable representation for neither consumption nor production.
If you combine production power from two different solar systems and then try to use the Envoy to measure power from both, (with only consumption CT's installed) the values reported by the Envoy will get skewed and be incorrect.
I wonder if the Envoy is actually able to properly handle a situation with only consumption CT's installed while they are wired as "Load with solar data" because 'live' production data (measured by production CT's) is missing and hence 'total-consumption' cannot be calculated.
As an alternative the production data reported by the micro-inverters could be used as a substitute for 'live' production data instead, but that is reported only every five minutes. And this would make no sense for data in /stream/meter
which updates every second, but it might be used for /production.json
which is only updated every 5 minutes. This is all just guessing however and I very much doubt if it is actually implemented that way.
You only use consumption CT's, which apparently are wired for "Load with solar production" while production is not measured with CT's. If your CT's measure combined power from both Omnik and Enphase then this will make it impossible to calculate total-consumption
because there is no corresponding data from production CT's (not even if production data reported by the Enphase micro-inverters is used as a substitute because that will only be from the Enphase system).
It will be wise to check the actual wiring of your system and make a diagram of it. That should give insight into how things are connected and how this relates to values reported by your consumption CT's. Take care when checking the wiring! The safest will be to power off the installation via the main circuit breaker and to power off both solar systems (via their own circuit breakers).
Thanks a lot for sharing. I'll open the covers somewhere this weekend to check the wiring!
I have exactly this setup and my data looks like:
{
"production":[
{
"type":"inverters",
"activeCount":17,
"readingTime":1607421357,
"wNow":356,
"whLifetime":118575
},
{
"type":"eim",
"activeCount":1,
"measurementType":"production",
"readingTime":1607421490,
"wNow":417.31,
"whLifetime":93680.689,
"varhLeadLifetime":0.0,
"varhLagLifetime":124272.12,
"vahLifetime":207490.467,
"rmsCurrent":2.57,
"rmsVoltage":695.457,
"reactPwr":250.971,
"apprntPwr":595.576,
"pwrFactor":0.75,
"whToday":722.689,
"whLastSevenDays":17616.689,
"vahToday":3455.467,
"varhLeadToday":0.0,
"varhLagToday":2789.12,
"lines":[
{
"wNow":149.504,
"whLifetime":31973.149,
"varhLeadLifetime":0.0,
"varhLagLifetime":44241.487,
"vahLifetime":68650.588,
"rmsCurrent":0.801,
"rmsVoltage":233.164,
"reactPwr":90.281,
"apprntPwr":186.946,
"pwrFactor":0.84,
"whToday":255.149,
"whLastSevenDays":6054.149,
"vahToday":1122.588,
"varhLeadToday":0.0,
"varhLagToday":993.487
},
{
"wNow":144.543,
"whLifetime":33727.036,
"varhLeadLifetime":0.0,
"varhLagLifetime":43843.069,
"vahLifetime":68530.93,
"rmsCurrent":0.85,
"rmsVoltage":230.685,
"reactPwr":87.209,
"apprntPwr":196.229,
"pwrFactor":0.78,
"whToday":248.036,
"whLastSevenDays":6208.036,
"vahToday":1087.93,
"varhLeadToday":0.0,
"varhLagToday":982.069
},
{
"wNow":123.263,
"whLifetime":27980.504,
"varhLeadLifetime":0.0,
"varhLagLifetime":36187.564,
"vahLifetime":70308.949,
"rmsCurrent":0.919,
"rmsVoltage":231.609,
"reactPwr":73.481,
"apprntPwr":212.401,
"pwrFactor":0.64,
"whToday":219.504,
"whLastSevenDays":5354.504,
"vahToday":1244.949,
"varhLeadToday":0.0,
"varhLagToday":813.564
}
]
}
],
"consumption":[
{
"type":"eim",
"activeCount":1,
"measurementType":"total-consumption",
"readingTime":1607421490,
"wNow":623.774,
"whLifetime":311353.602,
"varhLeadLifetime":241489.246,
"varhLagLifetime":124564.04,
"vahLifetime":459028.945,
"rmsCurrent":5.929,
"rmsVoltage":695.421,
"reactPwr":-707.4,
"apprntPwr":4123.115,
"pwrFactor":0.15,
"whToday":6832.602,
"whLastSevenDays":114982.602,
"vahToday":9641.945,
"varhLeadToday":5222.246,
"varhLagToday":2791.04,
"lines":[
{
"wNow":187.361,
"whLifetime":157611.297,
"varhLeadLifetime":88460.344,
"varhLagLifetime":44454.498,
"vahLifetime":195363.13,
"rmsCurrent":1.679,
"rmsVoltage":233.088,
"reactPwr":-209.852,
"apprntPwr":391.358,
"pwrFactor":0.48,
"whToday":2818.297,
"whLastSevenDays":53320.297,
"vahToday":3728.13,
"varhLeadToday":1926.344,
"varhLagToday":994.498
},
{
"wNow":102.675,
"whLifetime":57326.052,
"varhLeadLifetime":38090.541,
"varhLagLifetime":43902.555,
"vahLifetime":95441.1,
"rmsCurrent":0.009,
"rmsVoltage":230.701,
"reactPwr":-176.998,
"apprntPwr":2.083,
"pwrFactor":1.0,
"whToday":1398.052,
"whLastSevenDays":20457.052,
"vahToday":1950.1,
"varhLeadToday":810.541,
"varhLagToday":982.555
},
{
"wNow":333.738,
"whLifetime":96416.254,
"varhLeadLifetime":114938.361,
"varhLagLifetime":36206.987,
"vahLifetime":168224.715,
"rmsCurrent":2.559,
"rmsVoltage":231.632,
"reactPwr":-320.549,
"apprntPwr":592.663,
"pwrFactor":0.56,
"whToday":2616.254,
"whLastSevenDays":41205.254,
"vahToday":3963.715,
"varhLeadToday":2485.361,
"varhLagToday":813.987
}
]
},
{
"type":"eim",
"activeCount":1,
"measurementType":"net-consumption",
"readingTime":1607421490,
"wNow":206.463,
"whLifetime":257666.883,
"varhLeadLifetime":241489.246,
"varhLagLifetime":291.92,
"vahLifetime":459028.945,
"rmsCurrent":3.359,
"rmsVoltage":695.385,
"reactPwr":-456.429,
"apprntPwr":778.511,
"pwrFactor":0.28,
"whToday":0,
"whLastSevenDays":0,
"vahToday":0,
"varhLeadToday":0,
"varhLagToday":0,
"lines":[
{
"wNow":37.857,
"whLifetime":133375.993,
"varhLeadLifetime":88460.344,
"varhLagLifetime":213.011,
"vahLifetime":195363.13,
"rmsCurrent":0.878,
"rmsVoltage":233.013,
"reactPwr":-119.572,
"apprntPwr":203.727,
"pwrFactor":0.21,
"whToday":0,
"whLastSevenDays":0,
"vahToday":0,
"varhLeadToday":0,
"varhLagToday":0
},
{
"wNow":-41.869,
"whLifetime":44358.333,
"varhLeadLifetime":38090.541,
"varhLagLifetime":59.486,
"vahLifetime":95441.1,
"rmsCurrent":0.841,
"rmsVoltage":230.717,
"reactPwr":-89.789,
"apprntPwr":194.553,
"pwrFactor":-0.15,
"whToday":0,
"whLastSevenDays":0,
"vahToday":0,
"varhLeadToday":0,
"varhLagToday":0
},
{
"wNow":210.475,
"whLifetime":79932.557,
"varhLeadLifetime":114938.361,
"varhLagLifetime":19.423,
"vahLifetime":168224.715,
"rmsCurrent":1.64,
"rmsVoltage":231.655,
"reactPwr":-247.068,
"apprntPwr":380.231,
"pwrFactor":0.54,
"whToday":0,
"whLastSevenDays":0,
"vahToday":0,
"varhLeadToday":0,
"varhLagToday":0
}
]
}
],
"storage":[
{
"type":"acb",
"activeCount":0,
"readingTime":0,
"wNow":0,
"whNow":0,
"state":"idle"
}
]
}
For now I am getting phase data "the hacky way" like outlined here: https://community.home-assistant.io/t/need-testers-for-updated-enphase-envoy-sensor/213296/51?u=michel72
which now looks like:
But getting this into envoy-reader would be a lot better 👍
@HA-TB303
I have exactly this setup:
The image actually shows 2 different setups:
How are your Consumption CT's setup?
I have checked again. Mine are positioned between the residual current circuit breakers and the main 3 phase circuit breaker.
So I believe that would be your option 2. - Consumption CT's drawn in green: "Load only"
@HA-TB303
I have exactly this setup:
The image actually shows 2 different setups:
- Consumption CT's drawn in black: "Load with solar production"
- Consumption CT's drawn in green: "Load only"
How are your Consumption CT's setup?
Regarding this, is there actually a different setup required in the Enphase Envoy-S Metered, depending of the choice one makes for installing the consumption CT's, if so, where to find this setting?
I would just like to verify if it's setup correctly by the installer.
Any news with this issue? Are you planning to add support for the /production.json?details=1
endpoint?
Yeah, that would be great! I would like to create automations that use produced solar energy per phase and my ' hacky' way won't work anymore since v7 :(
+1 for support for the /production.json?details=1 endpoint. Would love to see additional 3phase level data in Home assistant.
+1 for support for the /production.json?details=1 endpoint. Would love to see additional 3phase level data in Home assistant.
You can use this HACS integration: https://github.com/posixx/home_assistant_custom_envoy
As discussed in #37 when using a three-phase system there is a lot of other data the equipment captures that is not being read. Apparently with installer permissions there's an API that gives things like total power, reactive power, frequency, voltage for each of the three phases in
/stream/meter
.There's also this reverse engineering to generate the needed password from the serial number:
https://thecomputerperson.wordpress.com/2016/08/28/reverse-engineering-the-enphase-installer-toolkit/
So maybe it would be possible to grab this API end-point as well and get some very rich data. The stream is even apparently around once per second in a continuously open connection so it should create a great power meter info.