Home Assistant integration with Victron

I'm a big fan of the open nature of Victron's platform - both the API and the data itself. We've been using this to great effect in our RV, using the rich, real-time data from our Victron CCGX not just for monitoring but also to integrate into our home automation system.

One such use case is bringing the data into Home Assistant. I'm using MQTT via an intermediary MQTT broker so that I can have multiple consumers without increasing the load on the CCGX itself. This has been running flawlessly for almost 2 years now.

Here's an example of the data I'm pulling into Home Assistant and how it appears:


The real power, however, comes from not just displaying the data but using it to make physical changes via automations.

For example, most of the time we have our inverter turned off due to the background power draw which is significant in our modest RV setup (600W solar + 300Ah lithium batteries). When dry camping and all our power is coming from solar, we have it set up to automatically turn on the inverter when the batteries hit 90%. The fridge switches from propane to AC at 95%, and at 98% the electric water heater turns on. There is hysteresis configured to turn each toggle off at lower SoCs too.

We're planning to spend this winter in a very cold climate (northern Vermont where temperatures could reach 0°F). Our RV has a 30A main breaker, which is easily exceeded if we run too many appliances - e.g. water heater, space heater, Instant Pot. I'm planning another automation which will automatically and temporarily turn off the water heater and / or space heater if we're at risk of exceeding the capacity of either our main breaker or MultiPlus output (computed in real-time based on shore power connectivity).

Having the data from the Victron system integrated alongside the data from our other home automation system (10+ environmental sensors, contact sensors, GPS, lights, appliances, media, networking data etc) is an incredibly powerful platform that is helping to make our RV more secure, more efficient and most importantly, more comfortable for us to live in.

As I said earlier, the Victron data is being ingested via MQTT but I'm hoping to find some time this winter to work on a native integration with Home Assistant. If anyone from Victron is interested in being involved in that process, please let me know!

Again, hope this inspires people with a few ideas, and thank you again to the team at Victron for making all this possible!

Matt Knight asked
sfstar commented ·

11 Answers

Venus OS v3.00~8 available for testing

Hello all!

A new v3.00 version is available for testing.

Introduction to Venus OS beta testing

In case you don't know what this message is about, please start with reading this link, which explains the Venus OS beta program. Venus OS is the software running on all our GX devices, such as the Cerbo GX.

How to post an issue?

Please keep all findings organised as answers to this question. One answer per issue. So first check the existing threads. If you have the same as someone else already reported, welcome to add a comment saying "me too". And preferably some more details. And in case its not listed yet, add a new Answer. Note that Answers and Comments are two different things!

Lastly, please first revert to the latest official release (v2.92), to double check if the issue you're seeing was present there as well. Regressions require a different treatment than other issues and bugs.

Changes v3.00~4 -> v3.00~8


  • Multi/Quattro: Fix issue causing a repetitive low battery alarm in case the battery is disconnected
  • ESS: Fix bug introduced in v3.00~2 related to external control mode.
  • Add progress indicator (0 to 100%) to Venus OS firmware download.
  • Fix tank temperature unit (Fahrenheit)
  • Add new VE.Bus product ids (2681, 2723, 2766, 2776)
  • Add diagnostic fields for Multis/Quattros (uptime counter per unit, terminal voltage, Vsense voltage for L1 master and DC ripple)


  • com.victronenergy.battery: Add /Dc/0/Power and /Mode, add missing fields to /State enum
  • com.victronenergy.digitalinput: Add "Generator" to /Type enum
  • com.victronenergy.multi (applies to RS products): fix in enum /State

Venus OS Large

Changes v2.92 -> v3.00~4

  • For systems having multiple BMSes connected, allow selecting which one should be used for DVCC. It also allows the use of a BMV for SOC tracking -- by selecting BMV as battery monitor -- while still using the BMS for DVCC. A bit of a niche issue for special systems, more technical background here: https://github.com/victronenergy/venus/issues/901 (but please don't start posting on our github - thanks).
  • Detect Hubble batteries, untested as of yet.
  • Add Polish translations, thank you Jakub T for helping with that!
  • ESS: increase control speed of systems using todays supported meters (ET112, ET330, EM24, and also the ABB ones) a little. But, for faster meters, such as the EM540 which is not available yet, increase it very significantly. Requires updating the built-in MK3-chip, see next bullet.
  • Include a newer version of onboard MK3-chip firmware. Updating that has a 1 to 10% chance of a short system outage (Multi/Quattro shuts down in VE.Bus Error 14, restarts after 30 seconds). And therefore the update needs to be initiated manually from within the menu. Note that this is a reversible action, no need to worry about being unable to roll back. After updating, and then rolling Venus OS back to v2.92 or some other earlier version, the MK3 will automatically (and silently) be downgraded to the for that version of Venus OS required MK3-firmware version.
  • Improve text for tank sensor name in pump configuration.
  • ESS: Fix bug where PV is not used for loads when scheduled charging to 100% during daytime
  • Fix bug where a PV-inverter on AC-in-2 would not be shown in the ESS overview. The workaround was to configure the PV inverter as being on AC-in-1. Not needed anymore.

Venus OS Large

Under water / developer

  • Various small under the hood changes, mostly resulting in small reductions of CPU load
  • Replace Hiawatha webserver with nginx; which is better kept up to date (security)
  • Include various OE Dunfell fixes
  • DVCC: simplify transmission of the charge voltage setpoint by sending it always, rather than only if devices that work with it are detected. This won't make a difference to any commonly known system type.

Ps. Here are a few screenshots related to that MK3 firmware. On systems not updated yet, you'll see this (after going to the Device list, and then into the MultiPlus, Quattro or EasySolar listing):


And for anyone wanting to make sure its updated, in that same menu, scrolling all the way down to the Device submenu, and going in there, and scrolling down again, you'll find this listing:


Wherein the 212 digits are the version number, and thats the old one. And here is what you see after the update:


mvader (Victron Energy) asked
gazza answered ·

8 Answers

Help with Raspberry Pi with Expander Pi (for RTC and tank levels)

I got my expander pi for the RTC and tank level ADC. I'm trying to follow the directions to get the ADC working, but I'm stuck. https://groups.google.com/forum/#!searchin/victron-dev-venus/expander$20pi%7Csort:date/victron-dev-venus/V-JKXfBxXbA/-4kUe5qVFgAJ


I followed this:

#copy dtb to /u-boot/overlays I DID THIS FROM THE DOWNLOADED FILE

#excerpt from post:

#I had to convert the mcp3008-overlay.dtb to a dts file, change all references to 3008 to 3208, and convert it back to a dtb file, to get it to give me 12-bits (4095).

#(I've enclosed the dtb file if anyone needs it). The line in config.txt should read "dtoverlay=mcp3208:spi0-0-present" I DID THIS


opkg install kernel-module-mcp320x I DID THIS

chmod 755 /opt/victronenergy/dbus-adc/start-adc.sh I get chmod: /opt/victronenergy/dbus-adc/start-adc.sh: No such file or directory

chmod 755 /opt/victronenergy/dbus-adc/dbus-adc I get chmod: /opt/victronenergy/dbus-adc/start-adc.sh: No such file or directory

chmod 755 /opt/victronenergy/dbus-adc/service/run I get chmod: /opt/victronenergy/dbus-adc/start-adc.sh: No such file or directory

chmod 755 /opt/victronenergy/dbus-adc/log/runI get chmod: /opt/victronenergy/dbus-adc/start-adc.sh: No such file or directory

touch /var/log/dbus-adc I DID THIS

ln -s /opt/victronenergy/dbus-adc/service /service/dbus-adc I get -sh: chmod:: command not found

Since I couldn't get that working, I thought I would get the RTC to work, but couldn't get that either. I followed this:

###### RTC Clock for DS1307 ######

#install kernel module package.

opkg install kernel-module-rtc-ds1307 I DID THIS

#create /data/rc.local I DID THIS

#add this line to it to run on startup.

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device I DID THIS

hwclock -s I DID THIS

#end lines

#for reference

#hwclock -w

#write the system time to rtc

When I try this, I get: hwclock: can't open '/dev/misc/rtc': No such file or directory

#hwclock -r

#reads it back from the rtc

When I try this, I get: hwclock: can't open '/dev/misc/rtc': No such file or directory

#hwclock -s writes rtc back to system time

When I try this, I get: hwclock: can't open '/dev/misc/rtc': No such file or directory

Any help would be appreciated.

nebulight asked
scaldiss commented ·

2 Answers

ESS discharge only down to 40.7 volts

Hi at all,

my ESS Sytem with Multiplus-II 3000 discharge only down to 40.7 volts. But I would like to go down to 38 volts. The Hardware of the Multiplus-II should be able to do so. I guess it’s just a Software/Firmware limitation. But why? Any Chance that VICTRON will change this?

markde asked
Daniël Boekel (Victron Energy Staff) commented ·

2 Answers

Example of using assistants: partial off grid (boat), solar priority, low shore power current limit.

To show what you can do with assistants, here's a small example, installation is on a boat (15m 'replica' Dutch Barge) now travelling the inland waterways of the Netherlands, Belgium and France.

