Enphase Envoy with Energy Dashboard

You only have that graph if you have the Envoy Metered including the CT-clamps installed.

If you have the Envoy Standard then you only get to see the production side. Not the consumption side. You can use a P1 reader (e.g. a P1 cable connected to a Raspberry Pi with HA) to get the consumption side. And let HA create the dashboard for you.

I do have Envoy-S-Metered-EU (SKU: ENV-S-EM-230).

And the Enlighten app Energy doesn’t show that graph (screenshot below).

For the consumption, I use P1 meter, that’s correct.

It’s okay, I am just wondering why I don’t see that kind of graph on my Enlighten app.

Do you have CT-clamps installed in your fusebox? If you have a 3-phase system you need 6 CT-clamps.

If not…the Envoy Metered is just functioning as an Envoy Standard.

No, I don’t have CT clamps. So, I guess that’s the reason.

Thanks :pray:

1 Like

You could contact your installer. There is no need for the, more expensive, Metered Envoy if you don’t use the CT-clamps.

1 Like

Really appreciate this information! So I have (2) Envoy Emphase combiners for my system. How would I leverage your instructions to combine the two together for import/export energy information?

I don’t know what you mean. But if you have an envoy standard you would need your P1 information to combine them in HA to get the info on production, usage, export and import.

A simple P1 cable should do the trick.

1 Like

Does anybody in this topic ‘Enphase’ has a home battery which you want to add to the Home assistant dashboard.

The Enlighten app is showing in it’s ‘live status’ view the charge or discharge rate of the battery but there are no counters exposed (apart from the current battery percentage / capacity etc…). Did somebody figure out how to grab this info from the Enphase Envoy?
KR
Yves

Hi @ydestord,

The Posixx integration for HACS should do the trick.

https://github.com/posixx/home_assistant_custom_envoy

It should have battery integration :slightly_smiling_face:

Can someone advise on how to create a sensor for this URL?

envoy.local/ivp/meters/readings

This data is in near real time and I’m trying to see how to get this added to the HACS integration that supports token auth. thanks!

Last time I looked at that url (when I had v7 for a few weeks), the data seemed to be displayed in “blocks” of 30 seconds and was useless for near real time. Is that still the case, ie, you see a page full of data, then a 30 second pause, then another page of data etc

When I refresh the URL above it’s updating every second… envoy.local/ivp/meters/readings

On my v5 system, that url gives updated data every time it’s called and I don’t need to authenticate first
. It seems to be split into two components - the first being the sum of Consumption and separate reading for each phase, and the second being the Net calculation between Consumption and Generation - it’s +ve if power is being Imported and -ve if power is being exported.

It’s JSON data so would be easy to create a sensor from it - after you do the Enphase v7 token dance of course.

I’m wondering if HA can handle near real time updates? I’ve never seen any sensor give data quicker than every 30 seconds?

Yes HA handles 1 second updates. My integration displays every second and I have a mqqt pulse counter that updates every second.

1 Like

I second what @vk2him says. I’ve been using a constantly refreshing dashboard of power usage and solar production using his excellent mqtt add on. HA easily handles it, and the CPU on my HA Blue barely budges. I’ve stuck on D5 firmware so I can be certain to maintain this functionality, with the conjecture around whether it’s even possible with D7.

1 Like

I’m using this code in my yaml files and I still get these errors in the energy config page. Any ideas?

maybe try going to dev tools and statistics.
There might be a fix issue button if you are lucky.

I just tried this http://envoy.local/ivp/meters/readings

The first tree section is panel generation direct from the CT clamp.

    "instantaneousDemand": 154.765,
    "activePower": 154.765,

In this case, my panels were generating 154 watts.

The second tree section is net grid direct from the CT clamp.

    "instantaneousDemand": 961.523,
    "activePower": 961.523,

In this case, I was importing 961 watts from the grid.

So, to find house consumption, I would have to add both of these readings together to get 1,116.288 watts that my house was consuming.

Similarly, if my panels were generating 2000 watts and the net grid reading was -500 watts, I would add them together and find that my house consumption is 1500w

Maybe a stab in the dark here, but I’ve read MOST of this thread and no matter what I can’t seem to get the custom sensors to work (but this is my first time making custom sensors, but I’m super familiar with JSON/YAML).

I did notice that the FIRST post above and some of the interim state screenshots differ slightly so maybe the first post is out of date?

I believe it was state_class I saw posted differently by del13r and some people keep talking about changing device_class but I don’t think that’s right.

Any suggestions to what I’m doing wrong would be appreciated! I’m giving up for the day to see if its just one of those “fixes itself overnight” issues… :slight_smile:

image

template:
  - sensor:
      name: Grid Import Power
      state_class: measurement
      icon: mdi:transmission-tower
      unit_of_measurement: W
      device_class: power
      state: >
        {{ [0, states('sensor.envoy_REDACTED_current_power_consumption') | int - states('sensor.envoy_REDACTED_current_power_production') | int ] | max }}
  - sensor:
      name: Grid Export Power
      state_class: measurement
      icon: mdi:transmission-tower
      unit_of_measurement: W
      device_class: power
      state: >
        {{ [0, states('sensor.envoy_REDACTED_current_power_production') | int - states('sensor.envoy_REDACTED_current_power_consumption') | int ] | max }}
  - sensor:
      name: Solar Power Corrected
      state_class: measurement
      icon: mdi:solar-panel
      unit_of_measurement: W
      device_class: power
      state: >
        {% set value = states('sensor.envoy_REDACTED_current_power_production') | int %}
        {% if value  <= 4 -%} 
          0
        {%- else -%}
          {{ value }}
        {%- endif %}

sensor:
  - platform: integration
    name: Grid Import Energy
    source: sensor.grid_import_power
    unit_prefix: k
    unit_time: h
    method: left

  - platform: integration
    name: Grid Export Energy
    source: sensor.grid_export_power
    unit_prefix: k
    unit_time: h
    method: left

Thanks!