• Have you tried out dark mode?! Scroll to the bottom of any page to find a sun or moon icon to turn dark mode on or off!

diy solar

diy solar

Ecoworthy 5K (SRNE) sanity check. Can it grid-feed?

OK, I've been in contact with Pierre at Solar Assistant, who has advised how to fault find this problem and get access to the MODBUS raw values -- and it's not Solar Assistant that's doing this. SA has exposed the issue, but is not the cause!

From the MODBUS registers ...

At "middle load": this is mostly consistent.

IHD/Smart Meter shows: 1.48kW, 6.5A, PF 0.96
Kaiweets clamp-on: 6.9A
531/h213: 2359 (235.9V)
532/h214: 68 (6.8A)
Reported Grid Power on summary page: 1627 W

At "low load": "grid" is reported high, although "load" is correct

IHD/Smart Meter shows: 390W, 4.91A, PF 0.374
Kaiweets clamp-on: 5.1A
531/h213: 2366 (236.6V)
532/h214: 40 (4.0A)
Reported Grid Power on summary page: 972 W

Having done some more testing, I can now see some problems.

1) SA is correctly reporting what the Ecoworthy is sending.

2) For grid, Ecoworthy is reporting current and voltage, these are being multiplied in SA to get "watts" -- which is only true if power factor is 1.0, and here it isn't even close to 1.0. It's showing as 0.37, that's coming from my utility company's smart meter deep-dive menus. I trust those measurements.

However, for load side Ecoworthy is reporting the current/voltage so that the "v*a=watts" calculation works, almost as if there isn't a power factor problem in the loads at all. Suspicious, yes? Especially in bypass mode, where GRID and LOAD should be the same?

3) How on earth the loads appear to have a power factor that low ... ?

I'm pretty sure that's not my loads, and is something to do with the Ecoworthy being between the grid and load, doing something more complex than "just passing mains through". Something I clearly haven't understood!

So: I checked W/VA/PF for sets of loads with a KillAWatt meter, mostly switching power supplies hence none will be ideal 1.0

a) 37W 49VA 0.77
b) 2W 22VA 0.12 (mostly a laptop in standby, phone charger unloaded)
c) 150W 205VA 0.72
d) 147W 155VA 0.84

Total ...
336W 431VA (overall PF) 0.78

So it's not the loads on the output side. I need to do more digging into the Ecoworthy's behaviour it seems.

I think at this point @42OhmsPA suggestion of calling in some clarification from @Bill Young might be helpful!

How can loads with a power factor of 0.72-0.84 be appearing to the grid as loads with power factor of 0.37?

How does the grid side react so badly to this 0.37PF (causing it to report about 3x too high due) yet the load side reads fine?
 
I do believe these will feed power back to grid.

4. Hybrid output and grid connection. (need to be abled) in the utility bypass state, when no battery is connected or when the battery is full, the load power is supplied by the PV and the utility together if the hybrid function is enabled. and the surplus PV energy is fed back to the grid if the grid connection function is enabled.


also on the app, it will show power flowing from the grid/utility, and BACK to the grid/utility
 
also on the app, it will show power flowing from the grid/utility, and BACK to the grid/utility
Thanks for confirming.

I've never successfully used the official app -- (not that I intended to use it, or connect to a remote cloud service) as the WiFi dongle thing supplied with the inverter doesn't connect. Finds a Bluetooth device, complains about "Can't find the protocol" and gives up. So although I know the display/graphic you mean, I've never seen it.

Note: This was powering back to the utility while the setting that you reference "needs to be abled" was set to _excess PV to LOAD_ which it did. And then sent a bit more back the grid!!

I've never tried to use "excess PV to GRID" as I don't want to do that.
 
Thanks for confirming.

I've never successfully used the official app -- (not that I intended to use it, or connect to a remote cloud service) as the WiFi dongle thing supplied with the inverter doesn't connect. Finds a Bluetooth device, complains about "Can't find the protocol" and gives up. So although I know the display/graphic you mean, I've never seen it.

Note: This was powering back to the utility while the setting that you reference "needs to be abled" was set to _excess PV to LOAD_ which it did. And then sent a bit more back the grid!!

I've never tried to use "excess PV to GRID" as I don't want to do that.
I posted somewhere the process to get the app to work. it is not intuitive at all and took me several attempts

the key is once you get to the wifi connection, you have to keep the app open and on that screen until all 4 lights are green on the dongle adapter
 
it is not intuitive at all and took me several attempts

