home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
71.73k stars 29.99k forks source link

Enphase Envoy S Metered EU is missing all metrics in integration, IQ8 Inverters working though #107588

Closed KptnKMan closed 8 months ago

KptnKMan commented 8 months ago

The problem

Using the Enphase Envoy Integration, can see no metrics at all throught the Enphase Envoy S Metered that I own. I have 14 IQ8M Inverters that are all listed and showing metrics.

Also, looking at some other issues on forum and here, it appears that I might be missing some metrics.

SKU: ENV-S-EM-230 Firmware: D7.6.114

Missing metrics (Envoy S Metered EU): sensor.envoy_XXXXXXXXXXXX_current_power_production sensor.envoy_XXXXXXXXXXXX_energy_production_last_seven_days sensor.envoy_XXXXXXXXXXXX_energy_production_today sensor.envoy_XXXXXXXXXXXX_lifetime_energy_production image

Working Metrics (IQ8M Inverters): sensor.inverter_XXXXXXXXXXXX (working and showing data) sensor.inverter_XXXXXXXXXXXX_last_reported (Unused but assumed to be working) image

Metrics that are not working, can be selected, but show blank 0 for all history: image

As noted before, the IQ8M Inverters are reporting correctly: image

I know data is being produced, as the Enphase Cloud servce lists all solar production.

What version of Home Assistant Core has the issue?

core-2024.1.2

What was the last working version of Home Assistant Core?

core-2024.1.2

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Enphase Envoy

Link to integration documentation on our website

https://www.home-assistant.io/integrations/enphase_envoy

Diagnostics information

config_entry-enphase_envoy-cbfbb9250b215240c978fdf74b76d260.json.txt

Example YAML snippet

No response

Anything in the logs that might be useful for us?

Will update with relevant logs found

Additional information

No response

home-assistant[bot] commented 8 months ago

Hey there @bdraco, @cgarwood, @dgomes, @joostlek, @catsmanac, mind taking a look at this issue as it has been labeled with an integration (enphase_envoy) you are listed as a code owner for? Thanks!

