arduinoxively

Is Xively a good fit where data is simple/infrequent, and processing of that data is done externally to it?


I'm looking to design a solution with a rather large number of Arduino devices all returning a very simple data point (let's say temperature for now so as to not release too much information). The single data point is collected only once a day and sent to a central site, from which reports can be generated.

All of the devices will have some device-specific data (a location ID and device ID, in combination unique across the entire network of devices) burnt into EEPROM. The data collected is simply that device-specific data and the temperature itself (but see question 2 below). So, a very simple payload.

Initial investigations into Xively seem to mandate every device be created within Xively itself but that's going to be a serious pain given the many hundreds we expect, even in the pilot program.

And, given that each device uploads its unique ID along with the temperature, it seems to make little sense to have to configure all of them within Xively when the data itself can be easily segregated and reported on at the back end based on the device-specific data.

The following diagram should illustrate what we're looking at:

enter image description here

So, a few questions:

1/ Is Xively a good fit for this sort of scheme? In other words, is it worth using as just a data collector from which we can access the data at the back end and make nice reports? We have no real interest (yet) in using Xively as the interface - for now, it's enough to collect the data at the central site, generate a PDF file and mail it out.

2/ Is it acceptable in Xively to define your single device (an uber-device) as "my massive cluster of Arduino nodes" and then have each node post its data as the uber-device? They seem to just refer to "device" without actually specifying any restrictions.

3/ Given that timestamp information is important to us, can Xively inject that information into its data when the API call is made to upload the data? That may remove the need for use to provide on-board clocks for the devices.

4/ Have people with Arduino experience implemented any other schemes like this (once a day upload)? The business prefers Xively so they don't have to set up their own servers to receive the data, but there may be other options with the same result.


Solution

  • Here we go:

    1. Yes, this is the exactly what Xively was designed for, a massive data broker, or as the buzzword IoT guys like to call it: a Device Cloud, the most simple and easy to use on the market today.

    2. Not sure if there is any restriction on the number of datareams a unique feed can handle, but having thousands of datastreams per feed does not seem to me the smartest way of using Xivley. Creating individual feeds for each phisical device is the idea behind it, devices must be able to auto-register and activate a pre register feed, read the samples on Xively tutorial, this is not dificult at all, also serial numbers can be added/create in batches from text files.

    3. Sure, you may provide timestamp information while uploading, if you DO NOT provide it, Xively will assume it is a real time feed and will add current upload time to the data.

    4. Surely it was implemented before, it is important to notice that Xyvley does not care who, or what is providing data to a feed, you may share one key & feed number with thousands of devices and they can all upload to the same feed or even to the same datastream, however, managing data uploaded this way can become very messy for lack of granularity and fine control.