Codync
무료 오픈소스 1:1 대안, Grok Bot과 Muse 대신
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Async Python client for Intelbras solar inverters (Sungrow WiNet-S) over Modbus TCP and the datalogger WebSocket
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗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:
502, using the Sungrow SG-RS register map. This is the main data source.8082, which the built-in web UI uses. It provides Wi-Fi and cloud link state,
active faults and alarms, and the commercial model.pymodbus dependency. The library ships a tiny asyncio Modbus TCP client, so it never clashes with the version
that Home Assistant pins.aiohttp) and typed (py.typed).pip install python-intelbras-solar-local
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())
| 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.
| 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_get_datalogger_info() | DataloggerInfo: serial, firmware/build/hardware versions, cloud server, timezone, Wi-Fi/Ethernet link |
async_get_wifi_signal() | WifiSignal: joined SSID and RSSI (dBm). It runs a ~3 s station scan, so don't call it every poll |
async_get_inverter_info() | InverterInfo: serial, model, ratings, ARM/MDSP/SDSP/CPLD firmware versions |
async_get_fault_history() | FaultEvent list: recorded faults and warnings, newest first |
async_get_system_parameters() | Parameter list: connecting/reconnecting time, PID recovery, over-frequency derating, power limits, PV connection mode |
async_set_parameter(param, value) | Write a system or protection parameter (number, or an option name such as "enable") |
async_set_power_factor(pf) / async_set_reactive_mode(mode) | Fixed power factor (±0.8–1) and reactive mode (off, power_factor, qt, q_p, q_u) |
async_reboot_datalogger() | Restart the WiNet-S |
async_get_grid_parameters() | GridParameter list: grid-protection thresholds and trip times |
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) |
The register map and the WebSocket protocol are documented in the docs.
uv venv && uv pip install -e ".[test]"
pytest
ruff check .
MIT © Hudson Brendon. This project is not affiliated with Intelbras or Sungrow.
async_set_clock(datetime)| Sets the inverter clock (4999–5004) |