bbrantley edited this page Jan 20, 2019 · 78 revisions

A list of available D-Bus paths published by the various services. This list is probably not complete, in case you miss something you need, welcome to figure it out (ie. login to a device, and run dbus -y ), and then add it here.

And, besides dbus -y and dbus-spy, see also the Modbus-TCP excelsheet, available on our website. It also contains lots of details, and the gui qml pages.


  • not all paths are available for each type of device. For example a PV Inverter: in case the data on the D-Bus comes from an ethernet connected Fronius, there will be a Fronius device type on the D-Bus. But in case the PV Inverter is actually a Carlo Gavazzi energy meter configured to be measuring a PV Inverter, there is no Fronius Status code (of course).
  • SI units are used for all measurements, with these exceptions: Energy is in kWh and temperature is in degrees Celsius.

Disclaimer on the stability of path naming & structure: we give no warranty about these paths and function to be the same for ever. Of course we will not change them often and/or without good reasons.


Generic paths


See Venus D-Bus Interface and Generic paths specification and als dbus-api for more details.


The system service is published by the dbus-systemcalc-py process. It takes the various readings like SOC, Battery voltages and other things from other processes, and then republishes these readings on the D-Bus. The System service is also where the System Overview pages in the GUI, and the VRM Dashboard get their data.


AC related paths:

/Ac/ActiveIn/Source             <- The active AC-In source of the multi.
                                   0:not available, 1:grid, 2:genset,
                                   3:shore, 240: inverting/island mode.
                                   This value is determined by matching
                                   the active input on the multi with the
                                   AC Input types as configured in the 
                                   System setup menu. Some notes:
                                   1) 0:not available means a config
                                      error by the user: he configured
                                      that input as not in use while it is.
                                   2) 240: inverting/island mode will be added
                                      in version v2.12~26.
/Ac/Consumption/L1/Power        <- DEPRECATED. Total of /ConsumptionOnInput & 
/Ac/Consumption/NumberOfPhases  <- Either 1 (single phase), 2 (split-phase) or
                                   3 (three-phase)
