Load Power

Dave Foster
Posts: 1305
Joined: Thu Oct 13, 2022 7:21 pm

You’ve had better weather than me today, grey and overcast here :(

This is your trace to date, which confirms what you have said - Fox1 Load is their cloud totals (wrong), load_daily is the sum of your measured load power (correct), and ct2_daily the sum of the CT2 power sensor.
IMG_1548.jpeg
I’ve emailed FoxESS in China to ask them to review the load totals problem, it usually takes a couple of days for them to reply, sometimes longer if it’s complex when lots of different teams are involved, i’ll keep my fingers crossed and let you know when I hear something.
Dave Foster
Posts: 1305
Joined: Thu Oct 13, 2022 7:21 pm

(a little bit) of an update, Foxess are definitely looking at it, i've swapped a couple of emails with the product manager in China over the last few days with additional information requests.
Dave Foster
Posts: 1305
Joined: Thu Oct 13, 2022 7:21 pm

FYI - I've been swapping emails almost daily, they seem to be struggling with the concept that the cumulative load figure is incorrect, despite the fact it patently is.. if you don't mind i've shared your SN with them so they can look at 'real' data - but after the api outages yesterday I suspect they may be busy today :(
reef
Posts: 109
Joined: Sat Sep 09, 2023 10:06 am
Location: East Yorkshire

Yes, no problem.

The API is down again now too :roll:

Funnily enough I raised a ticket on Friday to get my batteries and BMS onto the latest firmware (HV25s still on 1.004 master and 1.00 (x4) and 1.01 (x1) slave) and I'm still waiting on a response to that too.
Dave Foster
Posts: 1305
Joined: Thu Oct 13, 2022 7:21 pm

Hi, bit of an update for you - but easier for me to explain by email - i'll ping one across to you shortly.
reef
Posts: 109
Joined: Sat Sep 09, 2023 10:06 am
Location: East Yorkshire

I notice Al's added an option in the data section of the latest version of Energy Stats: "Use traditional load formula". I have this option unticked so will see what sort of figure it gives me tomorrow. 😀
Dave Foster
Posts: 1305
Joined: Thu Oct 13, 2022 7:21 pm

I think this is the option that Al added for H3 users where the meter2 signal is inverted and suppresses the load power - you should see your load power report correctly with this (using a formula) but sadly the ‘load yield’ has to be fixed in the cloud.
reef
Posts: 109
Joined: Sat Sep 09, 2023 10:06 am
Location: East Yorkshire

Yes, that's what I'm seeing.

Re: the cloud. Fox seem to have a bit of backlog on tickets at the moment, sorting my battery firmware update yesterday (ticket is from 1st March), so perhaps there will be an update next week, fingers crossed.
reef
Posts: 109
Joined: Sat Sep 09, 2023 10:06 am
Location: East Yorkshire

An update (of sorts).

Basically I have got nowhere with this. I raised another ticket recently when the data download failed on the v2.0 app - explaining I need access to this data to get the correct daily load for the reasons highlighted in this thread. It seems impossible to get Fox to understand and sort this. I've sent them graphs, data, explanations but they seemingly just don't get it nor see it as a priority.

The infuriating thing is the correct data is there in the inverter logs (Loadspower/kW):
Loadspower.png
So as it stands, I have to download this data daily and work out the correct load from that - as long as the v2.0 app downloads work of course!
Dave Foster
Posts: 1305
Joined: Thu Oct 13, 2022 7:21 pm

Sorry to hear that you haven't had a resolution, I know another couple of users who also have the same problem and I imagine there must be dozens that haven't realised yet - as you say it was very difficult to get them to understand the problem but I think they have also have been managing a bigger problem with a large number of new products and issues.

It's taken several months for them to address the OpenAPI problem which they appear to have finally done on 03/08/24 - it's still early days yet but it is behaving much more predictably.

I know i've mentioned it before but if you delve into the world of Home Assistant you can have it do the maths for you and give you an energy dashboard that makes sense - the simplest way is to use the Fox cloud interface which basically gives you what the cloud has but as I proved myself when I was demonstrating the problem to Fox you can take the load measurements, convert into energy and the load calculation is correct.
reef
Posts: 109
Joined: Sat Sep 09, 2023 10:06 am
Location: East Yorkshire

Well, after waiting so long for a fix and not getting one I finally bit the bullet and got the modbus wired up using an Elfin EW11A and home assistant running on a SFF Dell PC. It's working well and I've managed to set up a dashboard with most of what I want. There's a few things I would like to do with it but have no idea how.

- I've managed to set up a meter to count up the daily total of CT2, so I now have the daily PV generation of both inverters. I'd like to have a sensor with both totals merged and also a "live" combined value with an eye on uploading it to PVoutput somehow. I have the following code in the template editor which does work as intended:
sensor:
- platform: template
sensors:
solar_power_total:
friendly_name: "Total Solar Power"
unit_of_measurement: 'kW'
value_template: "{{(states('sensor.pv_power_h1_5_0_e')|float) + (states('sensor.h1_5_0_e_ct2_meter')|float)}}"
This gives live value of both inverters added together (in the template editor), however I have absolutely no idea what to do with it to turn it into a thing I can use to add to the dashboard! :roll:

Unsurprisingly there's also the load power issue, I'm getting a negative load power as expected. You mention I can correct for this in home assistant to give the correct live value and therefore daily total. How would I go about that?

Cheers

(Edited as the load power daily total isn't counting down now, it was just an initial setup issue)
Dave Foster
Posts: 1305
Joined: Thu Oct 13, 2022 7:21 pm

Oh that’s great news, welcome to the home assistant rabbit hole ;)

No problem i’ll be able to help you with this, but away for the next couple of days, as soon as i’m back at my desktop I can do a bit of testing :)
reef
Posts: 109
Joined: Sat Sep 09, 2023 10:06 am
Location: East Yorkshire

