General - workflow for transceiving custom signals with Node-RED / Venus OS / Pi / Arduino

Hi all!

Apologies for the rather basic post, but I wasn’t able to find the more general info in a search.

So I’m looking to build a semi-industrial setup with multiple BMS of different brands, a variety of sensors and actuators from different brands (motors, encoders, accelerometers, etc), multiple controllers, an MPPT, etc. I’ll have a primary controller doing most of the heavy lifting but, while looking at Victron hardware for MPPT and BMS interfaces, I was told that the CerboGX can implement custom logic and have custom communications if implemented through Venus OS and Node-RED. Therefore, I’m curious if I can offload some of the more generic control strategies onto the Victron hardware. However, I’m having a little difficulty wrapping my head around how complex this task might be.

So far as I could tell, a typical arrangement might be: put Venus OS on a CerboGX if all your devices have Victron interfaces OR put Venus OS on a RasPi if you need a more custom gateway; for non-standard I/O, either create a custom Node-RED node and then run code on the Pi to generate the node input data OR interact with the I/O via an embedded controller like an Arduino and pipe communications to and from the Node-RED flow using some standard node (I couldn’t figure out what this might be); and use Node-RED to implement what logic you’re after.

Does this sound right? Are there examples of folks implementing non-typical industrial or vehicle (marine / automotive / etc) sensors and actuators this way?

Thanks for helping get me up to speed, and apologies if this thread is redundant.

Hi. I’ve not done anything with Cerbo GX but have been impressed by how easy it is to implement some quite complex logic in NodeRed on Raspberry Pi. I’ve got relays controlling chargers and an immersion heater based on solar power input and battery voltage. Next step is to use a temperature sensor on an Arduino to provide a feedback loop on the heater circuit. I control my power relays via the internal relay in the SmartSolar MPPT which doesn’t have sufficient current rating for 1kW loads but at some point I may have to use a relay board on the RPi for more channels. Hope this helps. Interested to know more about your system.

I think what I’m looking for is to reduce the total number of processors / controllers overall, so I’m hoping to use whatever comms the Cerbo (or similar unit) has to communicate to another device that’s handling other tasks in parallel.

Has anyone here seen or built gateways to go between Victron’s protocols and a more standard industrial communication protocol like Modbus / EtherCAT / MQTT / OPCUA / CANopen / etc?

Thanks!

Hi,

Few pointers:

  • Cerbo GX has always has Venus OS installed.
  • MQTT is quite native in Node-RED. Not much you’ll need to do for that.
  • Google for “Node-RED EtherCAT” to learn more on that. (Not many people within the Victron community will be familiar to Ethercat I’d think btw).
  • OPC UA, see node-red-contrib-opcua (node) - Node-RED. (And google yourself).
  • Can open, same thing

Hope this helps!

In general, Node-RED is a very suitable tool for that, especially when part of Venus OS since you have al Victron protocols then ready and available in it.

Thanks @mpvader , that’s very helpful!

Just as a confirmation about the lower layers: both MQTT and OPCUA can run on the Eth port, and the user doesn’t need to worry about intermediate layers like Transport/Network/Data, correct?