So you’ve got one RS485 master reading from the actual meter as slave, and then a second RS485 slave that emulates the meter and responds to the Solis Hybrid as master. Is a Python script how you are communicating between the two?> was it hard to do? How did you figure out the protocol and the encoding?
I used
2 RS485 interfaces:
- one is slave and emulates a smartmeter, with the inverter being master
- the other is master and talks to the actual smartmeter
So the python script can tweak values measured by the meter on the fly. It should work with all brands of inverters, if you can find the modbus registers for the meter.
I’ve got a PLC I am programming as an energy meter using Modbus CT sensors, so that mirrors your RS485 master, but sounds like I’d need a second PLC to emulate the Solis meter as an RS485 slave and I’ll need to figure out the easiest way to communicate between them…
As a worst-case I suppose I could use the digital IOs as a crude binary gas pedal: speed up (export more power); slow down (export less power).
Don’t plan to add the hybrid for at least a year but sounds like I have some background work to do…
Right now I'm not doing anything special with it, I'll use it to coordinate export between the two Solis inverters... because they can't do it on their own... and the guy who sold them told me they could.
Source code -> https://github.com/peufeu2/GrugBus
Sounds as though the easiest thing to do what I’m aiming for is to just leave the inverter in Load Offset mode and report more consumption than actual…With Solis you can set the meter placement:
"Meter placement: Load": it measures power used by the house. In this case there is no control loop, the inverter will output whatever power the meter says the house is consuming (plus export limit if applicable).
Oh, do it only recognizes consumption and cannot even sense export…. Bummer.That gives direct control over output power, but unfortunately Solis S5 outputs the absolute value of whatever the meter reports, so you can't use it to control battery charging from grid...
My nighttime plan is to take the inverter off grid. I’m hoping there is a way to control it to do that via Modbus, but if not, I’ll use a contactor."Meter placement: Grid" it measures power used by the house + inverter, and the control loop tries to keep it at zero (or below the export limit if it has excess power available). When this total is zero, the inverter exports as much power as the house uses, and everything's fine. Adding a constant value to the power reported to the inverter shifts the zero point. So, say it reads the meter, adds +100W, then passes the value to the inverter... then the inverter will try to bring that value to zero, which results in outputting 100W more than what the house uses, which is exactly what you want to do. However if you do that at night you will donate this extra power to the grid from your batteries, so changing the value added depending on state of charge could be more useful.
For daytime, it sounds like the easiest would be remain in Load mode and have the meter report a level of Load / consumption which corresponds to the Export Limit - (AC-coupled-Solar output - actual-load). If I’ve understood correctly, this will deliver exactly the power needed to export at the Export Limit.
In the early morning when the battery is low as well as in the late afternoon when the sun is setting, Grid mode would be better because then export from the Solis will be limited to incoming DC-coupled solar in addition, correct?
Ideally, I’d like to control when the hybrid switches between modes, but a preprogrammed schedule would probably work well enough…
Meter emulation is a fantastic way to take control of the inverter and should also allow the possibility to modulate charge power if there is a zero export zero import mode.> Hopefully that can be done without rewriting to flash.
It reads the meter every second so flash isn't going to be involved...