Nice one, that's great. :)

I can already see why the modbus route is recommended. It's just so much quicker and reliable.
Dave Foster
Posts: 1305
Joined: Thu Oct 13, 2022 7:21 pm

Ok this should be it, some of the sensors required may not be enabled by default in the integration - if they are not enabled you can enable them by going into HA Settings, Devices & Services and click '1 Device' on the Foxess Modbus integration - it will list all available sensors, and at the bottom it will says +xx entities not shown - click there and you can then click on each entity and slide 'enabled' to on and they will be added.

To do this you must have Grid Consumption ('grid_consumption') , Inverter Power ('rpower') , Feed-in ('feed_in'), CT2 Meter (ct2_meter) all available and showing in the list

As you've seen the inverter reports the wrong load power when your CT2 is generating, that's why the cloud totals get messed up - it can be fixed by applying this logic

Real Load = Grid Consumption + Inverter Power - Feed In + absolute(CT2 )

So we need to create a sensor for that which will report real time power (kW), then we need an integral sensor which will give you an increasing sum of kWh and finally a utility meter that resets on a daily basis and will show what you daily load looks like.

Rather than add them in your configuration file, it will be easier if you use the 'helpers' as you can sensors via the GUI which is much easier if you aren't familiar with yaml.

I can see you have named your inverter as 'h1_5_0_e' which adds that name to all sensor prefix's

So for the first sensor, click Settings, Devices & Services, then Helpers (top right) - then click the blue button 'Create Helper' and select 'Template' from the list, then select 'Template a Sensor'

The name will be 'Real Load'

in the State Template copy and paste the code below

Code: Select all

{% set gcR=states("sensor.h1_5_0_e_grid_consumption") |round(4,default=0) %}
{% set fiR = states("sensor.h1_5_0_e_feed_in") | round(4,default=0) %}
{% set rP = states("sensor.h1_5_0_e_rpower") | round(4,default=0) %}
{% set ct2 = states("sensor.h1_5_0_e_ct2_meter") | round(4,default=0)|abs %}
{% set real_load = gcR + rP - fiR + ct2 %}
{{ real_load|round(3) }}
Unit of Measurement : kW
Device Class : Power
State Class : Measurement
(Leave the Device field blank)