I got as far as connect the dongle to the inverter, scan the QR code and it downloaded "SmartESS", go into the local device config, pick a BlueTooth BLE device with the serial number of the dongle .... it connected ... then said "Failed to get protocol" and offered no further clues.

SmartESS_BTDongle2.jpg
There are no other options to go down that don't involve creating accounts on cloud systems etc. and having the data exported there, so that I can then look at it via an app/mobile link, which doesn't appeal to me at all. Local monitoring, local control, local storage.

I didn't put much more effort into making that work, because Solar Assistant exists and works!
 
0x23A is Grid Active Power Phase A
0x23B is Grid Active Power Phase B
0x23D is Grid Apparent Power Phase A
0x23E is Grid Apparent Power Phase A
Note: I tested these, (570 decimal, for 10 registers) and got a CRC error for my trouble ... oh well ... maybe that's not supported on this firmware/hardware.
 
This is the command buffer I send to the Inverter. I send a "byte" buffer/array. The below is my debug string where the dashes are only used to separate the bytes:
Command sent 01-03-02-13-00-0F-F5-B3
01 = device address
03 = Read Register function
02-13 is first register 0x0213
00-0F is number of registers to read = 16
F5-B3 is the CRC.

Response received: 01-03-1E-00-00-00-00-00-00-00-03-00-05-17-6E-00-00-00-00-00-00-00-00-00-00-00-00-00-00-01-62-01-AF-BB-01
There are generally two bytes returned for each register requested

Compare your CRC value with mine to check your CRC calculations.

These are the documented SRNE error codes:
01H illegal order The slave may not support the command
02H illegal data address The register address requested by the master exceeds the legal register address range defined by the slave 03H invalid data value The value of the register requested by the master is outside the range defined by the slave
04H operation failed The parameter is set to an invalid setting in the parameter write operation, or the current state of the slave does not support the execution of the command
05H wrong password The password written in the password verification address is wrong
06H data frame error In the frame information sent by the host, the length of the data frame is incorrect, and the CRC check digit in the RTU format is different from the check calculation number of the lower computer.
07H parameter is read-only Parameters changed during host write operations are read-only parameters
08H Parameters cannot be changed during operation The parameters changed in the host write operation are parameters that cannot be changed during operation
09H password protection When the host reads or writes, if the user password is set and the password is not locked and unlocked, it will report that the system is locked.
0AH wrong length The number of read and write registers exceeds the maximum supported number of 32
0BH Insufficient permissions Insufficient permission for this operation
 
Compare your CRC value with mine to check your CRC calculations.

0x213/0x214 worked ok (as per post 26) and were also the registers that Solar Assistant's team asked me to query.

0x23A-E did not work. Stepping back, 560/0x230 for 10 bytes read back a bunch of zeros, but 570/0x23A for 10 bytes gave CRC error.

"CRC error: <<1, 131, 2, 192, 241>>"

Sadly, I can't show working on the CRC calculations or any of that, as it was done through Solar Assistant.
 
If I read register 0x23A and up to 6 registers I get a valid response
If I read register 0x23A and over 6 registers I get an invalid response "Illegal data address. The register address requested by the master exceeds the legal register address range defined by the slave(s)"

The register are:
Grid_Active_Power_Phase_A = 0x23A
Grid_Active_Power_Phase_B = 0x23B
Grid_Active_Power_Phase_C = 0x23C
Grid_Apparent_Power_Phase_A = 0x23D
Grid_Apparent_Power_Phase_B = 0x23E
Grid_Apparent_Power_Phase_C = 0x23F
Power_ON_OFF_Control = 0xDF00

Since register 0x240 (one register after 0x23F) does not exist I get the error. In other words I am trying to read non-existent registers. The register count in the command must result in sequential registers and cannot include not-existent registers.

It is possible SA is trying to read non-existent registers. Not all read commands can read the same number of registers because the command may end up requesting non-existent registers.
 
If I read register 0x23A and up to 6 registers I get a valid response
Ah, yes: That makes sense. 6 registers gets me a bunch of zeros. But that's probably legitimate, currently running off battery so no grid draw! I will repeat that when back on grid and see what happens.
 
For my EW-5KW inverter there is a Menu Item 34 PV grid-connected power generation function
[34] DIS (Default) Disable this Function
[34] TOGRID In the utility bypass state, when no battery is connected or when the battery is full, the surplus PV energy is fed back to the grid.
[34] TOLOAD In the utility bypass state, when no battery is connected or when the battery is full, the load power is supplied by the hybrid of PV and the utility.

