raspberrypi install venus packages

Izak Burger edited this page Oct 25, 2017 · 13 revisions


A subset of the Venus software is available for direct installation on Raspbian Wheezy, Jessie and Debian Jessie. This allows support for the following products:

  • Fronius Inverters (connecting via Ethernet or WiFi)
  • Quby AC Sensors
  • Redflow Zinc Bromide batteries
  • USB/Serial GPS
  • VEDirect MPPTs
  • BMV 700/702 battery monitors


These packages are available as is, and are not officially supported by Victron. For any questions, see the bottom of the page.

Further more, be aware that it’s also possible to run a complete Venus image on a raspberry pi: raspberrypi install Venus image.


These steps document the process for Rasbian Jessie. The process for Wheezy or Debian (armhf) is similar.

Preliminary preparation

All the steps below assume that you are root. If not, you need to use sudo to become root:

sudo -i

First you have to install an add-on for apt so it can handle https urls:

apt-get update
apt-get install apt-transport-https

Then configure apt by adding a stub in sources.list.d.

echo "deb https://updates.victronenergy.com/feeds/venus/release/packages/raspbian-jessie jessie main" > /etc/apt/sources.list.d/victronenergy.list
apt-get update

Installing and configuring vrmlogger

/data is used for permanent storage in venus (which is kept even after completely reflashing the device.) Since there is no equivalent for that in Debian, just create normal directories:

mkdir -p /data/{conf,db}

Install vrmlogger and its dependencies:

apt-get install vrmlogger

Configuring HTTPS logging

By default vrmlogger is configured to use https for logging data to VRM. This will fail unless you install the CA certificate required to verify the VRM site. Two options are available to resolve this.

Disable https logging

Using https is preferred but you can disable the use of https with this command.

dbus -y com.victronenergy.settings /Settings/Vrmlogger/HttpsEnabled SetValue 0

Add the required CA certificate

All steps to be performed as the root user.

Copy the content below into a file named /usr/local/share/ca-certificates/ccgx-ca.crt:


Then run:


Configure vedirect-interface (optional)

If you have equipment that use the VE.Direct serial protocol -- such as a BMV or MPPT charge controller -- you need to configure an instance of vedirect_interface for each one.

First, do a listing of the files in /dev/serial/by-id, eg:

# ls -l /dev/serial/by-id/
total 0
lrwxrwxrwx 1 root root 13 Jul 14 14:36 usb-VictronEnergy_BV_VE_Direct_cable_VE9MRFG-if00-port0 -> ../../ttyUSB0

Next you have make a copy of the vedirect skeleton service and customise it for your device.

mkdir /data/services
cp -r /opt/victronenergy/vedirect-interface/service /data/services/vedirect00
rm /data/services/vedirect00/down
rm /data/services/vedirect00/log/down

Edit /data/services/vedirect00/run and replace the content with this, also replacing ttyUSB0 with the relevant port:

exec 2>&1
exec /opt/victronenergy/vedirect-interface/vedirect-dbus -v --log-before 25 --log-after 25 -t30 --banner -s /dev/ttyUSB0

Next edit /data/services/vedirect00/log/run and change the log directory to match our service name (vedirect00). It will look something like this:

exec 2>&1
exec multilog t s99999 n8 /var/log/vedirect00

Now link the service into /etc/service/:

ln -s /data/services/vedirect00 /etc/service/vedirect00

This should automatically start it up. Check that it came up:

svstat /etc/service/vedirect00

Do the same for the logging process:

svstat /etc/service/vedirect00/log

If you have more than one vedirect device, repeat the process using different service names, such as vedirect01 and so forth.

Configure vebus-interface (optional)

This is the data producer that reads from the vebus, using the mk3-usb. Note that the mk3-usb is relatively new, it started shipping in 2016.

Its predecessor, the mk2-usb is not supported. A firmware update is required for the mk2, and the mk2-usb lacks some required features to successfully complete a firmware update.

apt-get install libevent-pthreads-2.0-5 libevent-2.0-5
dpkg -i vebus-interface_2.30-r1.0_armhf.deb

Once again, do a listing of the files in /dev/serial/by-id, eg:

# ls -l /dev/serial/by-id/
total 0
lrwxrwxrwx 1 root root 13 Jul 14 15:07 usb-VICTRONENERGY_MK2USB_COM_Interface_FTWADOJM-if00-port0 -> ../../ttyUSB1

Then edit /etc/service/vebus-interface/run and replace TTY_DEV with the symlink (no readlink required here):

exec 2>&1
exec /opt/victronenergy/vebus-interface/start-vebus.sh /dev/ttyUSB1

Bring it up and check that it came up:

rm /etc/service/vebus-interface/down
svc -u /etc/service/vebus-interface
svstat /etc/service/vebus-interface
rm /etc/service/vebus-interface/log/down
svc -u /etc/service/vebus-interface/log
svstat /etc/service/vebus-interface/log

Register on the VRM site

Finally, register on the VRM site, and then Add a site. The VRM Portal ID for your Raspberry Pi is the hardware address of the ethernet interface, which you may obtain by running this command:

ip link ls dev eth0 | grep ether

The address following after link/ether, with the colons stripped, is the VRM Portal ID. This will be a 12-digit hexadecimal number that looks like this b827eb010101.

Note: If you are running later versions of Raspbian, the network interface might not be called eth0. If you type ifconfig and none of the devices are named eth0, you will have to modify the python code a little to make it work. Edit /opt/victronenergy/vrmlogger/ext/velib_python/ve_utils.py and look for this line:

info = fcntl.ioctl(s.fileno(), 0x8927,  struct.pack('256s', 'eth0'[:15]))

Change eth0 to reflect the name of your ethernet interface.

Further steps and debugging

Install dbus-cli

For ease of use, and because this is what the CCGX documentation recommends, you may want to install dbus-cli. This will hopefully be incorporated into the main repo at some stage, but in the interim I made a binary package to make this simple.

apt-get install python-lxml libxslt1.1
wget https://github.com/izak/dbus-tools/releases/download/v0.1/dbus-cli_0.1_all.deb
dpkg -i dbus-cli_0.1_all.deb

This should allow you to communicate with dbus and query the settings. It is also useful for testing that things are working. For example, to list all Victron Energy services:

dbus -y | grep com.victronenergy

For more details on dbus, refer to the CCGX documentation.

Hardware detection order

The instructions above assume that hardware will always be detected in the same order. In our experience this is usually the case, but if you experience different behaviour, please contact us on the mailing list.


If you have any trouble, contact me, or send email to the venus mailing list.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.