It should look like this (albeit my inverter doesnt have your h1_5_0_e prefix)
111.jpg
Click the 'Submit' button when done.

The next step is to create the integral which converts power (kW) into energy (kWH)

So same thing, click the 'Create Helper' button, Select 'Integral' in the list

The name will be 'Real Load Sum'
Leave 'Metric Prefix' blank it's already scaled correctly
Time Unit is 'Hours'
Input Sensor is 'Real Load' (choose sensor.real_load)
Integration Method : Left
Precision: 3
Leave Max Sub interval as 0

Click the 'Submit button when done

and finally on to the last one

So same thing, click the 'Create Helper' button, Select 'Utility Meter' in the list

The name will be 'Real Load Daily'
Input Sensor is 'Real Load Sum' (choose sensor.real_load_sum)
Meter Reset Cycle is 'Daily'
Meter offset is 0
Leave the rest of the options as default

Click 'Submit' to finish

And that's that, you should now have 3 sensors, one that correctly reports 'real load' (kW), the second is an increasing total that shows 'real load sum' (kWh) and the last one is a daily utility meter that will show the daily total for your house load.


You can repeat that process with the sensor you made below for Total Solar Power and then you can add it to your dashboard - just drop the bit in quotes in the value_template into the template box and you will then have a sensor you can add to your dashboard but check your sensor names I think one of them 'sensor.pv_power_h1_5_0_e' has the inverter name in the wrong place
reef
Posts: 109
Joined: Sat Sep 09, 2023 10:06 am
Location: East Yorkshire

Thanks Dave, that all worked perfectly!

I now have a combined PV value from both inverters, daily count and monthly count and the load reports correctly and counts up daily as it should.

Weirdly the sensor "sensor.pv_power_h1_5_0_e" is correct, though I've no idea why it is reversed!

Absolute legend :)
Dave Foster
Posts: 1305
Joined: Thu Oct 13, 2022 7:21 pm

Brilliant, hopefully no more having to manipulate data in spreadsheets.
reef wrote: Sun Sep 01, 2024 10:48 am Weirdly the sensor "sensor.pv_power_h1_5_0_e" is correct, though I've no idea why it is reversed!
Aaah there must be a typo in the integration - lots of people already using it like that, so I think probably best not to fix ;)

If you need any help with anything just shout, and don't forget to add the charge period card if you haven't already https://github.com/nathanmarlor/foxess_ ... eriod_card much easier than relying on the cloud for charging.
reef
Posts: 109
Joined: Sat Sep 09, 2023 10:06 am
Location: East Yorkshire

Managed to get uploading to PVoutput working too. I'll post what I used in here as I couldn't find how to do it anywhere after extensive searching! A bit different on mine being a dual inverter system, but this should work for anyone:

In configuration.yaml:

Code: Select all

## Solar Output to PV Output
shell_command:
  pvoutputcurl: >
    curl -d "d={{now().strftime("%Y%m%d")}}"
         -d "t={{now().strftime("%H:%M")}}"
         -d "v1={{ (states('sensor.h1_5_0_e_today') | float * 1000)  | int }}"
         -d "v2={{ (states('sensor.pv_power_h1_5_0_e') | float * 1000)  | int  }}"
         -d "v3={{ (states('sensor.h1_5_0_e_load_energy_today') | float * 1000)  | int }}"
         -d "v4={{ (states('sensor.h1_5_0_e_load_power') | float * 1000)  | int }}"
         -d "v6={{ states('sensor.h1_5_0_e_rvolt') }}"
         -H "X-Pvoutput-SystemId: SYSTEMID"
         -H "X-Pvoutput-Apikey: APIKEY"
         https://pvoutput.org/service/r2/addstatus.jsp
and in automations.yaml:

Code: Select all

alias: Upload to PVOuput
description: Upload to PVOuput
trigger:
  - platform: time_pattern
    minutes: /5
action:
  - service: shell_command.pvoutputcurl
    data: {}
mode: single
Hopefully this helps someone in future. Home assistant rabbit hole indeed! :)
Post Reply