Local MQTT Bridge for Marstek Venus A Battery Monitoring

Hi everyone! :wave:

I’ve created a local MQTT bridge for the Marstek Venus A battery system that might be useful for Home Assistant users.

What it does

  • Polls your Venus A battery locally via UDP API (every 60 seconds)
  • Publishes data to local MQTT broker
  • Real-time battery monitoring: SOC, temperature, power, energy statistics
  • Device control: Manual, Passive, Auto, AI modes
  • Optional secure remote access via TLS

Why I built it

The Venus A doesn’t send real-time MQTT data. This bridge eliminates constant cloud API polling, reducing battery drain and latency in your home network.

Architecture:
Venus A (UDP) → Raspberry Pi Bridge → MQTT Broker → Home Assistant

Features

  • Docker Compose setup on Raspberry Pi
  • Platform-independent (works with any MQTT client)
  • TLS encryption for remote access
  • Complete API support with retry logic

GitHub

Repository: GitHub - IvanKablar/marstek-venus-bridge: Local MQTT Bridge for Marstek Venus A Battery Systems - Real-time monitoring with UDP JSON-RPC polling and secure remote access

Complete installation guide, TLS setup, and API documentation included.

Home Assistant Example

sensor:
  - platform: mqtt
    name: "Battery SOC"
    state_topic: "marstek/venus/+/data"
    value_template: "{{ value_json.soc }}"
    unit_of_measurement: "%"

Happy to answer questions! The project is open source and contributions are welcome. 🙂
1 Like

FYI:
Marstek is working on an official integration
https://github.com/home-assistant/core/pull/156012

I still appreciate your work tho :grimacing: