Solax X1 Hybrid G4 (local & cloud API)

I use the template sensor setup like this to just use the last value until it reads the data again. I found good solid wifi signal to the dongle helps a lot.

  - platform: template
    sensors:
      solaxx1_energytoday:
        friendly_name: SolaxX1 ENERGYTODAY
        unit_of_measurement: "kWh"
        value_template: >
          {% if is_state('sensor.solaxx1data', 'unavailable') %}
            {{ states('sensor.solaxx1_energytoday') }}
          {% else %}
            {{ state_attr("sensor.solaxx1data", "Data")[8] }}
          {% endif %}
        icon_template: mdi:home-lightning-bolt-outline
        device_class: "energy"
        attribute_templates:
          state_class: total_increasing
          time_stamp: >
            {{ now() }}

Awesome. Ill have to modify my sensors. Seems to only be the cloud data, solax app has no interruptions when i monitor that data. Habent figured out the local connection yet, cant enter the login/pwd

@kamilb @ColinRobbins Hi, many thanks for a fantastic collaboration between the two if you providing a fantastic solax solution to many of us.
As a newbie I do have one small query though. Could you please advise how to configure the power flow chart correctly with the local data.
I have one running with the cloud info which appears correct when compared to the solax app, but for some reason I can’t get the grid and load parts to show correct flows or figures.
Many thanks.

Can you provide more information on what the problem is?
When you say it is not showing correctly, what exactly do you see?
Which sensors have you used in the chart?
Outside of the chart, as these sensors showing the correct data?

Can anyone send me csv of the data they collect, 1-4months

Much appreciated!

@patitocanardo @ColinRobbins I’ve finally managed to finish my immersion heating for hot water - see Smart immersion heating for domestic hot water for details. If it’s still not clear there, do let me know and I will try to describe it better :slight_smile:

1 Like

Hi, I have implemented the code as above (left out the battery part since I do not have a battery). But whatever I do, I can’t get any data shown in the local sensors. The cloud sensors are working. I see the local api is running every minute (i have set to 60 seconds). But the sensor.solax_local_xx are not available, not contain any data. Let alone the correct mapping for my X1-Boost-Air-mini inverter.

I find it hard to troubleshoot this, because I can’t see what Home Assistant is getting from the local API request. Maybe it is an errormessage. The local CURL command is working perfectly, but maybe Home Assistant gets another answer.

@kamilb Many thanks for this great work. I am using your latest code as a template for my project.

I notice the secrets file has changed since the original post. Could you add or document the format needed for e.g. solax_local_set_battery_grid_charge_level_payload :+1:

Hi @Belly_Buster. Well spotted! The secrets.yaml is missing from the git repo as I couldn’t find an easy way to exclude the senstitive info there. I’ve updated the secrets.yaml snippet here so it should be complete now.

1 Like

@kamilb : just starting to integrate the solax cloud in to HA and find your great posting here. One question: do you use a wifi dongle for the inverter or a lan version? I have only the lan version installed. Any diiferences betwwen both ?

As answer to my own post I am a step further but still I can’t get the local sensor data active in HA.

This is a screenshot from the sensors (test_cloud and rest_local) from the developmenttool:

So I know that the local readout of the Solax is working correctly. Also, what I can see from the data, is that the following mapping is applicable for my Solax X1-Boost-Air-Mini (the important ones):

image

How can I change the sourcecoude to these values? I find it very strange that my devices are all ‘not available’ in HA:

Please help, I think it is not a very complicated issue since all data is in HA.

@Freakandel I believe you need to parse these values and turn them into individual template sensors - see my configuration.yaml

@StephanErdmann I only have the Wifi dongle

@StephanErdmann I also have the PocketLan v3.0 and cannot talk to it…

Hope someone has a clue but it appears not to listen on any port.
Cannot believe such a difference between LAN and WIFI.

If this does not work I will try the DNS option to fetch it’s outgoing communication

Hi Kamil

Great work! I have just started setting up Home Assistant and I had my Solax inverter connected just following your steps!
I have a question for all of you, I am getting crazy trying to get this working. I need to store the local values for some Solax power meterings to be sent to a Trydan car charger, so I need to store them in mqtt. I have been trying to send the information to mqtt or tell HA to store them somewhere there but I am getting no sucess at all. How can I store for example solax_local_pv_output in mqtt?

Thanks!!

@kamilb - First of all, Thanks for the brilliant piece of work. I was looking for a similar setup like this and I landed on your page. I have set up everything as you mentioned in your page. Set up the dashboard as well. I am able to successfully pull the data from Cloud. But when it comes to local then I am struggling. I believe I have set up all codes and parameters correctly. However, the dashbaoard is not fetching any Local data. Can you think of any reason which might be causing this? Please see below my setups. I have also checked my API using the Curl command example you provided, it also working fine. So don’t able to figure out where exactly its going wrong. Any help will be highly appreciated.

BR
Manu

Hi @ColinRobbins many thanks for your reply, please see screenshots attached taken at the same time. Cloud chart is correct but local chart completely incorrect including the flow arrows.

20230218_135157|690x388!

20230218_135208|690x388

So either you have not used the correct sensors in the chart, the sensor are not configured correctly, or you solax is returning data in different fields.
You’ll need to trace this back, looking at the sensors values in developer / states.

I had issues connecting to local also These are all the steps I took:

Had to find the dongle local IP address. Mine is 192.168.0.1xx Found it in the router attached devices on and showed as “espressif”
I did a IP reservation in my router settings for the inverter to ensure it always has the same IP address.

The password for the local query in the secrets.yaml will be the dongle serial the one below the QR code on the dongle.

Finally I substituted the serial number from the dongle above in all these areas in the config file

Hope this helps. Took me a while to get right

1 Like

Hi, I’ve finally figure it out, now the local values are working fine.

In the local API output of my Solax invertor the serial number entity “sn” is capitalized as “SN”. I didn’t realized that this make a difference in the parsing of the JSON. After changing the script it worked!

Now I can begin mapping the correct values. A mayor step forward!

2 Likes