Modern Python bridge for connecting MBMD (Modbus Measurement Daemon from volkszaehler.org) devices to Victron Venus OS using the official aiovelib async library. Supports various grid meters and power monitoring devices via MQTT.
Victron has incorporated a new GUI (v2) for Venus OS starting with version v3.40~2. With the previous dbus-bridge the electricity meter is not available in the new GUI. I realised that GUI v2 requires the D-Bus service to have a GetItems() method that returns all paths and their values in one call. This is already supported in victrons velib/aiovelib, so this Implementation was made.
- GUI v2 Compatible: Implements required
GetItems()method automatically via aiovelib - Async Design: Modern asyncio-based architecture with aiomqtt
- Auto-reconnect: Handles MQTT and D-Bus disconnections gracefully
- Message Timeout: Watchdog exits if no MQTT messages received
- Bulk Updates: Atomic D-Bus updates using context managers
- Proper Logging: Integrates with Venus OS syslog
- Configuration Handling: Simple config.ini is used for credentials and configuration values
- Getting Started: A comprehensive guide to installing, configuring, and troubleshooting the MBMD Bridge.
- Development: A detailed guide for developers, covering architecture, development workflow, and contribution guidelines.
- aiovelib - Victron's official async Python D-Bus library
- dbus-shelly - Reference grid meter implementation
- Venus OS D-Bus API
- Victron Community
For issues specific to this Python implementation, check:
- Logs:
tail -f /var/log/messages |grep mbmd_bridge - D-Bus service:
dbus -y | grep mbmd - MQTT connection: Test with
mosquitto_sub - MBMD server: Visit volkszaehler MBMD
For general Venus OS questions, visit Victron Community.