Components: Quattro 24/8000, 20kWh Lithium ion (Eco-Lithium), 2x MPPT 150/35 + 6 320 Wp PV panels, Venus GX, digital remote panel.

As the Quattro has a minimum AC input Current limit of 11 A, this gives problems with low power shore connections, so I've made a switch for the customer to engage 'low shorepower limit'.

When shore power is available, usually you don't want a full charge, as the solar panels are usually capable of providing enough power, so another switch is to select 'full charge' of 'half charge' from shore power


(best picture I could find, not all switches installed and SOC meter going to 12)





AC-in is ignored when 'aux1' is closed

The 'solar priority' uses a switch wired to 'relay K2' and then to 'aux1'
the generator start stop assistant is used for this, if the battery is charged above 27,5 V the relay is closed, so if the switch is 'on' it than it will ignore AC2 input (shore power)
Also, when load is higher than 1800 W it will re-connect shore power, to release again when load is below 1200 W

Low current shore power function:

When this is engaged (switch closed), a lower charge current is set by wiring the switch to 'aux 2' activating the 'charge current control' assistant.
The switch is also wired to 'relay K1' and from this relay to 'aux 1'
When the AC load is higher than 400 W the K1 relay closes, so ignoring AC-input. when load is below 300 W it is opened again.

The trick to using a 6A or 10A shore power connection:
-lower charge current so it only uses about 5A
-disconnect AC input when loads are higher than x W
It might sound strange, but this works perfectly on this system, as the inverter has enough power to run all loads (including Air Conditioning, induction hob and oven)

the first two assistants (programmable relays) in the image are to disconnect AC out 2 when battery is low on SOC, the electric cooking and Air Conditioning are on this output.

Yes I really like the assistants ;)

boekel asked
Ondra commented ·

4 Answers

Wireless Sensors - API? - DIY Options? (temp, tank, etc)


So today (I think) I'm writing in to ask about the lack of public API for data to publish to my VenusOS VRM. In particular I'd really love to be able to use DIY sensors for temp and/or tank levels, that I could see from my VRM homepage, or Android Widgets. But also, I cant see why there wouldnt be room for any short form data to be pushed to VRM regularly.

I've seen previous answers on this topic that are a year old, so I guess I'm adding my 2 cents, and asking if there are any updates. I'm very grateful that you've added the options for Mopeka and Ruuvi sensors, but I'm not prepared to spend $40-$70 per sensor at the moment, and I have the DIY skills to make my own for less.

It would be great to have the option to use ESP8266 (wifi) or NRF52 (BT/BLE) platforms and send the data to VenusOS. Examples:

I would really love to be able to program alarms to send me push notifications in the app. This would increase the value of my current and future Victron components quite a bit.

I'd love to know what blockers are in the way of this happening if it's not possible.

Thank you very much!



ps: I'd also be interested in how to do this wired, but wireless is still my goal.

coreyzev asked
mfoo answered ·

2 Answers

RPi 7" Not dimming

Added GUI Mods and display mods it wont dim. I've tried other things that has been listed in search.

Any ideas?

techoverland asked
ste7of1 answered ·

2 Answers

Multiplus 2 and AC Thor


I have a Multiplus 2 with a AC Thor heating element,

I wish to have the Temp. Reading 4 Sensors of the AC Thor showing up on the dashboard from the multiplus and also Sent the data via Node red to the KNX System

Whats the Best and easyst way to doo that

Bye André

andre12 asked
Mark answered ·

1 Answer

Venus Node-RED - Example flow: Temperature controlled relay

Does anyone have a good example of flows for maintaining lithium battery temperature via GX relays?

I have one that I slapped together but it's pretty basic and I don't really have a very good grasp on node-red yet.

Seeing as how this is one of the most common reasons for someone to want node-red, I'm pretty surprised that I can't find this already out there! The flows/dashboard from section 6.2 of the following link are very similar to what I am trying to do....but I can't see the rest of the flow and I'm lost. https://www.victronenergy.com/live/venus-os:large?utm_source=offline&utm_medium=qr&utm_campaign=qr%20code%20products#

I would also like to throw in some other variables such as warming the batteries to a higher temperature when the PV & battery voltage is above a certain threshold, and disabling warming when the battery voltage is too low.

chris-wilberg asked
Mark commented ·

4 Answers

baxter suggested Modifications

0 Feedback


Epever MPPT's on Raspberry pi/Venus OS USB port

Hello. On my log cabin I have a off grid solar system with the following components:

8 solar cells

2 Epever 60A MPPT's

Multiplus 12/3000/120

BMW 700

1500Ah battery bank

Like many others, instead of expensive Victron Color Control GX, I bought a Raspberry pi3 with a 7-inch display, on which I successfully installed the Venus OS according to the instructions of Himmelberger bus from Youtube.

