/solis-sensor

HomeAssistant integration for the SolisCloud PV Monitoring portal via SolisCloud API

Primary LanguagePythonApache License 2.0Apache-2.0

hacs_badge

❗Request for maintainers

As you might have noticed I'm having trouble to spend enough time on maintaining this integration. For the continuity of this integration it would be great if it could be maintained and further developed by a small team of volunteers. Are you interested and do you have coding experience? Drop me a line.

SolisCloud sensor integration

HomeAssistant sensor for SolisCloud portal. Still questions after the readme? Read the wiki or look at the discussions page

SolisCloud

❗The SolisCloud API is known to be unstable and can fail to respond resulting in "no inverter found" issues. See troubleshooting section. Join the discussion here to find out about known limitations and to ask questions.

SolisCloud is the next generation Portal for Solis branded PV systems from Ginlong.

The new portal requires a key-id, secret and username to function. You can obtain key and secret via SolisCloud.

  • Submit a service ticket and wait till it is resolved.
  • Go to https://www.soliscloud.com/#/apiManage.
  • Activate API management and agree with the usage conditions.
  • After activation, click on view key tot get a pop-up window asking for the verification code.
  • First click on "Verification code" after which you get an image with 2 puzzle pieces, which you need to overlap each other using the slider below.
  • After that, you will receive an email with the verification code you need to enter (within 60 seconds).
  • Once confirmed, you get the API ID, secret and API URL

Platform v2 (legacy, not maintained)

Platform V2 backend was used by Ginlong before being decomissioned in May 2023. The same backend API is also used for different PV inverter brand portals. The platform v2 integration logs in to the platform and exposes the data retrieved as sensors. Keeping as legacy for:

  • Solarman (home.solarman.cn)
  • Sofar solar (home.solarman.cn)

Platform V2 backend was used by Ginlong and MyEvolveCloud and the same backend is also used for different PV inverter brand portals. I've only tested it in context of Solis with the Ginlong platform. Since Ginlong now is decomissioned I have no further means to test and will not process change requests.

HACS installation

The use of HACS is supported and is the preferred means of installing this integration.

Manual installation

Create a directory called solis in the <config directory>/custom_components/ directory on your Home Assistant instance. Install this component by copying the files in [/custom_components/solis/]

This is how your custom_components directory should be:

custom_components
├── solis
│   ├── __init__.py
│   ├── config_flow.py
│   ├── const.py
│   ├── ginlong_api.py
│   ├── ginlong_base.py
│   ├── ginlong_const.py
│   ├── manifest.json
│   ├── sensor.py
│   ├── service.py
│   ├── soliscloud_api.py
│   ├── soliscloud_const.py
│   ├── strings.json
│   └── workarounds.yaml

Now restart your Home Assistant Instance before continuing to the next step

⚠️ Troubleshooting

SolisCloud is in production since 2021, but still suffers from instability. This can manifest itself as issues during setup, but also as regression/instabilities after service maintenance. Below are issues that were encountered in the past and some suggestions how to resolve/troubleshoot.

No inverters found

Repeated "No inverters found" errors that do not recover automatically within a few hours sometimes block a successful configuration. Check the following:

  • Check if the plant ID is present on SolisCloud. If missing then change the name of the installation by choosing "change information" on the top right of the overview page. After that a plantid is generated.
  • Try creating a new API key

HTTP 408 Error

Not a real limitation, but a feature of the API. It caused by differences of more than 15 minutes between your local time and server time. This can happen when you run HA in a VM. Update your local time.

Server timeouts

Just wait, they'll pass. Sometimes minutes, sometimes longer. This can be frustrating however if it happens during configuration.

The Chinese error message that translates into "Abnormal data"

Make sure debug is ON and make confirm you get an error messsage with Chinese text: [custom_components.solis.soliscloud_api] {'Success': True, 'Message': 'OK', 'StatusCode': 200, 'Content': {'success': True, 'code': '1', 'msg': '数据异常 请联系管理员', 'data': None}}.

  • Alternatively copy all files from the /test folder to a local machine and make sure you have python 3 installed. Edit apitest_async.py, add your key/secret and run the test app with python apitest_async.py. This test will call most API endpoints and return if the call was successful or not. You'll get the same Chinese error message if you have the "Abnormal data" problem.

Users have reported the following options as possible solutions:

  • File a ticket with Solis, to solve the issue. Be prepared to wait. Can take weeks
  • Deactivating (disable) the API administration in soliscloud.com and reactivating the API

Results may vary. Do not create new tickets for this issue, it is a server error and Solis servicedesk needs to fix it for you!

Configuration

The integration can be configured via the UI.

  • Go to Settings -> Devices and Services -> Click Add integration and select "Solis"
  • Select the right platform and platform URL to use and click "Submit"
  • If you add multiple configurations, make sure all of them have a unique name.

image

Soliscloud

  • Provide username, key id, secret and station id. If you want to add multiple plants just repeat "add integration" for each plant.

  • To get StationId:

    1. Log in to SolisCloud
    2. In the Plant Overview tab, under the Plant Name column, Click on your actual plant name, per the screenshot below:
    image
    1. Copy the 19-digit number from the URL: https://www.soliscloud.com/#/station/stationdetail_1?id=XXXXXXXXXXXXXXXXXXX and paste it in the station ID field:
    image

If the plant id in the overview page (https://soliscloud.com/#/station/stationdetail_1?id=xxxxxxxxxxx) is empty then you will get "no inverter found errors. Change the name of the installation by choosing "change information" on the top right of the overview page. After that a plantid is generated.

Ginlong platform v2 (deprecated, left in for legacy support)

  • Provide username, password and plant id. If you want to add multiple plants just repeat "add integration" for each plant.

Energy dashboard

The Solis integration now supports the energy dashboard introduced in Release 2021.8.

Note: This integration requires Home Assistant version 2021.9 or higher

dashboard integration energy production

Thanks

Big thanks & kudo's to @LucidityCrash for all the work on getting the SolisCloud support working!