Here are some other registers you might look at:
Grid_Connected_Active = 0xE400
Grid_Connected_Power_Factor_Setting = 0xE401
Grid_Connected_Reactive = 0xE402
Grid_Connected_Standard = 0xE403
Grid_Zero_Export_Power = 0xE42C

There documents all have a number of "Reserve" registers that may be used in these newer inverters
 
The register are:
Grid_Active_Power_Phase_A = 0x23A

For this, I got 65103 -- which was with an actual load of around 324W and a reported grid of 989W

The other registers gave 0.

Not sure how to interpret that :)

[34] is partly where this trouble started. [DIS] seems to work. I had it on [LOD] and it slightly exported to the grid when PV > Load+battery requirements. Which made me then re-visit why the grid/load reporting was so wildly different, and then discover the power factor of loads looks different when measured _post_ inverter, versus _pre_ inverter in bypass.
 
SolarUKWM said:
For this, I got 65103 -- which was with an actual load of around 324W and a reported grid of 989W
The other registers gave 0.
Not sure how to interpret that :)
I interpret that as a 2s complement negative number.
65536 - 65103 is -433 W
 
Last edited:
I interpret that as a 2s complement negative number.
65536 - 65103 is -433 W

Nice. Didn't think of that. Too busy trying to work out whether it was 0.1W's or 0.01W's per unit or something.

actual load of around 324W and a reported grid of 989W

Hmmm. Yes. Well .... :)

That's indeed another number to play with. It would give a range of +/- 32kW, which feels like 'enough' for most inverters.

I've had a note from Pierre (SA) that they may start using register 570 as it is more accurate in future beta versions. That could improve things.

That still doesn't quite explain the ludicrous power factor I've discovered (0.37) as reported by utility meter -- with loads via EcoWorthy in bypass mode. But measured at > 0.70 at the actual loads.

It's great when you start down a rabbit hole and it starts to diverge into multiple rabbit holes!
 
3) How on earth the loads appear to have a power factor that low ... ?

I'm pretty sure that's not my loads, and is something to do with the Ecoworthy being between the grid and load, doing something more complex than "just passing mains through". Something I clearly haven't understood!

So: I checked W/VA/PF for sets of loads with a KillAWatt meter, mostly switching power supplies hence none will be ideal 1.0

a) 37W 49VA 0.77
b) 2W 22VA 0.12 (mostly a laptop in standby, phone charger unloaded)
c) 150W 205VA 0.72
d) 147W 155VA 0.84

Total ...
336W 431VA (overall PF) 0.78

So it's not the loads on the output side. I need to do more digging into the Ecoworthy's behaviour it seems.

I think at this point @42OhmsPA suggestion of calling in some clarification from @Bill Young might be helpful!

How can loads with a power factor of 0.72-0.84 be appearing to the grid as loads with power factor of 0.37?

How does the grid side react so badly to this 0.37PF (causing it to report about 3x too high due) yet the load side reads fine?
Your load is an inductive load, so the power factor is lower than 1.
 
Your load is an inductive load, so the power factor is lower than 1.
Thanks for chiming in here -- I understand that only purely resistive loads hit the perfect 1.0.

The problem is that my load (mostly switch mode power supplies) measure out at 0.7+ power factor when tested independently.

But, if I look at the power factor of them as a whole, passed through the Ecoworthy in bypass mode, they show up as PF 0.37 on the utility meter's power factor page -- and the Ecoworthy is drawing a current of nearly 4-5 Amps at 240V (measured, Kaiweets clamp-on) which corresponds to the rather high reported "Grid Draw" of around 3x the "Load Draw".

Loads:-

a) 37W 49VA 0.77
b) 2W 22VA 0.12 (mostly a laptop in standby, phone charger unloaded)
c) 150W 205VA 0.72
d) 147W 155VA 0.84

Total ...
336W 431VA (overall PF) 0.78 -- this appears good.

This is metered by my utility correctly as around 336W. It is correctly reported by the EcoWorthy as a _Load_ of around 336W. It is ... wrongly? ... reported as a _Grid_ power of 900W at the exact same time. Big disparity.

So I've got a 900W/0.37 power factor load shown to the grid side, yet 330W/0.78 power factor load on the load side, in "bypass" mode, no PV, no battery charging, and no idea where the disparity comes from.

It's not just a mis-report in Solar Assistant: The Ecoworthy really is drawing 4.0A at 240V (960W) input for a 336W load (1.25A measured), which I can't understand.

