If you have any device that can be turned on and off or otherwise operated by switching the electric current in its wires, we have good news for you: Any device from the FLOW family can operate it too! This includes embedded units, smart cameras, servers and more. All that is thanks to the addition of input/output expanders. With them, you'll be able to do things like:

  • Switching highway signs based on traffic density or a detection of a traffic jam,

  • starting and stopping a video advertisement playback based on presence of people in an area, or

  • raising a barrier or opening a gate based on presence of a vehicle with a whitelisted license plate.

Basically, if you can switch something, you can let it be controlled by FLOW. So let's take a closer look at what I/O expanders are, how to get one, and how to work with them.

What are I/O expanders?

They're a piece of hardware that primarily receives commands on its ethernet interface and, according to their contents, switches electronic relays on its outputs. The outputs can be seen in the picture above–each output has an upper and a lower port. The relay can connect or disconnect these two ports, so if you connect wires to them, the expander can control the flow of electricity between them.

I/O expanders come with different number of inputs and outputs. Currently, FLOW doesn't support reading inputs from expanders.

Getting an I/O expander

The easiest way to obtain one is from DataFromSky. It can come already seamlessly integrated with your new embedded unit, or separately, which allows you to deploy the expander at a different site from a FLOW device and connect them over an ethernet network. We handle each request individually–contact us for more information and quotes.

Working with I/O expanders

Once you've set up a FLOW device and expander and, if they're separate, connected them to a network, the only thing remaining is to let them talk to each other. This section will demonstrate how to do that with a simple example.

Let's say we have a camera watching a perimeter and an on-site alarm siren that we want to turn on when a person enters the perimeter. We've connected the siren's activation wire to the I/O expander. In FLOW Insights, we've also created an analytic by supplying it with an RTSP stream address.

First, we need to set up the analytic. We draw a zone, drag it onto the canvas, and set its time mode to Now. Then we attach a value widget to it and also set its time mode to Now. Thanks to the widget, we now have an output of how many people are currently in the zone.

Now we need to connect this output to the I/O expander. To do this, we go to the Interfaces menu, add a new interface and select the type that corresponds to our I/O expander, in this case the Quido ETH 4/4.

Let's edit the interface by selecting the pencil icon on the right.

We fill out the name and network address of the expander, then add a new output and edit it.

There we fill the output's name and ID–this decides which output on the I/O expander the signal will be sent to. In our case, we select Digital Output 1 (DO01), because that's where we connected the alarm siren.

Finally, we need to define an expression whose result will decide whether the output relay will be swithed on or off.

In the upper part we see all analytics and all widgets that have been defined in each of them. In our case we have just one analytics called Demo Analytics and the Intruder count widget.

By selecting the Intruder count widget, its representation is embedded into the expression string as $3-0-15"Intruder count". We manually add > 0 for explicity. The meaning of the whole expression could be translated as: "If the value of the widget 'Intruder count' is greater than zero, set the result as true." Whenever the expression is evaluated as true, the corresponding output relay on the I/O expander is switched on, otherwise it's switched off.

The expression uses the Javascript syntax. See the dedicated article for more information about expressions.

Once we save the expression, we can see its results change in real time in the interface detail screen. The expander's output is set accordingly.

Supported I/O expander types

Currently, FLOW supports these types of expanders:

  • Quido ETH 0/2

  • Quido ETH 4/4

  • Quido ETH 8/8

  • Papago TH 2DI DO ETH

However, we're open to requests for more supported types.


We'll be happy to answer any questions you may have. Contact us!

Did this answer your question?