{"id":13718851,"url":"https://github.com/squishykid/solax","last_synced_at":"2025-05-14T15:10:09.131Z","repository":{"id":34553554,"uuid":"180283315","full_name":"squishykid/solax","owner":"squishykid","description":"🌞 Solax Inverter API Wrapper","archived":false,"fork":false,"pushed_at":"2025-02-26T11:05:12.000Z","size":233,"stargazers_count":115,"open_issues_count":19,"forks_count":66,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-05-11T22:04:47.256Z","etag":null,"topics":["home-automation","iot","photovoltaic","raspberry-pi","solar","solax"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/squishykid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-04-09T04:14:24.000Z","updated_at":"2025-05-10T17:33:00.000Z","dependencies_parsed_at":"2023-09-27T19:52:21.654Z","dependency_job_id":"0cdb5958-9c93-4caf-bc86-bae2c61539b7","html_url":"https://github.com/squishykid/solax","commit_stats":{"total_commits":75,"total_committers":24,"mean_commits":3.125,"dds":0.48,"last_synced_commit":"9f5c7cf0ffbd1c46ac76aa3fa3cacf26903c8f74"},"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squishykid%2Fsolax","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squishykid%2Fsolax/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squishykid%2Fsolax/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squishykid%2Fsolax/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/squishykid","download_url":"https://codeload.github.com/squishykid/solax/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253834445,"owners_count":21971618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["home-automation","iot","photovoltaic","raspberry-pi","solar","solax"],"created_at":"2024-08-03T01:00:38.683Z","updated_at":"2025-05-14T15:10:09.105Z","avatar_url":"https://github.com/squishykid.png","language":"Python","funding_links":[],"categories":["Renewable Energy","Renewable Energy Sources"],"sub_categories":["Photovoltaics and Solar Energy","Photovoltaic"],"readme":"# Solax\n\n[![Build Status](https://github.com/squishykid/solax/workflows/tests/badge.svg)](https://github.com/squishykid/solax/actions)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/solax.svg)](https://pypi.org/project/solax)\n\nRead energy usage data from the real-time API on Solax solar inverters.\n\n* Real time power, current and voltage\n* Grid power information\n* Battery level\n* Temperature and inverter health\n* Daily/Total energy summaries\n\n## Usage\n\n`pip install solax`\n\nThen from within your project:\n\n```\nimport solax\nimport asyncio\n\nasync def work():\n    r = await solax.real_time_api('10.0.0.1')\n    return await r.get_data()\n\nloop = asyncio.new_event_loop()\nasyncio.set_event_loop(loop)\ndata = loop.run_until_complete(work())\nprint(data)\n```\n\nThis 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](setup.py).\n\nIf 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:\n\n```\nfrom importlib.metadata import entry_points\nimport solax\nimport asyncio\n\nINVERTERS_ENTRY_POINTS = {\n   ep.name: ep.load() for ep in entry_points(group=\"solax.inverter\")\n}\n\nasync def work():\n    inverter = await solax.discover(\"10.0.0.1\", 80, \"xxxxx\", inverters=[INVERTERS_ENTRY_POINTS.get(\"x1_hybrid_gen4\")], return_when=asyncio.FIRST_COMPLETED)\n    return await inverter.get_data()\n\nloop = asyncio.new_event_loop()\nasyncio.set_event_loop(loop)\ndata = loop.run_until_complete(work())\nprint(data)\n```\n\n## Confirmed Supported Inverters\n\nThese 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 😊.\n\n* SK-TL5000E\n* X1 Hybrid Gen4\n\nYou can get the list of supported inverters by looking up the `solax.inverter` entry points:\n\n```\nfor ep in entry_points(group=\"solax.inverter\"):\n    print(ep)\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsquishykid%2Fsolax","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsquishykid%2Fsolax","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsquishykid%2Fsolax/lists"}