Solax X1 Hybrid G4 Worked Example

@kamilb, to use Octops Go, I have the Solax charging from the solar panels during the day, and grid at night. This is configured via the Solax App.

I’ve set “Self Use” mode, with charge from grid enabled, and “min Soc”, set to 10%, so I make full use of the battery.
Then in the “charge&discharge period”, I have “force charge” set to 00:30 to 04:30, and “allow discharge” set to 04:30 to 00:30.

The one variable I am experimenting with is under “self use”, the grid option, “charge battery to” percentage.
I currently (winter) have this at 80%, so there is room for some Solar top up. But on really cloudy days want this to be 100%. In summer I can see this would be lower (maybe 20% just to give some battery until the sun comes up.

I want to calculate this percentage, based on the HA Solar Predictor set up in the Energy dashboard. But I have yet to find a way to get HA to programmatically set this on the Solax. The Solax REST API is read only. Doing it manually via the Solax APP every day seems too much hassle.

1 Like

@ColinRobbins, much appreciated! I’ve been experimenting with the charge&discharge periods - now it makes more sense! Cheers! :slight_smile:
I believe you can programmatically change settings on your inverter via the SolaxCloud or even locally. When using SolaxCloud on your browser, you can view the content of the request using developer tools, then replicate that in HA.
A few more questions if you don’t mind:

  1. do you see your inverter obbey the “min SOC”/“charge battery to” limits? or is it off by a few % each time?
  2. do you also get your battery power output being under reported by about 100-150W, typically when solar panels don’t provide much output?
  3. are you on any of the Octopus Outgoing tarrifts?

BTW - I’ve managed to successfully connect to the inverter (H1 Hybrid G4) using my local network, and poll at a much higher rate (every 5s) - is that something of any interest to you?

@kamilb I would be very interested in how you have connected locally. I have set the proxy set us as per these instrustions, and got as far as getting data back via curl from 5.8.8.8.

  1. do you see your inverter obbey the “min SOC”/“charge battery to” limits? or is it off by a few % each time?

No, I’ve seen it vary. Seen my battery dip to 6% with the min SOC set to10%

  1. do you also get your battery power output being under reported by about 100-150W, typically when solar panels don’t provide much output?

I’ve seen the sum of Solar power plus Battery battery not equal to the reported Inverter output by 50-100w, but don’t have a view of where the “missing” power goes, or if it is an accuracy error.

  1. are you on any of the Octopus Outgoing tarrifts?

The Octopus Outgoing is not available with Octopus Go (see https://octopus.energy/outgoing/). I believe you can on have the SEG with Octopus Go - application in progress.

1 Like

I would be very wary of using the Pocket WiFi in AP Mode, I would recommend you have a read of these few posts to understand to consequences Universal Solar Inverter over Modbus RS485 / TCP custom_component (Growatt, Sofar, SolaX, Solis) - #715 by Lad1

You might want to contact SolaX to see if there is a firmware update. Sounds like you are on an older version.

Remember there are losses from converting from DC to AC etc and different voltage levels between PV, Battery and Grid.

I would be very wary of using the Pocket WiFi in AP Mode

My understanding is the AP Mode cannot be swithed off. If using Pocket WiFi you get both Internet access via your WiFi and a local access point. So by simply chosing to use the Pocket WiFi the risk exists.

So my choice is accept the risk, or not use the Pocket WiFi. If I choose to accept the risk, then using the local access point to get near real-time data, rather that cloud-delayed data, does not change the risk assessment - the risk still exists but has not been made worse. Thus I may as well enjoy the benefit.

Similar risks exist with other smart devices connected in the home, so I use segregated WiFi networks to minimise the risk.

1 Like

Thank you @ColinRobbins! Here is the write up on my local & cloud APIs: Solax X1 Hybrid G4 (local & cloud API) - hope you find it useful :slight_smile:

Thanks for this @kamilb, I was half way through figuring this out msyelf.
I’ll reply on your other thread, to keep it all in one place.

Hi ColinRobbins - I’m a totally newbie to HA and also to solar power. Just installed a 8kw panel array with a X3-Hybrid-G4 Solax Inverter (3-phase property) and 11.6kw Solax batteries. Moved onto Octopus early Jan 2023 and they installed a 3-phase SMETS2 meter in the first week. Also have an iboost installed in the hope of getting some hot water once we get more sun. I’m online with the Solax app and looking to learn more and integrate with HA later.

My first stumbling block is I want to do the same as you and use Octopus Go to charge my batteries up over night using off-peak electricity and low 12p pkw off-peak rate. As I do not have an electric vehicle (yet), they’re telling me that they can’t put me on this tariff as it’s exclusive to electric car owners. They’ve agreed that I could go on a higher price tariff with Economy 7 - off-peak price 18.61p. This seems discriminatory and unfair. As you’re using the tariff to charge your batteries, are you also charging an EV? Maybe I’m going about asking Octopus incorrectly? Any advice appreciated please

1 Like

Hi, yes I have an EV, so meet the Octopus requirement.

I believe the requirements is there, as Octopus need to stimulate changes in user behaviour to move demand overnight to make the economics work. The EV has a 62kwh battery they don’t want you to charge at 7.5kwh during the day.
With solar, you have already made the choice to switch usage / demand, so suggest Octopus don’t see a market opportunity to stimulate further change in demand by offering a lower “solar battery” tariff.
Also the grid demand to charge a solar battery is less, most charge about 2-3kWh, so the demand impact on the grid is lower, so impact of change less.

1 Like

Hi Colin,

Thanks for posting the local configuration!! I’ve got it all setup and working a treat!

I’m trying to configure Octopus Go on Self Use, like you have done, but I’m having zero success.

Would you mind sharing some screenshots of your inverters configuration?

Here are my settings, which I tried this morning, to force charge the battery for 30 minutes.

image

Would you have any idea where I’m going wrong?

Regards,
Tom

Settings look reasonable to me, and similar to mine.
I have “Allowed Discharge” set to 00:00 to 23:59 - happy for the battery to be used anytime.
Your “charge battery to” is “35%”, so I assume your battery level is below that.
On the screen before to go into settings, I assume you have “work mode” set to “self use”.

Thanks.

Work Mode is set to Self-Use. The battery had an SoC of 10% during the test.

I’ve adjusted the Allow Discharge to 00:00 - 23:59 as suggested and set the Force charge to 09:35 to 10:00 and I’ll see what happens.

Is your inverter firmware at 3.0001.02?

As if by magic, it worked as intended.

I wonder why it hasn’t worked the past three mornings with similar configuration? Maybe the order I click the save buttons in?? :rofl:

At least I know it can work now.

Thanks again!

Many thanks @ColinRobbins - that makes sense. I’ll still make savings on the Economy 7 tariff so likely I’ll trial that to how it works out in winter. EV is a target in the coming years too so will hopefully be able to benefit then

No overnight charge again, despite the settings being 01:30 to 06:25. I tried adjusting the settings to test it again, but kept getting a “Settings Failed” error.

I’ll try and configure the time periods directly on the inverter if I can.

Hello, I will go to test this at my environment. But I have 2 inverters and 2 punch of bateries, What should I add for that? Thank you

I just wanted to update this thread. My off-peak configuration is working.

Forced Charge Start Time: 01:30
Forced Charge End Time: 06:30
Allowed Disc Start Time: 06:40
Allowed Disc End Time: 01:20

Self Use → Charge from grid is Enabled. Charge battery to 40%.

The only problem; t doesn’t charge the battery at weekends!

Here is a graph showing the last fortnight. You can see the charge to 40% happening (followed by the larger spikes of it being charge by PV) and then there are two gaps, which correspond to the weekend!

I can’t explain this. There is nothing in the settings about the weekend. I’m going to reach out to Solax support to see if they can help!

Hello all,

I am having some problems with displaying my solax sollar pannels on the build in home assistant dashboard. Everything about the api seems to be working. I am using sensor.solax_yield_today as the sensor in home assistant but the sensor has a value that is correcly displaying todays yield ( at the moment 4.3 kwh) but the energy dashboard only shows 2.8. Does anybody have an idea what i might be doing wrong?



Hi Tom, Colin

I have a similar problem, I have a new G4, all want to do is run off the batteries, top up with a bit of solar and recharge with Octopus. I messed with all the settings so much now I have no idea what they should be, could someone help me please. I am also not 100% confident the second CT clamp is in the right place. Really appreciate it if anyone can help me get back on track. If I turn it on and off it works fine for about 10 minutes then it tries tho charge the batteries?

Hello Luca if you use Solax Yeld Today is the total power of the inverter,
if you have connected 2 string on the Inverter you must call first and second string.

- platform: rest
  resource: 
  name: "Solax"
  json_attributes_path: "$.result"
  json_attributes:
    - yieldtoday
    - yieldtotal
    - acpower
    - uploadTime
    - inverterStatus
    - feedinpower
    - feedinenergy
    - consumeenergy
    - soc
    - batPower
    - powerdc1  
    - powerdc2    
    - batStatus
  value_template: 'Active'  # dummy value, not used; avoids the "State max length is 255 characters" error

You must add a new sensor:

- name: "Solax Solar Panel DC1"
  state: "{{ state_attr('sensor.solax', 'powerdc1') }}"
  unit_of_measurement: "W"
  device_class: energy
  state_class: measurement
  unique_id: solax_7
  icon: mdi:solar-power-variant

- name: "Solax Solar Panel DC2"
  state: "{{ state_attr('sensor.solax', 'powerdc2') }}"
  unit_of_measurement: "W"
  device_class: energy
  state_class: measurement
  unique_id: solax_11
  icon: mdi:solar-power-variant

At the and you must insert a helper with an addition of string 1 and 2