--- layout: default title: Victron MQTT open source specification ---

Victron MQTT Protocol Overview

The Victron MQTT protocol is used by Victron Energy devices to publish and subscribe to real-time data over an MQTT broker. This protocol enables seamless integration of Victron devices—such as inverters, chargers, battery monitors, and solar controllers—into home automation, monitoring, and energy management systems.

How It Works

Supported Victron Devices

Note: To use the Victron MQTT protocol, you must have a Cerbo GX, Venus GX, or Color Control GX device (collectively known as GX devices). These GX devices act as gateways, exposing data from connected Victron products via MQTT. Other Victron devices (such as inverters, solar controllers, and battery monitors) do not expose MQTT directly—they must be connected to a GX device, which then publishes their data to the MQTT broker.

Common MQTT Topics

Each device type publishes to a set of standardized topics. For example:

MQTT Topics

{% for topic in site.data.victron_mqtt.topics %} {% endfor %}
Topic Short ID Name Unit Message Type Metric Type Metric Nature Device Type Value Type Precision Enum Min Max
{{ topic.topic }} {{ topic.short_id }} {{ topic.name }} {{ topic.unit_of_measurement }} {% if topic.message_type %}{{ topic.message_type | split: '.' | last }}{% endif %} {% if topic.metric_type %}{{ topic.metric_type | split: '.' | last }}{% endif %} {% if topic.metric_nature %}{{ topic.metric_nature | split: '.' | last }}{% endif %} {% if topic.device_type %}{{ topic.device_type | split: '.' | last }}{% endif %} {% if topic.value_type %}{{ topic.value_type | split: '.' | last }}{% endif %} {{ topic.precision }} {% if topic.enum %}{{ topic.enum | split: '.' | last }}{% endif %} {% if topic.min != nil %}{{ topic.min }}{% endif %} {% if topic.max != nil %}{{ topic.max }}{% endif %}

Enums

Enums represent the possible states or values for certain device properties, such as operational modes, alarm states, or relay statuses. These are useful for interpreting numeric codes in MQTT payloads.

{% for enum in site.data.victron_mqtt.enums %}

{{ enum.name }}

{% for member in enum.EnumValues %} {% endfor %}
IdValueDisplay Name
{{ member.id }} {{ member.value }} {{ member.name }}
{% endfor %}