solax
Read energy usage data from the real-time API on Solax solar inverters.
https://github.com/squishykid/solax
Category: Renewable Energy
Sub Category: Photovoltaics and Solar Energy
Keywords
home-automation iot photovoltaic raspberry-pi solar solax
Keywords from Contributors
varta varta-storage
Last synced: about 12 hours ago
JSON representation
Repository metadata
🌞 Solax Inverter API Wrapper
- Host: GitHub
- URL: https://github.com/squishykid/solax
- Owner: squishykid
- License: mit
- Created: 2019-04-09T04:14:24.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2025-02-26T11:05:12.000Z (about 2 months ago)
- Last Synced: 2025-04-20T08:37:54.415Z (7 days ago)
- Topics: home-automation, iot, photovoltaic, raspberry-pi, solar, solax
- Language: Python
- Homepage:
- Size: 228 KB
- Stars: 113
- Watchers: 13
- Forks: 66
- Open Issues: 19
- Releases: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
README.md
Solax
Read energy usage data from the real-time API on Solax solar inverters.
- Real time power, current and voltage
- Grid power information
- Battery level
- Temperature and inverter health
- Daily/Total energy summaries
Usage
pip install solax
Then from within your project:
import solax
import asyncio
async def work():
r = await solax.real_time_api('10.0.0.1')
return await r.get_data()
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
data = loop.run_until_complete(work())
print(data)
This will try all the inverter classes in turn until it finds the first one that works with your installation. You can see the list of inverter implementation classes in the entry points configured in setup.py.
If you want to bypass the inverter discovery code and use a specific inverter class, you can invoke discover
specifying directly the class. In this example, the X1 Hybrid Gen4 implementation is used:
from importlib.metadata import entry_points
import solax
import asyncio
INVERTERS_ENTRY_POINTS = {
ep.name: ep.load() for ep in entry_points(group="solax.inverter")
}
async def work():
inverter = await solax.discover("10.0.0.1", 80, "xxxxx", inverters=[INVERTERS_ENTRY_POINTS.get("x1_hybrid_gen4")], return_when=asyncio.FIRST_COMPLETED)
return await inverter.get_data()
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
data = loop.run_until_complete(work())
print(data)
Confirmed Supported Inverters
These inverters have been tested and confirmed to be working. If your inverter is not listed below, this library may still work- please create an issue so we can add your inverter to the list 😊.
- SK-TL5000E
- X1 Hybrid Gen4
You can get the list of supported inverters by looking up the solax.inverter
entry points:
for ep in entry_points(group="solax.inverter"):
print(ep)
Owner metadata
- Name: Robin Wohlers-Reichel
- Login: squishykid
- Email:
- Kind: user
- Description:
- Website:
- Location: Sydney, Australia
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/2177912?v=4
- Repositories: 41
- Last ynced at: 2024-06-11T15:42:34.337Z
- Profile URL: https://github.com/squishykid
GitHub Events
Total
- Create event: 6
- Issues event: 30
- Release event: 1
- Watch event: 15
- Delete event: 1
- Issue comment event: 103
- Push event: 11
- Pull request review comment event: 5
- Pull request review event: 6
- Pull request event: 24
- Fork event: 6
Last Year
- Create event: 6
- Issues event: 30
- Release event: 1
- Watch event: 15
- Delete event: 1
- Issue comment event: 103
- Push event: 11
- Pull request review comment event: 5
- Pull request review event: 6
- Pull request event: 24
- Fork event: 6
Committers metadata
Last synced: 7 days ago
Total Commits: 85
Total Committers: 29
Avg Commits per committer: 2.931
Development Distribution Score (DDS): 0.518
Commits in past year: 23
Committers in past year: 15
Avg Commits per committer in past year: 1.533
Development Distribution Score (DDS) in past year: 0.87
Name | Commits | |
---|---|---|
Robin Wohlers-Reichel | r****l@g****m | 41 |
Vadim Kraus | 3****s | 5 |
Dos Moonen | d****r@g****m | 4 |
Petru Paler | p****u@p****t | 4 |
Jakub Darmach | j****b@s****m | 3 |
Niclas Kühnapfel | n****u | 2 |
Th3Link | m****r@g****m | 2 |
rnauber | 7****r | 2 |
Khalid Eldehairy | k****d@e****m | 2 |
Robin Wohlers-Reichel | me@r****m | 1 |
Adam Bogocz | 5****z | 1 |
Arne Mauer | a****r@g****m | 1 |
Bo Biene | 2****e | 1 |
Daniel Weeber | m****l@d****e | 1 |
DarkerCz | j****f@g****m | 1 |
Derek Kaye | g****b@d****k | 1 |
Fabian Affolter | m****l@f****h | 1 |
JJ Macalinao | j****o@g****m | 1 |
Jesse Hills | 3****z | 1 |
Martin Beran | m****n@m****z | 1 |
Martin Richtarsky | s@m****e | 1 |
Nazar Mokrynskyi | n****r@m****m | 1 |
Pedro Simoes | p****s@g****m | 1 |
Renaud Bruyeron | b****n@g****m | 1 |
Rupert Nash | r****t@n****k | 1 |
Sebastian Stäubert | s****t@u****e | 1 |
Szilárd Kálosi | k****z | 1 |
dickinsonrob | r****n@c****t | 1 |
Joel Ekström | j****l@e****v | 1 |
Committer domains:
- ekstrom.dev: 1
- cantab.net: 1
- uni-leipzig.de: 1
- nash.me.uk: 1
- mokrynskyi.com: 1
- martinien.de: 1
- mber.cz: 1
- fabian-affolter.ch: 1
- dezzanet.co.uk: 1
- daniel-weeber.de: 1
- robinwohlers.com: 1
- eldoheiri.com: 1
- stackhpc.com: 1
- paler.net: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 80
Total pull requests: 99
Average time to close issues: 10 months
Average time to close pull requests: 3 months
Total issue authors: 55
Total pull request authors: 45
Average comments per issue: 6.31
Average comments per pull request: 2.63
Merged pull request: 63
Bot issues: 0
Bot pull requests: 0
Past year issues: 14
Past year pull requests: 24
Past year average time to close issues: 4 months
Past year average time to close pull requests: 30 days
Past year issue authors: 12
Past year pull request authors: 17
Past year average comments per issue: 3.29
Past year average comments per pull request: 1.54
Past year merged pull request: 15
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- squishykid (11)
- matthewjporter (4)
- nazar-pc (3)
- sommo (3)
- rupertnash (3)
- rwg0 (2)
- DanielWeeber (2)
- petgriffin (2)
- VadimKraus (2)
- emichel11 (2)
- adambogocz (2)
- shockerchocker (1)
- horamarques (1)
- Elliottmonaghan (1)
- cheikemate (1)
Top Pull Request Authors
- squishykid (25)
- VadimKraus (6)
- Darsstar (5)
- ppetru (4)
- brew-your-own (3)
- rnauber (3)
- niclasku (3)
- darmach (3)
- rowinho (3)
- BoBiene (3)
- nazar-pc (2)
- arnemauer (2)
- kdehairy (2)
- Th3Link (2)
- DarkerCz (2)
Top Issue Labels
- inverter:x3 (1)
- inverter:xhybrid (1)
- inverter:x1 (1)
Top Pull Request Labels
- inverter:xhybrid (2)
- inverter:x3 (1)
Package metadata
- Total packages: 1
-
Total downloads:
- pypi: 4,779 last-month
- Total docker downloads: 757,208,562
- Total dependent packages: 0
- Total dependent repositories: 631
- Total versions: 30
- Total maintainers: 1
pypi.org: solax
Solax inverter API client
- Homepage: https://github.com/squishykid/solax
- Documentation: https://solax.readthedocs.io/
- Licenses: MIT
- Latest release: 3.2.3 (published 4 months ago)
- Last Synced: 2025-04-25T14:05:37.864Z (1 day ago)
- Versions: 30
- Dependent Packages: 0
- Dependent Repositories: 631
- Downloads: 4,779 Last month
- Docker Downloads: 757,208,562
-
Rankings:
- Docker downloads count: 0.168%
- Dependent repos count: 0.554%
- Downloads: 4.405%
- Average: 4.431%
- Forks count: 6.199%
- Dependent packages count: 7.299%
- Stargazers count: 7.963%
- Maintainers (1)
Dependencies
- actions/checkout master composite
- actions/checkout v1 composite
- actions/setup-python v1 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- aiohttp >=3.5.4,
- async_timeout >=4.0.2
- voluptuous >=0.11.5
Score: 28.695254266414693