Comments (5)
Here's also a bit more context as to what those "pgrid" registers are:
timestamp: Timestamp = 2023-11-19 14:26:47
vpv1: PV1 Voltage = 726.5 V
ipv1: PV1 Current = 1.9 A
ppv1: PV1 Power = 728 W
vpv2: PV2 Voltage = 726.5 V
ipv2: PV2 Current = 0.0 A
ppv2: PV2 Power = 487 W
vpv3: PV3 Voltage = 693.6 V
ipv3: PV3 Current = 1.7 A
ppv3: PV3 Power = 0 W
ppv: PV Power = 1215 W
pv3_mode: PV3 Mode code = 0
pv3_mode_label: PV3 Mode = PV panels not connected
pv2_mode: PV2 Mode code = 2
pv2_mode_label: PV2 Mode = PV panels connected, producing power
pv1_mode: PV1 Mode code = 2
pv1_mode_label: PV1 Mode = PV panels connected, producing power
vgrid: On-grid L1 Voltage = 232.5 V
igrid: On-grid L1 Current = 2.3 A
fgrid: On-grid L1 Frequency = 49.96 Hz
pgrid: On-grid L1 Power = 438 W
vgrid2: On-grid L2 Voltage = 233.6 V
igrid2: On-grid L2 Current = 1.5 A
fgrid2: On-grid L2 Frequency = 49.95 Hz
pgrid2: On-grid L2 Power = 243 W
vgrid3: On-grid L3 Voltage = 233.3 V
igrid3: On-grid L3 Current = 3.4 A
fgrid3: On-grid L3 Frequency = 49.96 Hz
pgrid3: On-grid L3 Power = 653 W
grid_mode: Grid Mode code = 1
grid_mode_label: Grid Mode = Connected to grid
total_inverter_power: Total Power = 1334 W
active_power: Active Power = 823 W
grid_in_out: On-grid Mode code = 1
grid_in_out_label: On-grid Mode = Exporting
reactive_power: Reactive Power = 1004 var
apparent_power: Apparent Power = 1677 VA
backup_v1: Back-up L1 Voltage = 231.1 V
backup_i1: Back-up L1 Current = 2.9 A
backup_f1: Back-up L1 Frequency = 49.96 Hz
load_mode1: Load Mode L1 = 0
backup_p1: Back-up L1 Power = 35 W
backup_v2: Back-up L2 Voltage = 232.6 V
backup_i2: Back-up L2 Current = 1.6 A
backup_f2: Back-up L2 Frequency = 49.95 Hz
load_mode2: Load Mode L2 = 0
backup_p2: Back-up L2 Power = 9 W
backup_v3: Back-up L3 Voltage = 232.3 V
backup_i3: Back-up L3 Current = 3.2 A
backup_f3: Back-up L3 Frequency = 49.97 Hz
load_mode3: Load Mode L3 = 0
backup_p3: Back-up L3 Power = 338 W
load_p1: Load L1 = 49 W
load_p2: Load L2 = 17 W
load_p3: Load L3 = 361 W
backup_ptotal: Back-up Load = 389 W
load_ptotal: Load = 122 W
ups_load: Ups Load = 7 %
temperature_air: Inverter Temperature (Air) = 43.4 C
temperature_module: Inverter Temperature (Module) = 0.0 C
temperature: Inverter Temperature (Radiator) = 38.8 C
function_bit: Function Bit = 0
bus_voltage: Bus Voltage = 760.4 V
nbus_voltage: NBus Voltage = 380.2 V
vbattery1: Battery Voltage = 213.9 V
ibattery1: Battery Current = -0.1 A
pbattery1: Battery Power = -21 W
battery_mode: Battery Mode code = 2
battery_mode_label: Battery Mode = Discharge
warning_code: Warning code = 0
safety_country: Safety Country code = 32
safety_country_label: Safety Country = 50Hz Grid Default
work_mode: Work Mode code = 1
work_mode_label: Work Mode = Normal (On-Grid)
operation_mode: Operation Mode code = 0
error_codes: Error Codes = 0
errors: Errors =
e_total: Total PV Generation = 28.1 kWh
e_day: Today's PV Generation = 17.8 kWh
e_total_exp: Total Energy (export) = 19.7 kWh
h_total: Hours Total = 52 h
e_day_exp: Today Energy (export) = 6.0 kWh
e_total_imp: Total Energy (import) = 2.6 kWh
e_day_imp: Today Energy (import) = 0.6 kWh
e_load_total: Total Load = 8.3 kWh
e_load_day: Today Load = 0.6 kWh
e_bat_charge_total: Total Battery Charge = 15.4 kWh
e_bat_charge_day: Today Battery Charge = 12.1 kWh
e_bat_discharge_total: Total Battery Discharge = 4.7 kWh
e_bat_discharge_day: Today Battery Discharge = 0.0 kWh
diagnose_result: Diag Status Code = 33816768
diagnose_result_label: Diag Status = Discharge Driver On, BMS: Discharge current low, BMS: Charge disabled, PF value set
house_consumption: House Consumption = 371 W
battery_bms: Battery BMS = 255
battery_index: Battery Index = 311
battery_status: Battery Status = 1
battery_temperature: Battery Temperature = 25.0 C
battery_charge_limit: Battery Charge Limit = 0 A
battery_discharge_limit: Battery Discharge Limit = 40 A
battery_error_l: Battery Error L = 0
battery_soc: Battery State of Charge = 100 %
battery_soh: Battery State of Health = 100 %
battery_modules: Battery Modules = 4
battery_warning_l: Battery Warning L = 0
battery_protocol: Battery Protocol = 261
battery_error_h: Battery Error H = 0
battery_error: Battery Error =
battery_warning_h: Battery Warning H = 790
battery_warning: Battery Warning = err17, err18, err20, err24, err25
battery_sw_version: Battery Software Version = 0
battery_hw_version: Battery Hardware Version = 0
battery_max_cell_temp_id: Battery Max Cell Temperature ID = 0
battery_min_cell_temp_id: Battery Min Cell Temperature ID = 0
battery_max_cell_voltage_id: Battery Max Cell Voltage ID = 0
battery_min_cell_voltage_id: Battery Min Cell Voltage ID = 0
battery_max_cell_temp: Battery Max Cell Temperature = 0.0 C
battery_min_cell_temp: Battery Min Cell Temperature = 0.0 C
battery_max_cell_voltage: Battery Max Cell Voltage = 0.0 V
battery_min_cell_voltage: Battery Min Cell Voltage = 0.0 V
commode: Commode = 2
rssi: RSSI = 100
manufacture_code: Manufacture Code = 10
meter_test_status: Meter Test Status = 273
meter_comm_status: Meter Communication Status = 1
active_power1: Active Power L1 = 388 W
active_power2: Active Power L2 = 222 W
active_power3: Active Power L3 = 288 W
active_power_total: Active Power Total = 899 W
reactive_power_total: Reactive Power Total = 317 var
meter_power_factor1: Meter Power Factor L1 = 23.064
meter_power_factor2: Meter Power Factor L2 = -6.136
meter_power_factor3: Meter Power Factor L3 = 7.464
meter_power_factor: Meter Power Factor = 8.964
meter_freq: Meter Frequency = 49.97 Hz
meter_e_total_exp: Meter Total Energy (export) = 0.0 kWh
meter_e_total_imp: Meter Total Energy (import) = 0.0 kWh
meter_active_power1: Meter Active Power L1 = 388 W
meter_active_power2: Meter Active Power L2 = 222 W
meter_active_power3: Meter Active Power L3 = 288 W
meter_active_power_total: Meter Active Power Total = 899 W
meter_reactive_power1: Meter Reactive Power L1 = 46 var
meter_reactive_power2: Meter Reactive Power L2 = 177 var
meter_reactive_power3: Meter Reactive Power L2 = 93 var
meter_reactive_power_total: Meter Reactive Power Total = 317 var
meter_apparent_power1: Meter Apparent Power L1 = 440 VA
meter_apparent_power2: Meter Apparent Power L2 = 371 VA
meter_apparent_power3: Meter Apparent Power L3 = 391 VA
meter_apparent_power_total: Meter Apparent Power Total = 1203 VA
meter_type: Meter Type = 2
meter_sw_version: Meter Software Version = 5
On these ETT series, they are not on-grid outputs but rather they are the sum of the AC output generated by the inverter through PV and battery, wherever they might go. SolarGo is also wrongly labelling these metrics in the app as "on-grid" which can be a bit confusing. I also remember that when these values go negative is when the inverter has to ingest power from the grid connectors, but I need to check again during the night and when the battery is discharged.
In the above snippet, PV is generating 1907W (ppv), the battery is generating 404W (pbattery1), the inverter total AC generation is 2462W (total_inverter_power ~= sum of pgrid/2/3), with a consumption hanging off the backup load of 2386W (backup_ptotal). In this scenario load_p1/2/3 ~= backup_p1/2/3. It's ingesting 27W from the grid side connectors (active_power).
active_power +- equals the meter_active_power_total in my scenario as I have basically nothing connected to non-backup except the distribution panel itself and whatever losses might happen in there between the CTs and the actual inverter.
active_power goes positive when injecting into the grid connector, and goes negative when ingesting through it.
Also with the above behaviour, "house_consumption" calculation as it is currently is wrong and off by a bit as it doesn't end up matching the actual load, a simpler way to generate a more accurate figure is to just do "total_inverter_power - active_power".
I'll add more comments once I manage to correlate the numbers in different scenarios.
from goodwe.
However, SolarGo is showing 3.5kW into the house, which I know to be inaccurate, and I also noted that SolarGo always overestimates the house power by a large amount which seems to correlate with the calculated vs mdobus power sum difference.
Update: This behaviour has now been fixed as of DSP V06 SVN 6017 (November 24 release) on ETT models, and now the calculated reported modbus V/A on the strings matches the MPPT power entries. The labelling mismatch still exists (V/A entries == string #'s, P entries == MPPT #'s).
from goodwe.
Please find attached a complete revamped modbus register mapping for the ES G2 and ETT/ET-15-30 inverters.
Somebody simply just had to ask GoodWe for it and we got it.
ARM 745, ESG2,ET30 MODBUS Protocol Map 20221231 - v1.pdf
Credit to "NorthPV": https://www.photovoltaikforum.com/thread/186135-goodwe-gw10k-et-sammelthread/?postID=3488118#post3488118
Due the extensive differences here, it makes sense to split off those inverter series into a different mapping file and not attempt to include it into the current et.py. I will look into if I have any spare time, but hopefully this allows the community to advance at greater pace.
also ping @mletenay as this solves all ET-15-30k related issues on https://github.com/mletenay/home-assistant-goodwe-inverter/issues
from goodwe.
That's great. AFAIK Goodwe was not really willing to share such data without NDA in the past, so this is definitely progress.
I will study it and incorporate it in the code sometime this week ...
from goodwe.
The code was enhanced with ETT specific registers besides support for 2nd battery it now provides values for PV5-16 strings and power and current values for MPPT 1-8.
from goodwe.
Related Issues (20)
- Eco Mode + Discharge Battery HOT 1
- Support for MS G3 inverter HOT 1
- GW25K-ET missing voltage & ampere of 2nd battery HOT 4
- Sell / Sold per day HOT 1
- Error in reading ECO mode data on GW6000ES20 (ESN version ARM v8) HOT 20
- Install in Home Assistant Operating System?? HOT 1
- newest version in Code no longer works with my GW3600-EH HOT 8
- PLEASE DELETE
- AA55-protocol - some potential useful findings, insights, explanations
- Modbus registers issues/adds on GW10k-ET on fw:18+ HOT 7
- info flashing in and out HOT 4
- How to disable battery charging? HOT 1
- Can't connect without package HOT 2
- Battery control not working HOT 1
- reading only single sensor values HOT 4
- "No valid response received even after 3 retries" with GW4200D-NS HOT 2
- Question: how it intepret constants like `30103` in the code base?
- grid_export setting name misleading
- Command to restart/reboot the inverter
- Question: Availability of Data to Query HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from goodwe.