The power factor of the loads is really _not_ as awful as that!
 
Last edited:
Just a comment. These AIO's are not the best at accurate measurements. Any monitoring program will simply display what the AIO supposes is the information. If something does not seem to add up it most likely is due to sensing or the processing of data.
 
Any monitoring program will simply display what the AIO supposes is the information.

Rabbit hole I entered: Solar Assistant displays an excessive Grid Power figure.

Rabbit hole I fell into next: Solar Assistant is displaying exactly what AIO is reporting given "current" and "voltage" Grid readings.

Rabbit hole I am currently in: AIO is reporting a Grid current which is matched by actual external measurement, but which makes no sense.

The TLDR here is that a load drawing 1.25A (330W approx) with a power factor of 0.78 (all measured externally) becomes a load drawing 4-5A (900W approx) with a shocking power factor of 0.37 (current and PF measured externally) when it is seen "through" the Ecoworthy in bypass mode.

If bypass mode is just a relay between in and out, and no other magic, that is an insane observation. But ... it's what I'm seeing.

If bypass mode is "something clever" plus some other shenanigans that I don't know about, then I'm seeing some very odd behaviour which I would like to understand.
 
as far as I can tell, everything over the smartess is correct and matches what is on the display itself.

one day I'll get solar assistant
 
If bypass mode is just a relay between in and out, and no other magic, that is an insane observation. But ... it's what I'm seeing.

I rechecked this, this morning.

Conditions:
With the battery fully charged, so no current going into it (in fact, about 40W coming out, running the inverter/AIO)
With the PV disconnected, so no confusion there.
With the EcoWorthy in BYPASS mode.

238V mains voltage (UK). Actual load around 300W.

Input (Grid): 5.03 Amps (Kaiweets clamp-on), 4.73 Amps (calibrated utility meter) and Ecoworthy MODBUS register for grid current agrees that current is > 4 Amps.

Output (Load): 1.19 Amps (Kaiweets clamp-on), and Ecoworthy agrees that actual load is around 300W.

The power factor of the load is measured independently around 0.78 -- a little low, but expected with switch mode power supplies.

Utility meter says that the power factor of Ecoworthy + Loads is 0.35 -- shockingly low.

This accounts for the disparity between the grid power reported (900+W) and the actual power in the load (300W), power factor has been manipulated. Like the reverse of a PFC circuit!

This bothers me, because I don't understand it. And I know _something_ is wrong.

It does not appear to be a simple mis-reading/mis-interpretation of a value.

Utility meter is not, and should not, be in question. Any "tolerances" in the Kaiweets Clamp meter do not explain how the readings are radically different between INPUT and OUTPUT currents using the same meter.
 
I rechecked this, this morning.

Conditions:
With the battery fully charged, so no current going into it (in fact, about 40W coming out, running the inverter/AIO)
With the PV disconnected, so no confusion there.
With the EcoWorthy in BYPASS mode.

238V mains voltage (UK). Actual load around 300W.

Input (Grid): 5.03 Amps (Kaiweets clamp-on), 4.73 Amps (calibrated utility meter) and Ecoworthy MODBUS register for grid current agrees that current is > 4 Amps.

Output (Load): 1.19 Amps (Kaiweets clamp-on), and Ecoworthy agrees that actual load is around 300W.

The power factor of the load is measured independently around 0.78 -- a little low, but expected with switch mode power supplies.

Utility meter says that the power factor of Ecoworthy + Loads is 0.35 -- shockingly low.

This accounts for the disparity between the grid power reported (900+W) and the actual power in the load (300W), power factor has been manipulated. Like the reverse of a PFC circuit!

This bothers me, because I don't understand it. And I know _something_ is wrong.

It does not appear to be a simple mis-reading/mis-interpretation of a value.

Utility meter is not, and should not, be in question. Any "tolerances" in the Kaiweets Clamp meter do not explain how the readings are radically different between INPUT and OUTPUT currents using the same meter.
What do you read if you put the Kaiweets clamp-on on the Inverter output between the Inverter and the load?
 
... Kaiweets clamp-on on the Inverter output between the Inverter and the load?
Output (Load): 1.19 Amps (Kaiweets clamp-on),

That's where I measured! :) On the way in, and on the way out. Load is reasonably well behaved. ECOWorthy + load is being funny.

I've even seen the Power Factor as low as 0.2 something. At some point, it's going to pass zero ... (joke, I hope!)
 

diy solar

diy solar
Back
Top