The Redflow BMS contains a flexible 'rules' engine that allows for both event based and periodic updates of BMS-derived information.
The DIO engine can use values derived on-board the BMS to send values out to external systems.
The functionality for this engine is accessed via the BMS Configuration->Digital I/O menu.
The Fields menu shows you all of the currently calculated BMS data values, and updates the on-screen continuously as you watch. This is the set of input values that are capable of being used via the other fields on this page, to drive external outcomes.
Most of these fields are fairly self-explanatory, however Redflow Support (firstname.lastname@example.org) can help you if you can't figure out what one of these fields does, or if you would like us to consider creating a new or derived field for a specific site requirement.
The Endpoints menu is where you can view existing endpoints and create new ones. BMS endpoints define the way that a remote physical system gets information sent to it.
The most common Endpoint types are "BMS_Relay" (that simply drives the on-board BMS relay to turn on or off based on being sent a 0 or 1), and the "MODBUS-TCP" endpoint (that allows numeric values to be written to arbitrary MODBUS-TCP devices accessible via the TCP/IP network.
Some examples of MODBUS-TCP endpoints are at the end of this article.
The Rules menu allows the definition of 'event based' outcomes, where conditions are specified based on existing fields and when those conditions become true (i.e. on an 'edge triggered' basis), a value of your choosing is sent to an endpoint destination.
This allows for very flexible outcomes.
- Temperature values derived by the BMS can be used to turn cooling fans and/or heaters on/off at appropriate times
- System charging can be turned on and off by modifying Energy Management System settings based on BMS values such as State of Charge and Charge_Enable flags
- Generator 'Call' signals can be sent based on low SoC and/or low bus voltage
The Periodic menu allows any Field value available to the BMS to be sent regularly to a specified endpoint every 'n' seconds on a continuous basis.
This allows for useful outcomes such as:
- Sending a flag value in the BMS to an external system to cause an outcome to track BMS status (for example the AC PV Disable Victron endpoint can be driven by the BMS Charge_Disabled flag).
- Sending the SoC of the system, and charge/discharge current limits (etc) to an upstream Energy Management System that can't use CANBus and requires MODBUS-TCP as its update mechanism.
The Apply Changes menu must be used to cause any and all changes made to the Rules or Periodic page to be activated (so they take effect).
There are some Victron specific endpoint examples here.
Here are some more examples of endpoints to drive relay and/or power control devices.
The 'Webswitch' endpoints below are compatible with a ControlByWeb WebSwitch product.
The 'Adam Relay' endpoints below are examples of driving the #0 and #1 relays on a multi-relay Advantech 'Adam' MODBUS-TCP relay device.