Today I connected one of the solar controllers to check if I can access it via Modbus. The documentation is not clear in that regard and one can only guess. However Mathijs has answered from his mobile on Saturday and is taking this to the support desk and not the forum. Good move, however I tried it out and it works as I guessed and as he confirmed.

There are still a couple of issues to solve. Two with Victron and one with myself. I have a very weird phenomenon which occurred now twice in the morning.  I will get to that later.

I integrated the devices in my device log of the central app and implemented the ping. That was done yesterday before I had the solar controller connected. This one is not yet pinged, but that will come today. The log shows if a device is active or not and all internal routines can access that info. I also have a watchdog process pinging each inactive device on a regular basis. Each device has it’s own heartbeat interval and the ping routine uses this to very connection. Each active communication sets the active indicator and each failed communication (after n retries) sets the device inactive. Some devices will generate an event when inactive and that can be a simple log entry, a warning or a visual/audible alarm. It depends on the component of course and it’s importance for the network.

If the Can gateway or the CCGX would go offline all hell will break loose. 🙂

devicepanel_withvictron

Image below shows the AC panel. The energy displays (kW) are dummies at the moment. They are not yet calculated. The output of the 6000W inverter and the AC input is actual data from the Modbus.

ac_panel_with_live_data

And this brings me to one of the two issues I have still with Victron. The Limiter shows 6.4, this is the readout from the Multi, however in above situation I had the Limiter set to 0 on the Digital Multi Control and did not allow AC input, but the data I get back is not 0. That is either a bug or another field is missing for that info.

battery_load

Above id the Charge/Load panel.  I can see the individual charge components on the left, which are the two solar controllers and the charger from the Multis, and the larger gauges show total charge and total load. This is data from the BMV which does include the small inverter and all other internal 12V loads, not just the inverters.

ac_panel

Above shows the situation when I upped the Limiter to 8 Amp, which is nicely reflected in the data I receive, however the AC output data of the inverters does not add up. The Watts are not logical considering the other two values. That is the second issue to be clarified with Victron.

Then I moved on to integrate the Modbus interface with my charting components. I can set a scaling grid which automatically contracts with time to a maximum of 8 hours across the chart. This way I can see the whole history without scrolling or panning. I am not sure at this stage if I implement a zoom and pan. Probably not for some time and really not before everything else is finished. The development is quite simple because I am connected from my office to the van and can develop all this on my desktop. Occasionally   I go down to switch something on or off, since I do not yet have the remote switches working.

battery_charging_chartThe image above shows the situation when I switched off the aircon and increased the AC Limiter to allow charge. The the charger (both Multis) kick in and pump up the battery. This is clearly visible in the image above changing from white to green. I may change the white to orange though.

battery_charge_chart_compressed

The next image shows how the XAxis compresses with time and the image below shows a further compression with the end of the charge process.

battery_charge_chart_finished

This all works now as it should, however I have to clean up my internal structure for the Modbus interface and all the routines accessing it. I will write a separate Modbus server which coordinates the transactions required to avoid overlaps and proper sampling of the values needed for energy calculation. Right now the routines are in a test stage which is not suitable to implement a few dozen source fields effectively. Sofar I have made a proof of concept and finalised the charting integration. I can now easily produce pretty much any chart I want and I will make a few, just for the fun of it. Also for future expansion on the list is the data logging. Right now I only use the data for display and calculations and do not store the data for further analysis or use. This will also come in a future version when everything else is done.

If anyone is interested in more details about the programming, just contact me.