Join GitHub today
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.
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.
- vebus (inverter/charger)
- inverter (VE.Direct inverters)
- solar chargers
- ac chargers
- grid meter
- tank levels
- (diesel) generator
/ProductName /CustomName /Mgmt/Connection /Mgmt/ProcessName /Mgmt/ProcessVersion /Connected /DeviceInstance /ProductId /Serial /HardwareVersion /FirmwareVersion
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. https://github.com/victronenergy/venus-private/issues/21 /Ac/Consumption/L1/Power <- DEPRECATED. Total of /ConsumptionOnInput & /ConsumptionOnOutput /Ac/Consumption/L2/Power /Ac/Consumption/L3/Power /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/Genset/ProductId /Ac/Genset/DeviceType /Ac/Grid/* <- Same subpaths as /Ac/Consumption, and two more: /Ac/Grid/ProductId /Ac/Grid/DeviceType /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/ConsumedAmphours /Dc/Battery/Current /Dc/Battery/Power /Dc/Battery/Soc /Dc/Battery/State /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/Battery/Voltage /Dc/Charger/Power /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:
/Buzzer/State /Relay/0/State /Relay/1/State
Paths related to the Settings -> System setup -> Battery selection menu:
/ActiveBatteryService /AutoSelectedBatteryMeasurement /AutoSelectedBatteryService /AvailableBatteryMeasurements /AvailableBatteryServices
Indicators of various automatic functions such as enhancing or syncing the VE.Bus SOC. See user manual for more info.
/Control/ExtraBatteryCurrent /Control/SolarChargeCurrent /Control/SolarChargeVoltage /Control/VebusSoc
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.
com.victronenergy.hub4 /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): /AcPowerSetpoint /MaxChargePercentage /MaxChargePower /MaxDischargePercentage /MaxDischargePower
See localsettings for source.
Below list only contains the ESS related settings. There are many more, log into a device to see them.
com.victronenergy.settings /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
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
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)
com.victronenergy.vebus /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 below. /Ac/ActiveIn/ActiveInput <- Active input: 0 = ACin-1, 1 = ACin-2, 240 is none (inverting). Note open issue: https://github.com/victronenergy/venus-private/issues/21 /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 /Ac/In/n/CurrentLimitIsAdjustable LEDs: 0 = Off, 1 = On, 2 = Blinking, 3 = Blinking inverted /Leds/Mains /Leds/Bulk /Leds/Absorption /Leds/Float /Leds/Inverter /Leds/Overload /Leds/LowBattery /Leds/Temperature 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, ccgx/specs/mk2-dbus.
Inverter (vedirect inverters)
com.victronenergy.inverter /Alarms/LowVoltage <- 0=No Alarm; 1=Warning; 2=Alarm /Alarms/HighVoltage /Alarms/LowTemperature /Alarms/HighTemperature /Alarms/Overload /Alarms/Ripple /Alarms/LowVoltageAcOut /Alarms/HighVoltageAcOut /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
com.victronenergy.battery /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. /Settings/HasTemperature /Settings/HasStarterVoltage /Settings/HasMidVoltage /Relay/0/State /History/DeepestDischarge /History/LastDischarge /History/AverageDischarge /History/ChargeCycles /History/FullDischarges /History/TotalAhDrawn /History/MinimumVoltage /History/MaximumVoltage /History/TimeSinceLastFullCharge /History/AutomaticSyncs /History/LowVoltageAlarms /History/HighVoltageAlarms /History/LowStarterVoltageAlarms /History/HighStarterVoltageAlarms /History/MinimumStarterVoltage /History/MaximumStarterVoltage /History/DischargedEnergy /History/ChargedEnergy Lynx BMS & Lynx Ion Only: /State /ErrorCode /SystemSwitch /Balancing /System/NrOfBatteries /System/BatteriesParallel /System/BatteriesSeries /System/NrOfCellsPerBattery /System/MinCellVoltage /System/MaxCellVoltage /Diagnostics/ShutDownsDueError /Diagnostics/LastErrors/1/Error /Diagnostics/LastErrors/2/Error /Diagnostics/LastErrors/3/Error /Diagnostics/LastErrors/4/Error /Io/AllowToCharge /Io/AllowToDischarge /Io/ExternalRelay /History/MinimumCellVoltage /History/MaximumCellVoltage
com.victronenergy.solarcharger /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 https://www.victronenergy.com/live/mppt-error-codes /State <- 0=Off 2=Fault 3=Bulk 4=Absorption 5=Float 6=Storage 7=Equalize 252=Hub-1 /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)
com.victronenergy.pvinverter /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
com.victronenergy.charger /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 <-
com.victronenergy.grid /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 /DeviceType /ErrorCode
com.victronenergy.temperature /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
com.victronenergy.tank /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
com.victronenergy.genset /Ac/L1/Current /Ac/L1/Frequency /Ac/L1/Power /Ac/L1/Voltage /Ac/L2/* /Ac/L3/* /NrOfPhases <- 1, 2 or 3 /AutoStart <- 0=Disabled; 1=Enabled /ErrorCode <- 166 error codes, originally defined by Fischer Panda /ModuleId /Start /StarterVoltage <- Starter battery voltage /StatusCode <- 0=Standby; 1=Startup 1; ...; 7=Startup7; 8=Running; 9=Stopping; 10=Error /Engine/CoolantTemperature /Engine/ExaustTemperature /Engine/Load <- 0 to 100% /Engine/OperatingHours <- in seconds /Engine/Speed <- rpm /Engine/WindingTemperature