The Multiplus and BMV 700 are connected to the Raspberry pi with VE direct to USB cable, and they work great.The MPPT's Epever Tracer AN 6415AN, and Epever Etracer 6415BND came with RS485 to USB cables and with Epever software show all data on Windows 10, but when i plug both cables to USB ports on Raspberry, nothing happens.I assume, that Raspberry on USB ports search only Victron devices connected with VE direct cable's, and not the other devices with Modbus protocol.

Can anyone help me how to prepare Raspberry to search for modbus protocol devices on the USB port's. Is there some scripts, or command lines, which must be entered in Venus OS, but i have no programming skills,so please for extensive instructions.

Greetings from Slovenia

dusan asked
elko commented ·

5 Answers

Victron fan / cooling changes in the newer Multiplus 2

After looking into several threads it seems that the PWM noise issue of the Multiplus 2 somehow was adressed by Victron and the newest models have some not documented changes.

The capacitor modification is not the best possible way to do it as it may harm the pwm circuit as this is not designed to handle capacitive loads. Without knowing the PCB circuit it is guessing if the capacitor may damage over time or not.

@Guy Stewart is it possible to share what Victron changed ? Or maybe publish the pwm circuit that a proper modification can be developed with diode, coile and capacitor.

grobalt asked

0 Answers

Cerbo GX Factory Reset


How do I reset my Cerbo GX to factory settings/firmware?

I am considering playing with it over SSH but want to know I have a way to revert whatever mess I might create.


Eran Rundstein asked
Stefanie commented ·

4 Answers

MQTT local & via MQTT broker

A little tutorial to connect to either the MQTT broker in the cloud (accessible from anywhere) or your local MQTT broker on the system itself via local LAN with MQTT Explorer.


The system has a build in MQTT broker to which you can connect. In the console you will need to enable this MQTT broker to publish on local LAN.

Next find out the local IP address your system is using. You should find this under settings/Ethernet in the console.

Configure MQTT Explorer:
There is no certificate required, no username, no password.



You should see something like this:


Cloud MQTT broker

Your system publishes data to the cloud, which in turn is used for your web and mobile app.
There are several MQTT cloud brokers. There are maximum 128 systems connected to a cloud broker. The DNS address of the cloud broker will be something like: mqtt86.victronenergy.com

But how do you find out the broker you should use for your installation?
This can be calculated based on the portal ID you have.

Your portal ID can be found on either:

  • The console under settings/VRM Online Portal
  • The web application under settings/general

You can use this little python program to find your cloud broker DNS name: (replace the VRM_portal_ID with your ID) (it uses the ASCII code of each character, adds them together and divides by 128)

This should return something like the above example.

VRM_portal_ID = "d41243b50dfc"

def _get_vrm_broker_url(_system_id):
    sum = 0
    for character in _system_id.lower().strip():
        sum += ord(character)
    broker_index = sum % 128
    return "mqtt{}.victronenergy.com".format(broker_index)


Now you know the MQTT broker address you can configure the MQTT Explorer.

You will need the following:

  • Username & password of your web portal
  • a certificate


You will need to add a valid certificate which you can find on this GitHub repository: https://github.com/victronenergy/dbus-mqtt

You can simply download the ZIP and extract the file:


Under the advanced section click on certificates


Add the certificate to the SERVER CERTIFICATE (CA) by clicking on the button.


Now connect and you should see the following:


Hope this helps.

horemansp asked
taylortops commented ·

2 Answers

Documentation how to use log in dbus service

Is there any documentation how to use logging in dbus services, so that the log goes to /var/log/dbus-sofarsolar ?

I tried to use /service/dbus-sofarsolar/log/run with the folloing contents:

#! /bin/sh
exec 2>&1
exec multilog t s25000 n4 /var/log/dbus-sofarsolar

I tried:


import logging
sys.path.insert(1, os.path.join(os.path.dirname(__file__), './ext/velib_python'))
from logger import setup_logging

but nothing will be logged in the /var/log/dbus-sofarsolar directory

What is the correct way to use it?

carsten2 asked
bathnm answered ·

7 Answers

Top Contributors - Community Supporters

Matthias Lange - DE avatar image Matthias Lange - DE 230 Answers & Comments
Alexandra avatar image Alexandra 227 Answers & Comments
kevgermany avatar image kevgermany 159 Answers & Comments
maha avatar image maha 146 Answers & Comments
netrange avatar image netrange 138 Answers & Comments
nickdb avatar image nickdb 113 Answers & Comments
Kevin Windrem avatar image Kevin Windrem 76 Answers & Comments