This is the Solis Cloud Control API integration for Home Assistant. It allows you to read and control various settings of your Solis inverter. See my blog post for inspiration how to use this integration: Home Assistant Solar Energy Management.
Note
If your primary goal is to monitor data from the Solis Cloud Monitoring API, you might want to explore the Solis Sensor Integration.
Both integrations are complementary and can be used together to enhance your Home Assistant setup.
Use HACS to install the integration:
- Open HACS in Home Assistant
- Go to "Integrations"
- Click on the three dots menu in the top right corner
- Select "Custom repositories"
- Add
https://github.com/mkuthan/solis-cloud-control
as an Integration - Click "Add"
- Go back to the Integrations page
- Click on the "+" button in the bottom right corner
- Search for "Solis Cloud Control"
- Click on "Install" to add the integration to your Home Assistant instance
- Restart Home Assistant
- Go to "Configuration" > "Integrations"
- Click on the "+" button in the bottom right corner
- Search for "Solis Cloud Control"
- Click on "Solis Cloud Control" to add the integration
- Enter your Solis API key and token
- Select the inverter you want to control from the list
- ⚡ Control storage modes: "Self-Use", "Feed-In Priority" and "Off-Grid"
- ⏱️ Schedule charge and discharge slots
- ⚖️ Set maximum export power
- 🛠️ Access "Battery Reserve" and "Allow Grid Charging" options as Storage Mode attributes
It also provides battery related sensors:
The integration also meets several non-functional requirements:
- 📦 Batch reading of all inverter settings in a single request to fit within the Solis Cloud API limits
- 🔄 Retry logic for API requests to mitigate API stability issues
- 🏡 Best Home Assistant practices for integration development 😜
- Solis Hybrid Inverter S6-EH3P12
- Solis Datalogger S2-WL-ST
Install dependencies (once):
uv sync
Run the integration locally:
./scripts/run
Run a single test:
pytest --cov-fail-under=0 tests/test_init.py
To release a new version, create a new tag and push it to the repository:
git tag v1.0.1
git push origin v1.0.1