The easiest way to connect a remote asset to Assetwolf is via a GET request, and the simplest configuration is when one communication device sends data for a single asset.

For example, you might be monitoring temperature and pressure from sensors on a group of machines. The obvious thing is to connect a network-enabled sensor to the first machine and push data to Assetwolf. It works, great! And so you connect more sensors using the same method.

But is this the most efficient?

If you're prototyping, or if the data is sent via a high-bandwidth, low-cost connection — like wi-fi or ethernet — then this can work just fine. But this method does require that every device connects and sends a data object every time it reports to the portal. There are many scenarios in which this is simply too expensive.

In situations where the asset is mobile or battery-powered, this can be so, because the connection is likely to be via GSM, using 3G or 4G. The connection is "expensive" because it uses more power and more bandwidth.

Enter... Multiplexing

With multiplexing, assets that are physically close together send their data to a common "gateway" device. This is local traffic, and might be achieved using a local ethernet connection, Bluetooth, or wi-fi. In the example of the group of machines, you would have a sensor on each machine, but all sensors would use a short-range connection to a common gateway device.

The purpose of the gateway device is thus to gather data from its child devices, amalgamate them, and send a single data object to the Assetwolf portal.

This is better because it makes just one connection for all of its assets. So overall there are less connections and the sum of the data sent is smaller than if it were done individually.

There is no longer a one-to-one relationship between devices and assets; one device now handles data for multiple assets.

How it works

Let's take the example of an asset sending data from a temperature and pressure sensor.

In a non-multiplexed system, for two assets you'd need two communication devices, each having a unique ID. The data might look like this from the first asset:

[Connection string identifying device and asset 1]
temp = 15.5
pressure = 1.4

and from the second asset:

[Connection string identifying device and asset 2]
temp = 16.2
pressure = 1.5

To multiplex the data, you would have a single communication device acting as a gateway for both assets, and in its data transmission it would code the fields accordingly.

Assetwolf can use a system of "prefixes" before each field name. So the data from the device might look like this:

[Connection string identifying gateway device]
a1.temp = 15.5
a1.pressure = 1.4
a2.temp = 16.2
a2.pressure = 1.5

So to set up 2 different assets on Assetwolf, both assets would have the same Device ID but different data-key prefixes.

This is more efficient because the connection string is relatively "expensive" as it contains authentication information, timestamp and perhaps other information. The multiplex method is also "cheaper" because only one device needs to wake up and connect to the network, not a device for every asset.