GroveStreams is a new IoT platform in the cloud designed to interact with users and remote M2M networks. Some developers let us know their interest in integrating with GoroveStreams since it seems to be providing some nice capabilities such as:
Lagarto-MAX is very adaptable to this kind of online services so we accepted the challenge to add compatibility for GroveStreams. This took us a few hours except for some minor issues that were rapidly solved thanks to the excellent support provided by the GroveStreams development team.
GroveStreams introduces a new concept called "component template", which lets us format data streams in a common way. This is specially useful when you try to upload temperatures or power consumptions from multiple sources. In any case, we suggest to keep your eyes on this platform. For the purpose of this development we have just scratched the surface so please don't take this post as a deep analysis about GroveStreams.
GroveStreams is device oriented so we can transmit multiple datastreams (endpoint values) associated to a common device or component into a single HTTP request.However, lagarto-max's Event Manager is mostly endpoint oriented so we will be taking each endpoint value as an independent component from GroveStreams.
Figure 1 : GroveStreams Component view. Lagarto-MAX pushes a
single data stream per component
The above components and data streams don't need to be created from GroveStreams since they are automatically created by the platform after receiving the first requests from lagarto-max. Programming such requests from lagarto-max is as simple as creating a new event. This is in fact the same procedure as for the rest of cloud based platforms currently supported by lagarto (Xively, ThinkSpeak, sen.se, ...)
Figure 2 : Upload event from lagarto-max
Once a new event is created we need to define the trigger condition. For this case we are going to trigger the event whenever Humidity1 changes (see Figure 3 below).
Figure 3 : Trigger condition from lagarto-max
Finally, we need to create the action from lagarto-max where the value of Humidity1 is pushed to GroveStreams. "Template ID" is optional but if you use a predefined template then GroveStreams will be able to format the contents of the datastream (floating point, units, ...) and even predefine some tasks for them.
Once you get lagarto-max running the new events you will see new components from GroveStreams as shown in Figure 1.
Figure 5 : Humidity values being logged by GroveStreams
GroveStreams also provides some nice GUI features, exportable to custom web pages. The folks from GroveStreams created a dashboard for us:
In summary, GroveStreams appears as a very promising alternative for anyone wanting to manage M2M data from the cloud. We wish the best to the GroveStreams team and also expect that the panStamp community will enjoy this new integration as well. A new version of lagarto has been released, including support for GroveStreams. You can download it with the rest of our Python tools from our Download section. A new Raspbian image has also been uploaded to our repositories. You can follow these instructions showing how to grab this image into a blank SD card.