SolaX Solar Inverter Setup Guide

@matthewjporter
what do you mean with old and new firmware?

@Erwin_Vos

Apparently the API on the inverters have been changed and a new firmware has been put on the newer shipped units than mine.

I am still able to get the stream direct from the inverters and convert into a json to use direct in node-red without having to get the feed from the online portal

Hi guys! I followed the guide till the Step 5, but even after 10 minutes my data doesn’t appear on the Emoncms site, what’s the problem? I have the automation set and it’s apparently sending the data correctly to the site, but that’s not the case!

Hi, I can’t get SITEID yet.
I don’t know if it’s a problem of the new inverters.

Using some man in the middle sniffing I have found a way to read the real-time data from the inverter using a http request to 5.8.8.8. It reports a JSON string including all data.

Could you provide the http request you used to request real-time data from the inverter

Hmm, I’m sorry but I have removed the flow using the local connection.
It’s not that hard to do some sniffing;

  1. install vrtualbox
  2. Create (download) android VM
    3, Start container with ethernet monitoring enabled
  3. Install solax app
  4. Connect using the LOCAL bullet
  5. Open log file in wireshark.

Note: you must use the proper user agent / body!

Okay, don’t know if you have figured it out already.
My guess is you don’t use the proper ID as site-id. It has nothing to do with old or new inverters as long as they are connected to the same cloud server.

If you enable the first debug entry you Should see “success”
-> Authentication is successfull
If you enable the second debug you Should see “success”
-> If you expand the reply you will see a lot of fields, one of them is:
“siteIds” NOTICE it is NOT siteId. The ID is shown as a STRING (between quotation marks)

Erwin faced the same problems. I hope you can get it to work.
I’m sorry for the delayed response, but I’m in the middle of finishing my graduation project.

I tried to follow this stepped approach but when I open you dropbox the files are not names as the names in step 4… Am I doing something wrong?

@CasparTheBridge

I just threw this Github together…I’ll tidy it up later. Hopefully this makes a bit more sense.

1 Like

Thanks @hotswapster

Mine is still running sweet so have not done much, but just wondering if you know or could combine all the PV outputs into single sensors in nodered?

I currently have 3 of my 4 PV Input’s producing power and displaying the generated watts in home assistant as individual but would really like just one figure

I gave it a go but could not get it right

Cheers

@matthewjporter the FIP is the total solar power generated. Is this what you mean? PV1+PV2+PV3+PV4 should = FIP

Ah, Missed that

I have two inverters in my flow as separate feeds so has inverter (X!Hybrid) PV1, PV2 & then inverter2 (X! Boost) PV1, PV2 so will need to join them together in a “Total FIP” I guess

Will look into now i know its there

Cheers

Hi I have a Solax Hybrid and 2 X1 2kw inverters have you had any luck with the X1’s the Hybrid works fine?

Thank you very much!!

I have it working now, really good work! :smiley:

Hi I have a solax x1 hybrid g3 will this work with the inverter I have tried your instructions but I can’t get communicating with the inverter.
Thanks in advance

Hi @Crisman,
I updated the github readme to tell you how to test your inverter before you start programming everything else. Give that a go and see if you get a JSON-like object back.

Has anyone checked out the new Solax component in the lates version of Hassio 0.94.0


Am updating now so will give feed back once I have tested it out but did anyone know it was being developed? Got any info on it etc

I would like to know if it will support multiple inverter as it looks like it maybe only one - still looking

This seems to have worked for me out of the box directly to the inverter.

The values I’m seeying are all 0’s except total power, and the export figure. Not sure why that is though.

I can’t compare this to the more manual way though, this was the first time I have set it up.

Is anyone else experiencing 0’s throughout? I get 0’s on the online solax-portal.com site too, so at least HASS is showing the same as the portal. Just need to figure out why they’re all 0.

@KiLLeRRat

I get my sensor reading as per the online portal and my node-red sensors so it seems to be integrating fine my side

I do get one odd reading as its showing sensor.battery_energy in kWh and looks like it is reading my yearly generation rather than the actual battery energy - I would love to have 1945.2 kWh in my batteries :slight_smile:

Other sensors seem to be correct and looks to be polling around 30secs rather than what I have in node-red at 60sec

On the thought about multiple inverts, just add the platform in with the second inverter details and it will create all the same sensors but with a “_2” at the end - Would be grate if we could use name: in the platform (Will test and update)

  • platform: solax
    ip_address: 192.168.1.x

  • platform: solax
    ip_address: 192.168.1.x

Same works for the templates, create multiple templates with different names based per inverter (I used _2) and just add “_2” after the sensor’s in vlaue_template as below

  • platform: template
    sensors:
    total_pv_power:
    friendly_name: “X1A Total PV Power”
    unit_of_measurement: ‘W’
    value_template: “{{ (states(‘sensor.pv1_power’) | float) + (states(‘sensor.pv2_power’) | float) }}”
    load_power:
    friendly_name: “X1A Load Power”
    unit_of_measurement: ‘W’
    value_template: “{{ (states(‘sensor.power_now’) | float) - (states(‘sensor.exported_power’) | float) }}”

  • platform: template
    sensors:
    total_pv_power_2:
    friendly_name: “X1B Total PV Power”
    unit_of_measurement: ‘W’
    value_template: “{{ (states(‘sensor.pv1_power_2’) | float) + (states(‘sensor.pv2_power_2’) | float) }}”
    load_power_2:
    friendly_name: “X1B Load Power”
    unit_of_measurement: ‘W’
    value_template: “{{ (states(‘sensor.power_now_2’) | float) - (states(‘sensor.exported_power_2’) | float) }}”

My Sensors with the Solax Component

Seems to be missing Yearly Total