question

hobohome avatar image
hobohome asked

Open Victron Data - What would you like to see?

I was very pleased to see the comment made by @mvader when launching this MODs space about a more open Victron - this is really great news.

I think that one of the best ways to demonstrate this intent and to encourage the development of great mods, is for Victron to make more data available to people who are developing intergrations and external solutions. By data I mean real time data about what is happening internally in their equipment.

The inclusion of an MQTT broker in the Venus OS is a fantastic step in the right direction. For those who have not been exposed to MQTT, it is a very lightweight protocol that has been around for a long time and has recently been adopted as the protocol of choice for many home automation hubs and systems - and it is now built into the VenusOS devices!

Venus OS includes a Python script that creates a bridge between the Victron D-Bus and MQTT - this means that for the first time tons of real-time data points are now available to external systems. But not everything we need is made available.

The purpose of this post is to invite Moders to add to a wish list of data we would like to see published via MQTT. If the powers at Victron can see value in making this data available, they may make the necessary changes to make this happen.


To get us started, here is my wish list...

  • The controller mode (BULK, Adsorb, Float, EQL etc) (I have found a work-around for this, but it would be good to have the real data published)
  • The target voltage (if the controller is in constant voltage mode - what is the target voltage?)
  • The target current (if the controller is in constant current mode - what is the target current?)
  • Battery Temperature being used by the controller in calculating temperature compensation.
  • The duty cycle used for PWM when the controller is not in MPPT mode. This would be a great starting point for external load-dump calculations for making use of excess solar energy.
  • Number of days since the last equalise cycle - this could be used to trigger a reminder.
  • The heat-sync temperatures - this could trigger a warning message before it gets critical.

I'm sure I'll think of other things in time and I hope others will also add their wish list.

Venus OSVenus GX - VGXMQTTAGM Battery
12 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

ben avatar image ben ♦ commented ·

Good idea.

  • Quattro has some kind of temperature probe inside that it uses to make decisions about cooling fan, derating, overload shutdown, etc. I would like to be able to see this temperature.
  • It would be nice to be able to see what is left on the absorption timer, when applicable.
  • There are many values that I would like to be writeable rather than just information-only.
  • It would be nice if D-Bus and MQTT values were entirely 1:1, so that there would be no difference in using either protocol.

By the way, I think "controller mode" is already available on MQTT, with no workaround required?

0 Likes 0 ·
hobohome avatar image hobohome ben ♦ commented ·

The absorption time remaining is a really good one! That would be so useful for external systems to make intelligent decisions.


I have spent a lot of time looking for the controller mode in MQTT and I have not found it. When the system is in DVCC mode, I have found a topic that show that, but not which mode the controller has been instructed to be in. I find this odd as the VRM portal graphs this info. If anyone knows what the topic is for this, I would really like to know.

0 Likes 0 ·
ben avatar image ben ♦ hobohome commented ·

Can you not see, for example, a path like:

/solarcharger/258/State

Both my MPPT and inverter have this path available. However, maybe I am misunderstanding what you are looking for.


0 Likes 0 ·
hobohome avatar image hobohome ben ♦ commented ·

Yep, I can see that topic - but the value returned is "252" no matter what state the controller is in.

I can't find any documentation on this - but I'm guessing that it is a bit-mapped value '11111100' - I have no clue as to what those bits represent. If anyone knows where this is documented, please let me know.

0 Likes 0 ·
ben avatar image ben ♦ hobohome commented ·

For my devices, that path resolves to a regular, non-bitmapped integer that maps into the table of values documented on the D-Bus paths page. Most of those integers are values between 0 and 9.

So, it may be that something is wrong (or your device is unsupported) since you are seeing a weird value.

0 Likes 0 ·
hobohome avatar image hobohome ben ♦ commented ·

The value 252 in that table says "External control" - This of course means DVCC is controlling the device.

That of course leaves you with no idea what state the device is in (it clearly knows as its LED shows the state).

Given that the d-bus path "/MppOperationMode" is not passed to MQTT (at least on my system), this seems like an intended omission.

0 Likes 0 ·
ben avatar image ben ♦ hobohome commented ·

Sorry, I didn't realize you were specifically talking about DVCC. I don't use that mode (yet).

0 Likes 0 ·
mvader (Victron Energy) avatar image mvader (Victron Energy) ♦♦ ben ♦ commented ·

Hi. when being externally controlled (by DVCC for example), look at the state of the controlling device.

So, the inverter/charger for example.


Or, when its a canbus battery like a BYD, be aware that there is no more state. There is only target voltage and target current, coming from the battery, and its translation per device (mppt, multi, etc)

0 Likes 0 ·
hobohome avatar image hobohome mvader (Victron Energy) ♦♦ commented ·


So when I look at /system/0/SystemState/State (the inverter charger) I see a state of "9".

The table at https://github.com/victronenergy/venus/wiki/dbus tells me that a "9" = Inverting - which is of course what the inverter charger is doing.

I am actually looking for the state of the MPPTs that are being controlled by that inverter charger.

Am I looking in the wrong place?


Also - /system/0/SystemType = "Hub-1" is that the old name for DVCC?

(BTW - my batteries are dumb flooded L.A.)

0 Likes 0 ·
mvader (Victron Energy) avatar image mvader (Victron Energy) ♦♦ hobohome commented ·

> Given that the d-bus path "/MppOperationMode" is not passed to MQTT (at least on my system), this seems like an intended omission.


Sounds like you’re seeing conspiracies? ;o)


There are no ommissions between dbus and mqtt. Would be pointless by the way, since there is no way to stop someone from interfacing directly to dbus.

See dbus-mqtt bridge code. Its really short

0 Likes 0 ·
mvader (Victron Energy) avatar image mvader (Victron Energy) ♦♦ mvader (Victron Energy) ♦♦ commented ·

MppOperarion mode is new, you probably need a v2.30 beta version to see it

1 Like 1 ·
Show more comments
1 Answer
basreflex avatar image
basreflex answered ·

the dutycycle of an MPPT or PWM solar charger does tell you the ratio of input and output voltage as they are of the synchronous type for best efficiency. as the Si solarcell MPP voltage is dependent on current and temperature, it is hard to derive an excess available power measure out of that. sofar only thin film panels of the CGIS mature have a stable MPP voltage, independent of solarisation, but there is still a temperature coefficient on that. you can check for example the Solar Frontiers panel data for that.

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Related Resources

Victron MQTT readme

Venus GX manual

Venus GX product page

Victron Venus OS Open Source intro page

Venus OS GitHub (please do not post to this)

Additional resources still need to be added for this topic