victron-mqtt
Python library for communicating with Victron Venus OS MQTT interface
Decision gist · record as of 2026-08-14
Yes. The library is actively maintained, has no known vulnerabilities, installs with low friction, and is licensed permissively under MIT. It fills a clear gap for Python developers integrating Victron hardware into automation or monitoring systems. The async design and typed object model make it well-suited for production use. Start with the quick-start example and verify your Venus OS device is reachable on the network.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.11 or later; a Victron Venus OS device (CCGX, Cerbo GX, or Ekrano GX) with MQTT broker running on the network.
- Low install friction with a pure-Python wheel.
- Active maintenance with a recent release (2026-08-14) and steady development since June 2025.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions—you may use, modify, and distribute this library freely as long as you include the license notice.
last release 2026-08-14 (0 days) · last repo commit 2026-08-14 · 51 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 77,736 downloads/mo, #14,501 on PyPI
Alternatives
Verify before relying
pip install victron_mqtt
import asyncio
import victron_mqtt
async def main():
hub = victron_mqtt.Hub("venus.local", 1883, None, None, False)
await hub.connect()
await hub.wait_for_first_refresh()
for device in hub.devices.values():
print(f"{device.name}: {device.device_type}")
await hub.disconnect()
asyncio.run(main())- Whether the library handles automatic reconnection and recovery from network interruptions.
- Performance characteristics when monitoring large numbers of devices or metrics simultaneously.
- Compatibility with non-standard MQTT broker configurations or authentication schemes beyond username/password.
What it is and what it does
victron_mqtt is an async Python client for Victron Energy's Venus OS devices, which are energy management controllers used in solar, battery, and inverter systems. It connects to the device's built-in MQTT broker, discovers all attached hardware (solar chargers, batteries, inverters, etc.), and exposes them as typed Python objects with live-updating metrics. You can read sensor values in real time via callbacks, write control commands back to the device (turning switches on/off, adjusting setpoints), and browse the device hierarchy.
The library is built on aiohttp and paho-mqtt for non-blocking async operation, making it suitable for integration into Home Assistant, custom dashboards, or monitoring applications. It handles metric typing, unit conversion, computed values (like GPS location from raw coordinates), and enum translation. The package includes a tkinter GUI for browsing devices and metrics during development, and supports multiple operation modes (full control, read-only, or experimental features).
Use it for
- Monitor solar charger yield, battery state-of-charge, and inverter power in real time from a Home Assistant dashboard.
- Automate energy management by reading grid power and battery voltage, then writing control commands to switch loads or adjust charging setpoints.
- Build a custom web or mobile app that displays live metrics from a Victron system with typed, unit-aware values.
- Log historical energy data by subscribing to metric updates and writing them to a database or time-series store.
- Integrate Victron hardware into a larger IoT system by exposing metrics and controls via MQTT callbacks.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The library is actively maintained, has no known vulnerabilities, installs with low friction, and is licensed permissively under MIT. It fills a clear gap for Python developers integrating Victron hardware into automation or monitoring systems. The async design and typed object model make it well-suited for production use. Start with the quick-start example and verify your Venus OS device is reachable on the network.
Install
victron-mqtt on PyPI
Before you install
Low install friction with a pure-Python wheel. Active maintenance with a recent release (2026-08-14) and steady development since June 2025. Depends on aiohttp and paho-mqtt, both widely-used async/MQTT libraries.
Requires Python 3.11 or later; a Victron Venus OS device (CCGX, Cerbo GX, or Ekrano GX) with MQTT broker running on the network.
License in practice
MIT license permits commercial and private use with minimal restrictions—you may use, modify, and distribute this library freely as long as you include the license notice.
Quickstart
pip install victron_mqtt
import asyncio
import victron_mqtt
async def main():
hub = victron_mqtt.Hub("venus.local", 1883, None, None, False)
await hub.connect()
await hub.wait_for_first_refresh()
for device in hub.devices.values():
print(f"{device.name}: {device.device_type}")
await hub.disconnect()
asyncio.run(main())
Verify before relying
- Whether the library handles automatic reconnection and recovery from network interruptions.
- Performance characteristics when monitoring large numbers of devices or metrics simultaneously.
- Compatibility with non-standard MQTT broker configurations or authentication schemes beyond username/password.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.11 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesaiohttppaho-mqtt |
| Maintenance | Actively maintained 0 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 77,736 / month, #14,501 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaProgramming Language :: PythonProgramming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy |
Evidence: victron_mqtt-2026.8.3-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “victron mqtt python”
- victron-mqttAn asynchronous Python library for communicating with Victron Energy…
- gmqttgmqtt is an async Python MQTT client that connects to MQTT brokers,…
- aiomqttAn asyncio-native MQTT client that wraps paho-mqtt to provide…
Give your agent the search over MCP, or paste the wish link into any chat.
More Monitoring packages
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
Provides generated Python code for OpenTelemetry semantic conventions, enabling standardized attribute naming and constant definitions for instrumentation and telemetry collection.
Install it if you are using OpenTelemetry and want to follow semantic conventions correctly.
Provides the reference implementation of the OpenTelemetry API for collecting and exporting traces, metrics, and logs from Python applications.
Provides the abstract API and interfaces for OpenTelemetry instrumentation in Python, defining how to emit traces, metrics, and logs without tying code to a specific SDK implementation.
Exports OpenTelemetry observability data to an OpenTelemetry Collector using Protobuf-encoded messages over HTTP.
Install it if you are using OpenTelemetry in Python and need to send data to a Collector over HTTP.
Provides automatic instrumentation commands and programmatic APIs to inject distributed tracing into Python applications without code changes, detecting and instrumenting packages used by your program.
Install it if you need distributed tracing without code changes and have compatible instrumented packages in your environment.
See also python-openevse-http · pyworxcloud · pyenphase · pyswitchbee · asyncio-mqtt · paho-mqtt · gmqtt · nexia · pyemvue · aiomqtt