/Ac/ConsumptionOnInput/*        <- Same subpaths as /Ac/Consumption
/Ac/ConsumptionOnOutput/*       <- Same subpaths as /Ac/Consumption
/Ac/Genset/*                    <- Same subpaths as /Ac/Consumption, and two more:
/Ac/Grid/*                      <- Same subpaths as /Ac/Consumption, and two more:
/Ac/PvOnGenset/*                <- Same subpaths as /Ac/Consumption
/Ac/PvOnGrid/*                  <- Same subpaths as /Ac/Consumption
/Ac/PvOnOutput/*                <- Same subpaths as /Ac/Consumption

DC & battery related paths:

/Dc/Battery/Alarms/CircuitBreakerTripped   <- Something special
/Dc/Battery/TimeToGo           <- in seconds, until battery SOC reaches "SOC relay/discharge floor" value.  Capped at 864000 (10 days) when battery is not discharging
/Dc/Pv/Current                 <- total output current of all
                                  connected solar chargers
/Dc/Pv/Power                   <- same, but then the power
/Dc/System/Power               <- see manual, has DC system
/Dc/Vebus/Current              <- charge/discharge current from
                                  the VE.Bus system
/Dc/Vebus/Power                <- same, but then the power

IO / hardware abstraction:


Paths related to the Settings -> System setup -> Battery selection menu:


Indicators of various automatic functions such as enhancing or syncing the VE.Bus SOC. See user manual for more info.


Aggregated System State, used to display and record a more comprehensive view of what the system is doing. This mostly mirrors VE.Bus states, but adds more. It also breaks out separate conditions as flags.

/SystemState/State                 ->   0: Off
                                   ->   1: Low power
                                   ->   2: VE.Bus Fault condition
                                   ->   3: Bulk charging
                                   ->   4: Absorption charging
                                   ->   5: Float charging
                                   ->   6: Storage mode
                                   ->   7: Equalisation charging
                                   ->   8: Passthru
                                   ->   9: Inverting
                                   ->  10: Assisting
                                   -> 256: Discharging
                                   -> 257: Sustain

System State flags:

/SystemState/BatteryLife           -> BatteryLife is active (in Settings->ESS->Mode)
/SystemState/ChargeDisabled        -> BMS has disabled charging
/SystemState/DischargeDisabled     -> BMS has disabled discharge
/SystemState/LowSoc                -> Battery at minimum configured SoC (Settings->ESS->Actual state of charge limit)
/SystemState/SlowCharge            -> Slow-charging from grid (if battery has been left discharged for too long).
/SystemState/UserChargeLimited     -> User configured a charge limit of 0
/SystemState/UserDischargeLimited  -> User configured a maximum inverter power of 0


/SystemType                       -> Text string indicating hub-type corresponding with /Hub
/Hub                              -> 1: Hub-1, 2: Hub-2, 3: Hub-3, 4: ESS
/VebusService                     -> Returns the service name of the vebus service
/PvInvertersProductIds            -> Returns a list of product ids for connected PV-inverters
/AutoSelectedBatteryMeasurement   -> The service used for battery voltage measurements and V-sense synchronisation.

ESS (formerly called Hub-4)

When writing functions that manipulate ESS, make sure to study the ESS manual and also the Advanced ESS manual which documents about mode 2 & 3.

And besides below list of operational paths, see also the ESS related paths in the settings.


/PvPowerLimiterActive      <- In the GUI this is visible as Fronius Zero-feed in active 
/State                     <-

Deprecated paths (use the same paths in .settings/Settings/CGWacs tree instead):


See localsettings for source.

Below list only contains the ESS related settings. There are many more, log into a device to see them.


/Settings/CGwacs/AcPowerSetPoint                  <- User setting: Grid set-point
/Settings/CGwacs/BatteryLife/DischargedSoc        <- Deprecated
/Settings/CGwacs/BatteryLife/DischargedTime       <- Internal
/Settings/CGwacs/BatteryLife/Flags                <- Internal
/Settings/CGwacs/BatteryLife/MinimumSocLimit      <- User setting
/Settings/CGwacs/BatteryLife/SocLimit             <- Result of the BatteryLife algorithm
/Settings/CGwacs/BatteryLife/State                <- ESS state (see below)
/Settings/CGwacs/Hub4Mode                         <- ESS mode (see below)
/Settings/CGwacs/MaxChargePercentage              <- Deprecated
/Settings/CGwacs/MaxChargePower                   <- User setting
/Settings/CGwacs/MaxDischargePercentage           <- Deprecated
/Settings/CGwacs/MaxDischargePower                <- Max inverter power in the GUI
/Settings/CGwacs/OvervoltageFeedIn                <- User setting: Feedback solar charger excess power
/Settings/CGwacs/PreventFeedback                  <- User setting: Fronius Zero Feed-in
/Settings/CGwacs/RunWithoutGridMeter              <- User setting: Control without grid meter

ESS mode:

1: Optimized mode or 'keep batteries charged' and phase compensation enabled 
2: Optimized mode or 'keep batteries charged' and phase compensation disabled
3: External control

ESS state:

0: Used if in External control.
Optimized mode with BatteryLife:
1: Value set by the GUI when BatteryLife is enabled. Hub4Control uses it to find the right BatteryLife state (values 2-7) based on system state
2: Self consumption
3: Self consumption, SoC exceeds 85%
4: Self consumption, SoC at 100%
5: SoC below BatteryLife dynamic SoC limit
6: SoC has been below SoC limit for more than 24 hours. Charging with battery with 5amps
7: Multi/Quattro is in sustain
Keep batteries charged mode:
9: 'Keep batteries charged' mode enabled
Optimized mode without BatteryLife:
10: Self consumption
11: Self consumption, SoC is below minimum SoC.

VE.Bus systems (Multis, Quattros, Inverters)

/Ac/ActiveIn/Connected                  <- 0 when inverting, 1 when connected to
                                           an AC in. Path is not available when
                                           VE.Bus is connected via VE.Can. And
                                           also it will be dropped, see issue 21
/Ac/ActiveIn/ActiveInput                <- Active input: 0 = ACin-1, 1 = ACin-2,
                                           240 is none (inverting).
                                           Note open issue:
/Ac/ActiveIn/CurrentLimit               <- See also GetMin and GetMax
/Ac/ActiveIn/CurrentLimitIsAdjustable   <- 0 when disabled in VEConfigure, or when
                                           there is a VE.Bus BMS or DMC, etc.

/Mode                                   <- Position of the switch.
                                           1=Charger Only;2=Inverter Only;3=On;4=Off
                                           Make sure to read CCGX manual, and limitations
                                           of this switch, for example when using a VE.Bus BMS.

Only available on VE.Bus 415 or later:
/Ac/In/n/CurrentLimit                   <- R/W for input current limit.
/Ac/In/n/CurrentLimit GetMin            <- not implemented!)
/Ac/In/n/CurrentLimit GetMax

LEDs: 0 = Off, 1 = On, 2 = Blinking, 3 = Blinking inverted

A full list of commonly used operational paths is available as
the modbusexcelsheet. See whitepaper section on our website.

More VE.Bus D-Bus documentation about ESS control and various
other more complex features is on the Victron internal wiki,

Inverter (vedirect inverters)

/Alarms/LowVoltage          <- 0=No Alarm; 1=Warning; 2=Alarm

/Dc/0/Voltage             <- Battery voltage
/Ac/Out/L1/V              <- AC Output voltage
/Ac/Out/L1/I              <- AC Output current
/Ac/Out/L1/P              <- Not used on vedirect inverters 
/Mode                     <- Switch position: 2=Inverter on; 4=Off; 5=Low Power/ECO
/State                    <- 0=Off; 1=Low Power; 2=Fault; 9=Inverting
/Relay/0/State            <- Not used on vedirect inverters



/Dc/0/Voltage               <- V DC
/Dc/0/Current               <- A DC positive when charged, negative when discharged
/Dc/0/Power                 <- W positive when charged, negative when discharged
/Dc/0/Temperature           <- °C Battery temperature (BMV-702 configured to read
                               temperature only)
/Dc/0/MidVoltage            <- V DC Mid voltage (BMV-702 configured to read midpoint
                               voltage only)
/Dc/0/MidVoltageDeviation   <- Percentage deviation

/Dc/1/Voltage               <- V DC - Starter voltage (BMV-702 configured to read starter
                               battery voltage only)

/ConsumedAmphours           <- Ah (BMV, Lynx BMS).
/Soc                        <- 0 to 100 % (BMV, BYD, Lynx BMS)
/TimeToGo                   <- Time to in seconds (BMV "SOC relay/discharge floor" value, Lynx BMS).  Max value 864,000 when battery is not discharging.

DVCC & BOL related paths. These are published by batteries.
/Info/MaxChargeCurrent      <- Charge Current Limit aka CCL 
                               (BYD, Lynx BMS and FreedomWon)
/Info/MaxDischargeCurrent   <- Discharge Current Limit aka DCL
                               (BYD, Lynx BMS and FreedomWon)
/Info/MaxChargeVoltage      <- Maximum voltage to charge to
                               (BYD, Lynx BMS and FreedomWon)
/Info/BatteryLowVoltage     <- Note that Low Voltage is ignored by the system
                               (BYD, Lynx BMS and FreedomWon)

For all alarms: 0=OK; 1=Warning; 2=Alarm
/Alarms/Alarm              <- Generic alarm condition (deprecated; ignored by GUI & VRM)
/Alarms/LowVoltage         <- BMV, BYD, Lynx BMS, FreedomWon
/Alarms/HighVoltage        <- BMV, BYD, Lynx BMS, FreedomWon
/Alarms/LowStarterVoltage  <- BMV-702 configured to read starter battery voltage only
/Alarms/HighStarterVoltage <- BMV-702 configured to read starter battery voltage only
/Alarms/LowSoc             <- BMV, Lynx BMS
/Alarms/HighChargeCurrent  <- BYD, FreedomWon
/Alarms/HighDischargeCurrent <- BYD, FreedomWon
/Alarms/CellImbalance      <- BYD, FreedomWon
/Alarms/InternalFailure    <- BYD, FreedomWon
/Alarms/HighChargeTemperature <- BYD, FreedomWon
/Alarms/LowChargeTemperature  <- BYD, FreedomWon

/Alarms/LowTemperature     <- BMV, Lynx BMS, BYD, FreedomWon
/Alarms/HighTemperature    <- BMV, Lynx BMS, BYD, FreedomWon
/Alarms/MidVoltage         <- Midpoint deviation, BMV only when configured to monitor
                              the midpoint.




Lynx BMS & Lynx Ion Only:

Solar chargers


/Dc/0/Voltage     <- Current battery voltage
/Dc/0/Current     <- Current charging current
/Pv/V             <- PV array voltage
/Pv/I             <- PV current (= /Yield/Power divided by /Pv/V)
/Yield/Power      <- Power produced
/Yield/User       <- Total Kwh produced since last user reset
/Yield/System     <- Total Kwh produced since last firmware update
/Load/State       <- Whether the load is on or off
/Load/I           <- Current from the load output
/ErrorCode        <- 0=No error
                     1=Battery temperature too high
                     2=Battery voltage too high
                     3=Battery temperature sensor miswired (+)
                     4=Battery temperature sensor miswired (-)
                     5=Battery temperature sensor disconnected
                     6=Battery voltage sense miswired (+)
                     7=Battery voltage sense miswired (-)
                     8=Battery voltage sense disconnected
                     9=Battery voltage wire losses too high
                     17=Charger temperature too high
                     18=Charger over-current
                     19=Charger current polarity reversed
                     20=Bulk time limit reached
                     22=Charger temperature sensor miswired
                     23=Charger temperature sensor disconnected
                     34=Input current too high
/State            <- 0=Off
/History          <- Contains values about the last month's history
                     (Only for VE.Direct solarchargers)
/Mode             <- 1=On; 4=Off
                     Writeable for both VE.Direct & VE.Can solar chargers
                     BUT: for VE.Can solar chargers it doesn't seem to work
                     (mva 2018-02-24)

PV Inverters


/Ac/Energy/Forward     <- kWh  - Total produced energy over all phases
/Ac/Power              <- W    - Total power of all phases, preferably real power
/Ac/L1/Current         <- A AC
/Ac/L1/Energy/Forward  <- kWh
/Ac/L1/Power           <- W
/Ac/L1/Voltage         <- V AC
/Ac/L2/*               <- same as L1
/Ac/L3/*               <- same as L1

/Ac/Current            <- A AC - Deprecated
/Ac/Voltage            <- V AC - Deprecated

/Ac/MaxPower           <- Max rated power (in Watts) of the inverter
/Ac/PowerLimit         <- Used by the Fronius Zero-feedin feature, see ESS manual.
                          Path must be invalid or non-existent for PV Inverters
                          that do not implement Zero Feed-in power control.

/ErrorCode             <- 0=No Error
/FroniusDeviceType     <- Fronius specific product id list
/Position              <- 0=AC input 1; 1=AC output; 2=AC input 2
/StatusCode            <- 0=Startup 0; 1=Startup 1; 2=Startup 2; 3=Startup
                          3; 4=Startup 4; 5=Startup 5; 6=Startup 6; 7=Running;
                          8=Standby; 9=Boot loading; 10=Error

AC chargers


/Ac/In/L1/I            <- A AC
/Ac/In/L1/P            <- W
/Ac/In/CurrentLimit    <- A AC

/NrOfOutputs           <- The actual number of outputs.
/Dc/0/Voltage          <- V DC
/Dc/0/Current          <- A DC
/Dc/0/Temperature      <- 
/Dc/1/...              <- Same as /Dc/0/...
/Dc/2/...              <- Same as /Dc/0/...

/State                 <-
/Mode                  <-
/ErrorCode             <-
/Relay/0/State         <-
/Alarms/LowVoltage     <-
/Alarms/HighVoltage    <-

Grid meter


/Ac/Energy/Forward     <- kWh  - bought energy (total of all phases)
/Ac/Energy/Reverse     <- kWh  - sold energy (total of all phases)
/Ac/Power              <- W    - total of all phases, real power

/Ac/Current            <- A AC - Deprecated
/Ac/Voltage            <- V AC - Deprecated

/Ac/L1/Current         <- A AC
/Ac/L1/Energy/Forward  <- kWh  - bought
/Ac/L1/Energy/Reverse  <- kWh  - sold
/Ac/L1/Power           <- W, real power
/Ac/L1/Voltage         <- V AC
/Ac/L2/*               <- same as L1
/Ac/L3/*               <- same as L1



/Temperature        degrees Celcius
/Status             0=Ok; 1=Disconnected; 2=Short circuited; 3=Reverse polarity; 4=Unknown
/Scale              <- normally not necessary! devices should be calibrated.
/Offset             <- normally not necessary! devices should be calibrated.
/TemperatureType    0=battery; 1=fridge; 2=generic

Tank levels


/Level              0 to 100%
/Remaining          m3
/Status             0=Ok; 1=Disconnected; 2=Short circuited; 3=Unknown
/Capacity           m3
/FluidType          0=Fuel; 1=Fresh water; 2=Waste water; 3=Live well; 4=Oil; 5=Black water (sewage)
/Standard           0=European; 1=USA

Note that the FluidType enumeration is kept in sync with NMEA2000 definitions.

Pulse meters and digital inputs




/NrOfPhases                 <- 1, 2 or 3

/AutoStart                  <- 0=Disabled; 1=Enabled
/ErrorCode                  <- 166 error codes, originally defined by Fischer Panda
/StarterVoltage             <- Starter battery voltage
/StatusCode                 <- 0=Standby; 1=Startup 1; ...; 7=Startup7; 8=Running;
                               9=Stopping; 10=Error

/Engine/Load                <- 0 to 100%
/Engine/OperatingHours      <- in seconds
/Engine/Speed               <- rpm
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.