Code owner commands Code owners of `enphase_envoy` can trigger bot actions by commenting: - `@home-assistant close` Closes the issue. - `@home-assistant rename Awesome new title` Renames the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign enphase_envoy` Removes the current integration label and assignees on the issue, add the integration domain after the command. - `@home-assistant add-label needs-more-information` Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue. - `@home-assistant remove-label needs-more-information` Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


enphase_envoy documentation enphase_envoy source (message by IssueLinks)

catsmanac commented 8 months ago

Hi @KptnKMan, can you upload the diagnostics report for the envoy? IN Ha you can find the 'download diagnostcs button on the envoy device page in the settings menu.

KptnKMan commented 8 months ago

Hi @catsmanac, I updated the first post with the diagnostic report as requested. Please let me know if anything else.

catsmanac commented 8 months ago

Thanks @KptnKMan. You mentioned it's a ENVOY-S Metered. Do you have Current Transformers (CT) installed? The diagnostics suggests not.

Can you enable debug[^1] on the Envoy , let it run for 2-3 minutes, then reload the Envoy integration [^2] so the debug captures a start as well. Let it run for 2-3 more minutes once it loaded and then end the debug. If you can share the log file after cleaning anything you want to remove then we can verify if CT is found or not.

[^1]: example shows mqtt integration, for Envoy it works the same on the envoy integration page [^2]: also on Enphase Envoy integration page use reload from afbeelding menu on right hand side

vrengad commented 8 months ago

stopped working for me aswell. attached the log below

{\rtf1\ansi\ansicpg1252\cocoartf2580 \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} {*\expandedcolortbl;;} \margl1440\margr1440\vieww11520\viewh8400\viewkind0 \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0

\f0\fs24 \cf0 Logger: homeassistant.config_entries\ Source: config_entries.py:406\ First occurred: 4:32:37 PM (1 occurrences)\ Last logged: 4:32:37 PM\ \ Error setting up entry Envoy xxxxxxx for enphase_envoy\ Traceback (most recent call last):\ File "/usr/local/lib/python3.11/site-packages/anyio/_core/_sockets.py", line 168, in try_connect\ stream = await asynclib.connect_tcp(remote_host, remote_port, local_address)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 2224, in connect_tcp\ await get_running_loop().create_connection(\ File "/usr/local/lib/python3.11/asyncio/base_events.py", line 1085, in create_connection\ raise exceptions[0]\ File "/usr/local/lib/python3.11/asyncio/base_events.py", line 1069, in create_connection\ sock = await self._connect_sock(\ ^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/asyncio/base_events.py", line 973, in _connect_sock\ await self.sock_connect(sock, address)\ File "/usr/local/lib/python3.11/asyncio/selector_events.py", line 628, in sock_connect\ return await fut\ ^^^^^^^^^\ File "/usr/local/lib/python3.11/asyncio/selector_events.py", line 668, in _sock_connect_cb\ raise OSError(err, f'Connect call failed {address}')\ OSError: [Errno 113] Connect call failed (\'91xxxx)\ \ The above exception was the direct cause of the following exception:\ \ Traceback (most recent call last):\ File "/usr/local/lib/python3.11/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions\ yield\ File "/usr/local/lib/python3.11/site-packages/httpcore/_backends/anyio.py", line 114, in connect_tcp\ stream: anyio.abc.ByteStream = await anyio.connect_tcp(\ ^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/anyio/_core/_sockets.py", line 230, in connect_tcp\ raise OSError("All connection attempts failed") from cause\ OSError: All connection attempts failed\ \ The above exception was the direct cause of the following exception:\ \ Traceback (most recent call last):\ File "/usr/local/lib/python3.11/site-packages/httpx/_transports/default.py", line 67, in map_httpcore_exceptions\ yield\ File "/usr/local/lib/python3.11/site-packages/httpx/_transports/default.py", line 371, in handle_async_request\ resp = await self._pool.handle_async_request(req)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection_pool.py", line 268, in handle_async_request\ raise exc\ File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection_pool.py", line 251, in handle_async_request\ response = await connection.handle_async_request(request)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection.py", line 99, in handle_async_request\ raise exc\ File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection.py", line 76, in handle_async_request\ stream = await self._connect(request)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection.py", line 124, in _connect\ stream = await self._network_backend.connect_tcp(kwargs)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpcore/_backends/auto.py", line 30, in connect_tcp\ return await self._backend.connect_tcp(\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpcore/_backends/anyio.py", line 112, in connect_tcp\ with map_exceptions(exc_map):\ File "/usr/local/lib/python3.11/contextlib.py", line 155, in exit\ self.gen.throw(typ, value, traceback)\ File "/usr/local/lib/python3.11/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions\ raise to_exc(exc) from exc\ httpcore.ConnectError: All connection attempts failed\ \ The above exception was the direct cause of the following exception:\ \ Traceback (most recent call last):\ File "/usr/local/lib/python3.11/site-packages/pyenphase/firmware.py", line 36, in _get_info\ return await self._client.get(\ ^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1786, in get\ return await self.request(\ ^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1559, in request\ return await self.send(request, auth=auth, follow_redirects=follow_redirects)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1646, in send\ response = await self._send_handling_auth(\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1674, in _send_handling_auth\ response = await self._send_handling_redirects(\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1711, in _send_handling_redirects\ response = await self._send_single_request(request)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1748, in _send_single_request\ response = await transport.handle_async_request(request)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpx/_transports/default.py", line 370, in handle_async_request\ with map_httpcore_exceptions():\ File "/usr/local/lib/python3.11/contextlib.py", line 155, in exit\ self.gen.throw(typ, value, traceback)\ File "/usr/local/lib/python3.11/site-packages/httpx/_transports/default.py", line 84, in map_httpcore_exceptions\ raise mapped_exc(message) from exc\ httpx.ConnectError: All connection attempts failed\ \ During handling of the above exception, another exception occurred:\ \ Traceback (most recent call last):\ File "/usr/src/homeassistant/homeassistant/config_entries.py", line 406, in async_setup\ result = await component.async_setup_entry(hass, self)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/src/homeassistant/homeassistant/components/enphase_envoy/init.py", line 24, in async_setup_entry\ await coordinator.async_config_entry_first_refresh()\ File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 265, in async_config_entry_first_refresh\ await self._async_refresh(\ File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh\ self.data = await self._async_update_data()\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/src/homeassistant/homeassistant/components/enphase_envoy/coordinator.py", line 145, in _async_update_data\ await self._async_setup_and_authenticate()\ File "/usr/src/homeassistant/homeassistant/components/enphase_envoy/coordinator.py", line 100, in _async_setup_and_authenticate\ await envoy.setup()\ File "/usr/local/lib/python3.11/site-packages/pyenphase/envoy.py", line 109, in setup\ await self._firmware.setup()\ File "/usr/local/lib/python3.11/site-packages/pyenphase/firmware.py", line 51, in setup\ result = await self._get_info()\ ^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/tenacity/_asyncio.py", line 88, in async_wrapped\ return await fn(*args, *kwargs)\ ^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/tenacity/_asyncio.py", line 47, in call\ do = self.iter(retry_state=retry_state)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/tenacity/init.py", line 314, in iter\ return fut.result()\ ^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 449, in result\ return self.get_result()\ ^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 401, in get_result\ raise self._exception\ File "/usr/local/lib/python3.11/site-packages/tenacity/_asyncio.py", line 50, in call\ result = await fn(args, kwargs)\ ^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/pyenphase/firmware.py", line 43, in _get_info\ return await self._client.get(\ ^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1786, in get\ return await self.request(\ ^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1559, in request\ return await self.send(request, auth=auth, follow_redirects=follow_redirects)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1646, in send\ response = await self._send_handling_auth(\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1674, in _send_handling_auth\ response = await self._send_handling_redirects(\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1711, in _send_handling_redirects\ response = await self._send_single_request(request)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpx/_client.py", line 1748, in _send_single_request\ response = await transport.handle_async_request(request)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpx/_transports/default.py", line 371, in handle_async_request\ resp = await self._pool.handle_async_request(req)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection_pool.py", line 268, in handle_async_request\ raise exc\ File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection_pool.py", line 251, in handle_async_request\ response = await connection.handle_async_request(request)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection.py", line 76, in handle_async_request\ stream = await self._connect(request)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpcore/_async/connection.py", line 124, in _connect\ stream = await self._network_backend.connect_tcp(**kwargs)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpcore/_backends/auto.py", line 30, in connect_tcp\ return await self._backend.connect_tcp(\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/httpcore/_backends/anyio.py", line 114, in connect_tcp\ stream: anyio.abc.ByteStream = await anyio.connect_tcp(\ ^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/site-packages/anyio/_core/_sockets.py", line 217, in connect_tcp\ async with create_task_group() as tg:\ File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 668, in aexit\ raise cancelled_exc_while_waiting_tasks\ File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 648, in aexit\ await asyncio.wait(self.cancel_scope._tasks)\ File "/usr/local/lib/python3.11/asyncio/tasks.py", line 428, in wait\ return await _wait(fs, timeout, return_when, loop)\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ File "/usr/local/lib/python3.11/asyncio/tasks.py", line 535, in _wait\ await waiter\ asyncio.exceptions.CancelledError: Global task timeout\ }

catsmanac commented 8 months ago

Hi @vrengad, your problem report is a different one as @KptnKMan's problem.

It seems Home Assistant can not connect to your Envoy. Make sure you have correct username and password and ip address of the Envoy. If the problem persist, please open an new issue so we can avoid different problems in the same issue which makes it hard to resolve.

KptnKMan commented 8 months ago

Hi @catsmanac thanks for the response. I'll do a physical inspection, but I'm away from the unit a couple days, so currently only access remotely. I'll get on with producing the detailed report asap.

@vrengad I saw this error in my logs when my Envoy went offline, you can actually see the gap in my metrics in the screenshot above, in the first comment. The error occured after I had the Integration setup and working already. This error/issue never happened before. I resolved it by restarting the Envoy, but as its directly connected to the mains, I had to turn off my main breaker (essentially the entire house) and back on, then after a few minutes it reconnected as normal. Not an issue for me, as I use UPS on important things. Hope that helps.

vrengad commented 8 months ago

thanks both. resolved after turn off my main breaker.

KptnKMan commented 8 months ago

Hi @catsmanac, I got the debug log as requested. home-assistant_enphase_envoy_2024-01-10T13-12-07.529Z.log

Unfortunately, I encountered the same issue where my Enphase Envoy became unresponsive from the network again and got someone to restart the unit after some hours, personally I'll do a physical inspection in the coming days to check for CTs. I'm not sure why this happened, but I have never encountered this before (Since March 2023), and it has now happened twice in 8 days since using this Integration. It's weird, and I'm not saying it's the Integration, but I'm just noting the odd behaviour. Anyway, you can see the startup error in the log as well and then it was resolved at "2024-01-10 13:40:24.630".

Hope this helps.

catsmanac commented 8 months ago

To understand some of what happened @KptnKMan, you are running HA with Enphase Envoy since March 2023 and like 8 days ago you switched to this integration? That's when your data issue surfaced? Anything else that changed around that time? HA upgrade, Envoy firmware change?

The debug file confirms that the integration is only requesting for the inverters and the V1 production data. The V1 production data only shows the current power in the data. The integration will do this when it does not see CT's configured. Different Envoy firmware versions however behave slightly different, so this can play a role as well.

Any change you are able to generate test fixtures as described here for your envoy?

Or open http://envoy.local/ivp/meters and see what it shares? It may redirect you to an authentication page where you can enter the envoy token that you can obtain from the enphase website.

KptnKMan commented 8 months ago

Hi @catsmanac sorry for the delayed response, I've been away from home and have now returned, and spent some hours reviewing everything and also your notes.

To understand some of what happened @KptnKMan, you are running HA with Enphase Envoy since March 2023 and like 8 days ago you switched to this integration? That's when your data issue surfaced? Anything else that changed around that time? HA upgrade, Envoy firmware change?

I have been running HA long before this point, but only started using the HA Enphase Envoy Integration since 2nd January 2024, but I have had no issues with my Envoy-S-Metered before that time. Part of the reason I've left it this long, is I tried to use it before, but it just didn't work so I left it alone for a while. The recent hiccups I noticed, I don't think are due to the Integration, but I was just noting that it's an odd coincidence that they started now after using the Integration for the first time. There were some strange issues on 8th and 10th January, but I've not seen any more issues since. I did recently do a HA upgrade on 31st December, from 2023.6.3 to 2023.12, but that was a staged upgrade to ensure no issues, and seemed to go fine.

The debug file confirms that the integration is only requesting for the inverters and the V1 production data. The V1 production data only shows the current power in the data. The integration will do this when it does not see CT's configured. Different Envoy firmware versions however behave slightly different, so this can play a role as well.

I did a physical inspection of my Enphase installation, and both the Production and Consumption CTs are installed. I powered down the entire system and did a thorough inspection, verified that everything is wired up per the official Enphase wiring diagrams, and checked for advice with a local electrician friend that everything is as it should be. Something I did notice while going through the Enphase installer documentation, is that CT reading needs to be enabled via the installer toolkit on the Envoy itself, and then the readings are available. Some details are here in this enphase wiki page. Maybe its possible that its wired up, but not enabled in the installer console. I'm going to check with my installer on Monday, and ask them to definitively enable consumption and production measuring, in case it's not enabled on the Envoy.

Any change you are able to generate test fixtures as described here for your envoy?

I've been trying to get this working for a while, and I just get python errors. Seems that I'm fighting with my python virtualenv interpreter, but I'll fix that later. image

Or open http://envoy.local/ivp/meters and see what it shares? It may redirect you to an authentication page where you can enter the envoy token that you can obtain from the enphase website.

I managed to get a token created for my Envoy and logged into it. And right at the top of the page, I can see this: image

So I take it that even though the CTs are connected, it may not be enabled?

KptnKMan commented 8 months ago

I contacted Enphase, and they have enabled the CTs remotely: image

They also advised me that it would take a few hours for "the task to be completed". After a few minutes I went to check the http://envoy.local portal and this showed up: image

So of course I went to check HA immediately to see if anything showed up, but nothing has as yet. I'll check again in the morning, especially when some production is active.

I'll update as I find anything.

cgarwood commented 8 months ago

You'll likely need to restart HA or reload the Enphase Envoy integration in HA. I believe it will only discover the new entities on an HA restart or integration reload.

catsmanac commented 8 months ago

Hi @KptnKMan, good to hear you found the issue. Not installed or installed but disabled CT on Envoy-metered would indeed show the behavior you had. Depending on firmware version, todays and last 7 days values will be 0 or like in your case lifetime and/or current power is 0 as well.

One of the upcoming versions of HA Enphase Envoy will include more details in the debug log to make this situation clear without the steps I asked you to check.

Like @cgarwood describes, reload the envoy from the Envoy integration page or just restart HA. The Integration checks the available Envoy features at startup and based on that information it continues collecting data for found features only. Once it is cycled it will find the CT data and start collecting it.

KptnKMan commented 8 months ago

Hi @catsmanac and @cgarwood, I saw there was a 2024.1.4 update for HA yesterday, so I installed that and went to bed. I noticed in the changelogs (I'm one of those who read the changelog, commit history and breaking changes list, even if I don't understand everything), it looks like there was an Pyenphase version bump, so the system was restarted with that update.

Just now this morning, the Enphase http://enphase.local portal shows more details: image

In HA it appears as though metrics are also coming through since 3am: image image

It looks like things are reporting as expected now. I hope that at least someone might be able to find this issue and get some insight.

catsmanac commented 8 months ago

Thanks for confirming @KptnKMan. If you are all set, please close the issue as I can't.

And yes, HA released the version with more debug details in pyenphase yesterday. You don't need to use this option now as all is ok. The real issue is caused by the Enphase Envoy firmware and was not fixed by the pyenphase update but by the fact you had the CT enabled.

I've seen more reports of Envoy-metered installations without enabled CT or even CT's not yet installed (as prep for future expansion I guess) showing this same problem. Sometimes solution is simply enabling the CT's in other cases it's a given that not all data will be available. Maybe Enphase will fix this in some future update, so far it became worse with each new firmware.

KptnKMan commented 8 months ago

Thanks @catsmanac, but I have a final question if you don't mind?

I didn't mention before that I have been using 2x HomeWizard SDM230 units to measure my GRID and SOLAR usage. These are inline with the Enphase CTs installed in the same system.

I've been looking to decide which to use as primary measurement method, but when comparing the two systems, I see a discrepancy in the measurement: image

It looks as though the Enphase Consumption CT measurement is off, or is compensating. Is this correct, and can this be used for HA in its current configuration? It occurs to me that maybe I should contact Enphase again and have the Consumption measurement changed to "load only", rather than "load with solar" as this doesn't seem to track right.

In the end, it is tracking my consumption, from the perspective of the Solar Array, and maybe I'm just used to looking at it differently. But I'm not sure how useful this is for use in HA as the Energy measurement in the Dashboard, for example?

Am I missing something?

catsmanac commented 8 months ago

I certainly don't mind @KptnKMan. The consumption number reported by Enphase is house consumption (a.k.a. total-consumption) calculated from the solar production CT and the Solar+load CT (grid exchange). The production numbers are sourced from the Solar CT.

So production numbers should be close. Consumption numbers require a calculation using grid and solar measurement. Incoming Grid Power + Solar Production Power = House power (depending how the meters report incoming and outgoing flows as positive or negative)

We are working on a next version that will provide net current Power (to/from grid) from the consumption CT as well as net-consumption energy (grid import) and net-production (grid-export) for use with the energy dashboard. That net current power should be the same number as what you are observing from your SDM 230 Grid measurement (aside from +/- signing depending how they are mounted). But this is at best March release I'd guess.

Let me know if this makes sense or not.

KptnKMan commented 8 months ago

Thanks @catsmanac I really appreciate so much you taking the time to explain this. Your explanation is inline with my understanding of what's happening, in that this is a compensated calculation for my total home consumption based off the CTs. Its definitely a good consistent measurement to have.

As it is, I believe I have this configured correctly according to the Enphase advice in the enphase wiki page. In particular I was thinking about this image from the above link, regarding Consumption CT configuration: image

My main concern is how using this would work with the Home Assistant Energy Dashboard configuration?

I currently use the 2x HomeWizard SDM230 units in my Energy Dashboard configuration as my GRID and SOLAR, but if I was to switch to using the Enphase Integration provided metrics would this be appropriate considering the discrepancy?

It occurs in my mind that this may throw things off? Having a "raw grid consumption" measurement alongside the current one would seem like a good idea because the "net consumption" calculated measurement threw me off.

As I've been writing this, I thought I should double-check and indeed saw these: image

As you said, this is insufficient for correct "grid-import" and "grid-export", but it also occurs to me now that these are measured in kWh and I've been looking mainly at kW and W measurements. I run some automations from the W/kW measurements, so they are definitely good to have, but again there is nothing yet sufficient for HA Energy Dashboard usage, good to know.

I look forward to the updated measurements being released in the coming months.

Also, you mentioned something else intersting, about how they are mounted. That's something I originally had some issues with when installing the HomeWizard SDM230 unit for SOLAR, as I originally installed it in a "production" capacity (opposite of its orientation now) and this proved to throw off all my HA metrics and measurements, dashboard, etc. In the end I swapped it and now it measures in "minus" but is good for the Dashboard, apparently everything is supposed to "point in a direction relative to GRID".

The way they are tracking now in the graph I posted is the "correct" way as I use the "solar SDM230" export for my Dashboard, and that works fine.

I never got an answer for that weirdness, but it was backwards in my head.

0-skill commented 8 months ago

We are working on a next version that will provide net current Power (to/from grid) from the consumption CT as well as net-consumption energy (grid import) and net-production (grid-export) for use with the energy dashboard. That net current power should be the same number as what you are observing from your SDM 230 Grid measurement (aside from +/- signing depending how they are mounted). But this is at best March release I'd guess.

Great news! I was just looking for this information on this repo. If you need a beta tester, I have a risk-free installation in progress. 🙏🏻

catsmanac commented 8 months ago

Great news! I was just looking for this information on this repo. If you need a beta tester, I have a risk-free installation in progress.

Hi @0-skill, thanks for your offer to test.

You may want to check HA Issue 82879 as well, it on this same topic.

Adding the new functionality is a 2 step process, first extending pyenphase module and then the HA Enphase-Envoy integration itself. The code change for pyenphase is in review now. Depending on your environment you could clone pyenphase and do some testing, but then best head to pyenphase and we can discuss over there how you can test.

Testing with HA would be next step and the PR and Issue for using next version of pyenphase and updated HA integration will show up there later.

dbisson17 commented 8 months ago

Hello @catsmanac I have Emphase IQ8MC since 3 days now and I have installed in the same time HA on my raspberry pi 3. When I start up HA, it tell me that I can add some automatic integration like 'Enphse system'. So I did it.

My IQ8MC firmware is 7.X so I put (my email address enchase + my password) -> maybe it's the wrong credentials ?

So I check on HA after and it show me some info like :

But my request is to have the 'net data' -> Actual Produce - Actual need of power . Is it possible ? If yes how to do it ?

I check also on emphase I have metered activate and working.

And second part, is it possible to integrate this data on the 'energy system' of HA ? If yes, which data I need to implement on each part ?

Thanks for your time and I hope it's clear for you.

PS : I didn't installed the good integration ( I show pyenphase maybe it's an another integration who is working but I don't know how to integrated it on my raspberry pi 3, I'm a newbie) ;)

catsmanac commented 8 months ago

Hi @dbisson17,

As for

But my request is to have the 'net data' -> Actual Produce - Actual need of power . Is it possible ? If yes how to do it ?

you need to have some patience as this is currently being added to the code but not yet released. may take 3-6 weeks based on HA releases.

And for

And second part, is it possible to integrate this data on the 'energy system' of HA ? If yes, which data I need to implement on each part

that is certainly the case. For solar production use the data total (lifetime energy production). For grid consumption and return to grid you have to wait until net-consumption and net-production come available or use information from another source like a smart electricity meter or other device.

As an alternative you can consider using a custom integration, some are available that have this data today, but these are not supported through this HA issues mechanism but by the authors of these.