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.
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.
Load Power
-
- Posts: 1297
- 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.
-
- Posts: 1297
- 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
Yes, no problem.
The API is down again now too
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.
The API is down again now too
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.
-
- Posts: 1297
- 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.
-
- Posts: 1297
- 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.
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.
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.
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):
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!
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):
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!
-
- Posts: 1297
- 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.
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.
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:
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)
- 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:
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!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)}}"
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)
-
- Posts: 1297
- 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
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
-
- Posts: 1297
- 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
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)
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
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) }}
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)
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
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
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
-
- Posts: 1297
- Joined: Thu Oct 13, 2022 7:21 pm
Brilliant, hopefully no more having to manipulate data in spreadsheets.
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.
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.
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:
and in automations.yaml:
Hopefully this helps someone in future. Home assistant rabbit hole indeed!
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
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