the Smart Meter connection to the Victron controller via Modbus RTU (RS485) is only wisely in case you have a short Way between the Smart Meter and the Victron Controller.
In case you have a long way or different buildings the connection over TCP/IP is required.
To prevent to install a separate RS485 Bus Cable. (using structured cabling !)
EM24 -->RS485-->Modbus TCP Gateway---------TCP/IP---------------->CerboGX
Now the Question:
How can i add the Smart Meter Connection via Modbus TCP/IP to my Cerbo GX?
I've noticed the addition in DVCC the ability to limit the managed battery charge voltage to a value of my liking. I am very happy, that this is finally possible now.
Now, I would like to set this maximum charge voltage using Home Assistant.
Inside my Modbus TCP services, I have access to com.victronenergy.systems.
According to CCGX-Modbus-TCP Register-list.xlsx, the only writing-enabled registers com.victronenergy.systems are the CCGX-relay-states.
Is there any possibility set the Maximum Charge Voltage per Modbus TCP from Home Assistant? If yes, what is the register of this service?
With the new release of the Energy dashboard in Home Assistant, I've been trying to surface the Victron data into it.
But I'm using modbus TCP to get data from my installation (through the Venus GX).. and those sensors apparently don't have the state_class attribute defined for them (which is ok i guess, as modbus is a generic protocol) but i also can't add such in the modbus sensor configuration in HA.. so this does not work. Link https://www.home-assistant.io/more-info/statistics/
Is there any other way (than using modbus) to get information from Venus GX in a way it would be useful in the Energy dashboard from Home Assistant?
I'm trying to read register 800, Serial [char(6)] via Modbus. I'm not sure what this looks like, but I get "Serial: b'508c'" from the following code. Does this look right to you?
from pymodbus.constants import Defaults
from pymodbus.constants import Endian
from pymodbus.client.sync import ModbusTcpClient as ModbusClient
from pymodbus.payload import BinaryPayloadDecoder
Defaults.Timeout = 25
Defaults.Retries = 5
client = ModbusClient('10.186.47.212', port='502')
result = client.read_input_registers(800, 2)
decoder = BinaryPayloadDecoder.fromRegisters \
Serial = decoder.decode_string(size=6)
I am connecting via Modbus TCP to a local Venus GX.
Everything works fine except for the readout value of Register 790 - "User Yield"
The "Victron Connect" app shows the CORRECT values and the readout works as expected
2nd MPPT charger connected to VE.Direct 2 port. show different value.
According to the "CCGX-Modbus-TCP-register-list.xlsx"
|245||258||CCGX VE.Direct 2 port, Venus GX VE.Direct 1 port (ttyO2)|
|243||260||Venus GX VE.Direct 2 port (ttyO4)|
I compared the readout via QMod Master and here are the results .
the first charger shows the correct value via Modbus:
The 2nd one shows different values:
[image]According to the register list:
||10||0 to 6533.6
The readout value is at least 1 digit to short!
The value should have been ~ 72670 or so
This is not critical
but I was wondering if this is just a "small bug" in the
ModBus TCP mapping on the "Venus GX" ?
As far as I can tell, all the other values seem to give the correct values!
Can anyone confirm this behavior or am I wrong here?
in einem Schaltschrank wird eine Victron-Batterieüberwachung für die USV-Anlage verwendet. Diese soll verschiedene Daten über Modbus-TCP an die Steuerung im Schrank übergeben.
(Smart Shunt, Cebro GX, Touch GX und 4* Temperature Sensor Quattro, MultiPlus and GX Device)
Frage: Ist es möglich, die 4 Temperatureingänge vom Cebro GX über die Modbus-TCP Anbindung weiterzugeben?
In der Modbus-TCP Register List, finde ich nur die Auswertung für com.victronenergy.temperature, welche wohl nur einen Sensor liest?!
I have an installation of 12 BlueSolar chargers connected to 1 Cerbo GX via an actively powered USB-hub. Unfortunately, as I came to realize, the instance number of each one of them changes randomly when the modules do not generate power (usually at night) since I dump their power output onto a bank of power resistors through the battery output. My question is, will the Unit IDs of the solar chargers change as well when the modules lose power if there is no battery connected to them? In the end what I want is to be able to differentiate the PV power output of each module, so if the Unit ID number of each solar charger changes daily, I cannot address them via Modbus TCP. Is there a solution I am missing that does not involve using a battery? Would it be possible to connect a DC power supply to the battery output and dump the PV power through the load output to prevent the solar charger from disconnecting from the Cerbo GX, as well as the change of instance number and of Unit ID?
Looking forward to your enlightening answers,
I noticed that the Feed-in Limited active status turns to NO when grid is lost that almost made my house burn as the fronius could not limit the power and my batteries were already full, the batteries got overcharged !
Any other requirements needed ? Fronius Primo 3.16, Cerbo 2.70-17, Multiplus v282, modbus tcp OK.
I have been trying to replicate the information as displayed on VRM from the values available on Modbus, but have not been very successful. I have found a few posts/questions which touches on this, but I have not been able to succeed.
Use Case: These values will be captured in HA. By substracting the two values from one another I would like to regulate the PV generation to keep the "From Grid" value just above zero. The calculations in HA is the easy part, but getting the correct values to work with seems challenging.
1. Is it possible to recreate these values from VRM?
2. If so, could it be possible to assist with the registers/dbus paths used to achieve this.
Any assistance will be greatly appreciated.
Victron Multiplus II
Grid Meter ET112
AC-Coupled SMA Inverter on AC1
name: Inverter Current
i've set this 'sub-mode' in the past for 1 or 2 days just to verify that internal consumers (incl. genset starting) works and cause no overload conditions. My current undestanding is that that setting address 33 to 'Inverter Only' the systems works as if the grid is dead, but the grid (AC-IN) is physically connected and is alive - but ignored. Now i would like to run in that mode for a longer period (still the basic configuration is ESS) so from a MP point of view it looks like a long term grid outage - what are the implications when doing so ? Charging will continue through 2 MPPTs - daily charging is enough in summer times to compensate the nightly battery drain.
The GX Modbus-TCP Manual (https://www.victronenergy.com/live/ccgx:modbustcp_faq) keeps talking about an excel spread sheet, but I can't find it. The above manual also has a link for white papers that would include the spread sheet (https://www.victronenergy.com/support-and-downloads/technical-information), but it's not there either.
The GX Modbus-TCP Manual includes the following example: "The Modbus-TCP reply will contain 2302. Divide it by 10, as specified in cell E3, and then you have the voltage: 230.2 Volts AC."
Does anyone know where I can find this excel spread sheet? TIA...
The register spreadsheet does not seem to have a register number associated with Aux1 or Aux2 input on vebus unless I am missing something?
I have wired up a switch for testing but can not, for the life of me, figure out how to find it using modbus
Starting to regret my decision to go with a colour GX over a Cerbo but I am hoping I can still access the signal via the aux input on the master inverter.
I am just after some guideance on how to do this with modbus as there doesnt seem to be a register for it in the spreadsheet.
Incase there is a better way (I am assuming relay on GX is output only) I am attempting to read a ripple control unit to determine congestion and export under a special exporters contract I am setting up with my electricity retailer to get better rates than the generic spot price.
problem: gridmeter connect and disconnect randomly
modbus unit ID is not visible in menu:
problem in this video:
carlo gavazzi ET340.
3 x multiplus 2. (3 fase)
ESS with only ACin connected.
modbus unit ID is not showing.
1. To have electricity for as long as possible.
2. To use as much renewable energy as possible.
1. To have electricity for as long as possible.
- Load shedding / Unstable Grid
- Cloudy weather
Load shedding after 4am is the worst. Because State of Charge (SoC) is low and it might be cloudy or winter which means PV might only be available later. So SoC shouldn't be set too low in order to reach the first objective, but it can't be too high either in order to reach the second objective.
- High Loads during low SoC
My geyser has a 3000W element and the storage I use is a 7100W capacitor. When the geyser switches on at night then there is sometimes a voltage drop below a critical level and the system faults with a low battery alarm. Grid is then used.
One could set the minimum SoC to 40% and have the grid supply the remaining wattage. This helps, but what happens to the 40%?
2. To use as much renewable energy as possible.
All about how the load and inverter is going to being managed.
During about my first year I was not using ESS and would only switch over to the grid if the SoC was too low, sometimes I had to go fully back onto the grid because the geyser switched on. But ESS helps, although I want to use as little from the grid as possible.
It is mid day and enough power is stored. I would rather use the stored power than the grid power to make up the balance of what PV cannot provide. .
If somebody switches on the stove or toaster and other loads that makes the inverter want to use power from the grid then a/some/all controlled loads should be switched off so that power from the grid is used on the uncontrolled load.
Reference to modes:
Determine minimum SoC:
Using mode 3 to control the discharge.
Grid setpoint is on 30W, but grid is being used instead of stored energy.
What is required in order to maintain the minimum SoC and control the battery discharge at the same time?
Min SoC = controlled by software
Battery discharge setpoint = controlled by software
Grid Setpoint = maintains the min SoC / supplies what battery + PV can't / outside inverter spec
I'm running the GX software on a Pi and have Modbus TCP enabled. I consume values in Home Assistant and it all works very well. Nice graphs for the SmartSolar charger, automatic kick in of a mains charger then the battery is low (using z-wave switches) etc etc, really happy with it all.
But, I just can't find a register that mirrors the VA values from the GX console for the Smart Phoenix 3000/24, certainly not at the resolution that shows. Does the GX software round the values (they're usual zero on low loads when the GX is showing 7-10VA)?
Thanks in advance for any tips.
I have 2 of S/E SE5000 on 2 phase rural grid (180 degree phase). one SE5000 is connected to a Multiplus 2 with an 8Kw Zenaji battery, as UPS also. Solaredge recomended separating the linking in this configuration. (System working fine)
I have an Emoncms server that has data from an IoTaWatt monitor. I want to read the battery state off the CCGX, & have already enabled Sunspec on the 2 of SE5000 (currently both on ID 126). The CCGX sees both of the SE5000´s, & lists their network addresses. Modbus is enabled on the CCGX, as werll as Auto scan. No Modbus devices are listed, however. I need to get this working so I can get the battery status (& info from the SE5000´s too if possible: would love access to the Optimiser data for instance, but first the battery status!
Emoncms has this assistance:
but of course no data until the CCGX sees the Modbus devices (Emoncms is configured as recommended)
One issue I may find is from my reading, only one SE5000 can be accessed on dev 126.
1x Quattro 24/5000/120-2x100
2x SmartSolar MPPT Charger (150/85 rev2)
1x CCGX firmware v2.60
12x AGM batteries
12x PV panels
I want to capture temperature readings for the building where the equipment above is installed and since I already use Modbus to enable/disable the Quattro charger I looked for a suitable Modbus register to query. This would avoid having to get a separate sensor and could integrate with my existing scripts pretty easily.
The only obvious setting in the Modbus register list XLSX that returns anything is Modbus ID 246 Addr 61 ("Battery temperature") and since the value increases quickly by up to 7 when the batteries are being charged, I am guessing a temperature sensor is being heated by the Quattro charger which operates between 0030 and 0430 every night. There is no sensor or BMS on the batteries themselves so it is not related to the temperature of the batteries. For some reason the returned value takes much longer to drop down again once the charger is off.
The reading seems to give me what I want, so I think I am happy with it but it niggles that I don't know exactly where it comes from. Can anyone confirm that Modbus ID 246 Addr 61 is returning temperature from a sensor in the Quattro located above the charger? Or is it returning something completely different?
Can Modbus-TCP be accessed for the GX part of a Easy Solar II GX via the Ethernet port?
I refer to a comment from Daniël Boekel in an earlier post:
"generally: mode3 = external control,
mode2 = optimized, and you set the grid-setpoint and charge / discharge enable."
My questions is:
For Mode 2, can I chose between "optimized (with Battery Life)" and "optimized (without Battery life)"?
Thx a lot,
I have a system with 1 Solarege 3,5kW and Multiplus 2 with battery. All works well together. I read the solaredge PV data into the Victron VRM (Solaredge Register 811) with TCP Modbus like explained by Victron.
But now I want to install a second Solaredge Inverter (3 Phase). How can I get the second PV production value into my Victron sytem, either the sum of both, or each one?
Victron installation manual only offers to read out the device ID 126. Is it possible to add addtional pv production systems? I think this option will be interesting for many people.
Hi, I just switched on my installation of 2 Multiplus 3000s and a Venus GX and am now looking at scheduling power draw from the grid. I'm in the US and have a grid tied SMA inverter in parallel with the Multiplus. Since I can't set a grid code here I can't use ESS.
I'm able to handle turning on and off AC input with modbus but couldn't find a way to disable charging without using one of the relays which I'd prefer to avoid just to keep wiring nicer. It looks like there's no way to disable charging or set the DVCC limit to 0 over modbus without ESS, is that correct? Any workarounds?
Hello to all. We have an installation of two Freedom Won batteries connected in parallel as master and slave. Our SCADA system is connecting to a CCGX via Modbus, and we need to know whether both batteries are online. On the CCGX, the parameters "Battery modules" and "Installed capacity" are displaying correctly, but I cannot read these values via Modbus. See the screenshots below. "Minimum cell voltage" and "Maximum cell voltage" (Modbus 1290 and 1291) can be read, but both "Capacity" (309) and "System; number of batteries" (1286) give zeroes. Any suggestions?
this is kind of a simplified question of my previous post, after some investigations.
I have a 3-phase ESS with 3x Multiplus-II 5kVA, no loads connected, external control, pylontech battery set.I use it to store excess solar produe and do grid assist. Main grid is always connected and able to provide 20kVA total (3 phases). I use an ET-340 to measure net grid in/outflow and command the ESS via Modbus/TCP as needed.
Very simple installation - connected to my internal grid for grid assist only on AC-In. to say that again, nothing connected to AC out.
The system only worked for a few days (less than 30 days definitely). Now it is dead.
Here is the sequence of events:
- overload error on one inverter (L1) (how can that happen, with connected grid)
few days later,
- "BMS Internal Error Alarm: Alarm" (and batteries dont charge any more)
persistent, followed by
- Low Battery Alarm (no wonder, batteries are eventually depleted)
- VE.Bus Error: VE.Bus Error 8: Ground relay test failed
and since, the system is in error state, and not working.
Batteries eventually switched off, unpowering their hub (as it is run from the 48V), so now, no battery pack any more (but that can be seen as normal and to be solved separately)
When set to "on", the Multiplusses try to connect to the Grid, but give up immediately and show a blink code (one different than the two others) which is not explained in the victron app.
I assume that one or two of the Multiplus-II 5kVA devices are broken, but as my provider wants to be paid to check them i rather ask community here for your opinion :)
.. if i set the multiplus-II switch to "I" (charge only), they engage with the grid (you can hear the relay) but then one hums very loud and agressively.
.. if i set the multiplus-II switch to "II", they try to engage with the grid but switch off more or less immediately, i assume with that error 8, and they disturb the grid enough to kick the SMA inverter connected before them off the grid.
Here are 3 short video clips (sorry for the moving camera in video 2, i tried to capture the sound/humming better).
Video 1: Behavior when starting up as charger only: (waiting form mains, should be ok) https://www.dropbox.com/s/0c73jf0xul8nije/Video%2022.07.20%2C%2019%2046%2016.mov?dl=0
Video 2: Behavior/humming when connected as charger: (only #1 is humming) https://www.dropbox.com/s/20e3ebb3fbkg2fi/Video%2022.07.20%2C%2019%2046%2027.mov?dl=0
Video 3: Behavior when having tried to connect in switch setting "On"
Anyone able to diagnose this ?
Thanks for your assistance
Currently, I have a Multi, Venus and BMV, I am controlling the ACpowersetpoint with Modbus TCP. I am working with ESS mode 2. Is it necessary to write the power set point every minute? why?
Hi, I have a house with a 4kW GT system on FIT on phase A
I have added a 12kW array which I am planning to split over phase B and C.
I want to use a multiplus II as a smart inverter/charger from a lithium battery to store excess energy from any phase.
My supplier meter is net metering (non smart). So what I (think I) need is my own net metering meter which talks to the Multiplus and tells it to charge or discharge the battery to keep the import/export at zero. However this will only be pulling off one phase. This is why I need the external meter. If I am exporting 1kW on phase B and C (for example), with no import, but the Multiplus is on phase A, it can still import 2kW on phase A with no supplier charges.
I have researched Modbus meters but I just wondered if anyone had done anything similar - presumably I need an interface between the Modbus and the Multiplus to convert Net Export Power into Victron charge now Power.
I will have a zappi car charger and a DHW store system to soak up the excess energy. Ideally this would be priority order
1. Car (if present)
2. House batt
3. DHW cylinder
Although I would be willing to always do House first if that is less complicated (the zappi and DHW system will communicate internally but I don't know if they would communicate with the Victron).
I believe delays can be programmed such that the Victron could have a shorter delay on start up than the Zappi which would ensure the house batt gets priority over the car.
Of course as the car isn't always there I thought that would be best if the car got first dibs as hopefully if its a sunny day the house would get a chance later after the car leaves.
I should be good for producing approaching 16000kWh per year with this system (the 1year old original 4kW array made close to 4000 in a year and the 12kW array is less shaded)
My background is Marine - off grid so use a lot of Victron products. I have used R pi a bit so I guess this or Arduino could maybe be a useful interface if there isn't a premade solution available.
Thanks in advance
Hello, i am new to Victron and want to set up a larger battery system 3 phase etc.
ET340 is already installed, but it is far away from the battery location, unsuitable to run long 485 connections.
Is there a way, has someone experience, to convince the GX controller to use Modbus/TCP to talk with the ET340 (via a modbus/TCP to RTU bridge of course),
Has anyone experience in or tried to bridge Modbus/RTU over IP (wifi, ethernet etc) ?
I'm using openWB to charge my EV. Unfortunately the Solaredge PV inverter allows only one concurrent TCP connection.
That means if the GX device is talking to the Solaredge the communication to the openWB is blocked.
But I've seen in the Modbus TCP menu of the (Venus-)GX that there is an entry for the SE PV inverter. I checked so far the documentation of the GX but without success.
Can anybody explain me what this means? May be I can use it to retrieve the production of the SE via the GX device.
Hello Victron users and experts,
I hope you have some experiences in using Modbus-TCP commands. Perhaps my question is very simple to you. I found command "Input power 1" in the Modbus-TCP Register list and have to know something about the dbus-unit "VA or Watts". Do you know if I can request both types of power (apparent / active) ?
Thank you for your answer, because I'm not sure.