Skip to main content

Intelbras

python-intelbras-solar-local

Tests PyPI version Python License: MIT

This is an async Python client that reads and controls Intelbras solar inverters over the local network, with no cloud and no account. It was built for the ha-intelbras-solar-local Home Assistant integration.

Intelbras IONS inverters are rebranded Sungrow string inverters, and their Wi-Fi datalogger is a Sungrow WiNet-S. The datalogger exposes two interfaces without a login, and this library uses both:

  • Modbus TCP on port 502, using the Sungrow SG-RS register map. This is the main data source.
  • The datalogger WebSocket on port 8082, which the built-in web UI uses. It provides Wi-Fi and cloud link state, active faults and alarms, and the commercial model.

Features

  • ⚡ Power readings: AC, DC, apparent and reactive power, plus power factor.
  • 🔋 Energy counters for today, the month, the year and the lifetime total (0.1 kWh resolution).
  • ☀️ Voltage, current and power for each MPPT input.
  • 🔌 Grid voltage, current and frequency (0.01 Hz).
  • 🩺 Health data: work state, internal temperature, bus voltage, insulation resistance and fault code.
  • 📡 Datalogger data: Wi-Fi and cloud connectivity, active fault list and alarm count.
  • 🛠️ Controls: start or stop the inverter, switch power limitation on or off, set the power limit (%), set the clock.
  • No pymodbus dependency. The library ships a tiny asyncio Modbus TCP client, so it never clashes with the version that Home Assistant pins.
  • Fully async (aiohttp) and typed (py.typed).

Installation

pip install python-intelbras-solar-local

Quickstart

import asyncio
from intelbras_solar_local import IntelbrasSolarClient


async def main() -> None:
    async with IntelbrasSolarClient("192.168.31.17") as client:
        status = await client.async_get_status()
        print(status.model, status.serial, status.work_state)
        print(f"{status.power_ac} W now, {status.energy_today} kWh today")
        for n, mppt in enumerate(status.mppts, 1):
            print(f"MPPT{n}: {mppt.voltage} V x {mppt.current} A = {mppt.power} W")


asyncio.run(main())

Supported hardware

Inverter Datalogger firmware Sungrow type code
Intelbras IONS-5K M5 WIFI-SV300.001.03.P002 (WiNet-S) 0x2614

Other Intelbras IONS models and Sungrow SG-RS inverters behind a WiNet-S should work as well. If yours differs, open an issue with the output of examples/status.py.

API overview

Method Description
async_get_status() Returns an InverterStatus from Modbus, with a DataloggerStatus when the WebSocket answers (best-effort)
async_get_inverter_data() Modbus-only InverterStatus
winet.async_get_status() Datalogger-only DataloggerStatus
async_set_inverter_on(on) Starts or stops generation (holding register 5005)
async_set_power_limit_enabled(enabled) Switches power limitation on or off (5006)
async_set_power_limit(percent) Sets the power limit, 0–100 % (5007)
async_set_clock(datetime) Sets the inverter clock (4999–5004)

The register map and the WebSocket protocol are documented in the docs.

Development

uv venv && uv pip install -e ".[test]"
pytest
ruff check .

License

MIT © Hudson Brendon. This project is not affiliated with Intelbras or Sungrow.

Metadata

Release files for python-intelbras-solar-local 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-intelbras-solar-local 0.1.1
File Size Uploaded Provenance
python_intelbras_solar_local-0.1.1.tar.gz 47.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for python-intelbras-solar-local 0.1.1
File Interpreter ABI Platform
python_intelbras_solar_local-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 61.3 kB

Release files / python_intelbras_solar_local-0.1.1.tar.gz

Download URL python_intelbras_solar_local-0.1.1.tar.gz
Size 47.9 kB
Tags Source
SHA-256 checksum
How to use checksums
fb6f55bb9eee7909b892ecf103ba0b458b7e5bebd95694a375f5d3bf456261a4
BLAKE2b-256 checksum
How to use checksums
04b3c7a18b5474a26ace0c757fd72620d9f076565b802df09da7ecc1020481c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.5

Release files / python_intelbras_solar_local-0.1.1-py3-none-any.whl

Download URL python_intelbras_solar_local-0.1.1-py3-none-any.whl
Size 13.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
845fd1fdcd67f9ce2d982fd6170ec73a51b22357c9133b5795075211e0f49b2a
BLAKE2b-256 checksum
How to use checksums
2f886daa94cbce10843d8b9f8e6b41f8c848966f8bc4b35b7798297b4d905caa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.5

Security for python-intelbras-solar-local 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page