{"id":45109,"library":"hoymiles-wifi","title":"hoymiles-wifi","description":"Python library to communicate with Hoymiles DTUs and HMS WiFi-enabled microinverters via protobuf. Current version 0.5.6, requires Python >=3.9. Actively maintained with frequent releases.","status":"active","version":"0.5.6","language":"python","source_language":"en","source_url":"https://github.com/suaveolent/hoymiles-wifi","tags":["hoymiles","microinverter","dtu","solar","protobuf"],"install":[{"cmd":"pip install hoymiles-wifi","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Required for protobuf protocol messages","package":"protobuf","optional":false},{"reason":"Async HTTP client for DTU communication","package":"aiohttp","optional":false},{"reason":"Used for secure communication","package":"cryptography","optional":false}],"imports":[{"wrong":"from hoymiles_wifi import HoymilesWifi","symbol":"HoymilesWifi","correct":"from hoymiles_wifi import HoymilesWifi"}],"quickstart":{"code":"import asyncio\nfrom hoymiles_wifi import HoymilesWifi\nasync def main():\n    dtu_host = os.environ.get('DTU_HOST', '192.168.1.100')\n    hw = HoymilesWifi(dtu_host)\n    data = await hw.async_get_data()\n    print(data)\n    await hw.close()\nasyncio.run(main())","lang":"python","description":"Connect to a Hoymiles DTU by IP and fetch inverter data asynchronously."},"warnings":[{"fix":"Set a static IP for the DTU in your router or use DNS-based hostname.","message":"The DTU host IP may change if using DHCP; use a static IP or hostname to avoid connection failures.","severity":"gotcha","affected_versions":"all"},{"fix":"Always use 'await hw.async_get_data()' and call 'await hw.close()' after use.","message":"The library runs async; do not forget to await the async calls and close the session to avoid warnings.","severity":"gotcha","affected_versions":"all"},{"fix":"Migrate to async methods: async_get_data(), async_get_info(), etc.","message":"The synchronous API (sync_get_data) is deprecated and may be removed in future versions. Use async API instead.","severity":"deprecated","affected_versions":">=0.5.0"}],"env_vars":null,"search_vec":"'0.5.6':21 '3.9':24 'activ':25 'communic':7 'current':19 'dtu':32 'dtus':10 'enabl':15 'frequent':28 'hms':12 'hoymil':2,9,30 'hoymiles-wifi':1 'librari':5 'maintain':26 'microinvert':16,31 'protobuf':18,34 'python':4,23 'releas':29 'requir':22 'solar':33 'version':20 'via':17 'wifi':3,14 'wifi-en':13","created_at":"2026-06-07T12:53:24.255637+00:00","updated_at":"2026-06-07T12:53:24.255637+00:00","problems":{"verify_error":"Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\nImportError: cannot import name 'HoymilesWifi' from 'hoymiles_wifi' (/tmp/tmpxiauil3r/venv/lib/python3.12/site-packages/hoymiles_wifi/__init__.py)"},"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/suaveolent/hoymiles-wifi","github":"https://github.com/suaveolent/hoymiles-wifi","docs":null,"changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"import_fail","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-07-10","install_tag":null}}