Announcements‎ > ‎

panStamp and lagarto now compatible with GroveStreams

posted Apr 23, 2014, 5:10 AM by Daniel Berenguer   [ updated Apr 23, 2014, 6:18 AM ]

The IoT platform

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:
  • On-line graphs and data logs
  • Event handling and calendars
  • SMS alerts
  • GUI widgets that can be inserted into custom web pages
  • RESTful API
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.

Integration with lagarto

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.

GroveStreams Component view. Lagarto-MAX pushes a single data stream per component

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,, ...)

Upload event from lagarto-max

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).

Trigger condition from lagarto-max

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.

New action - Push value from lagarto-max

Figure 4 : New action - Push value from lagarto-max

Once you get lagarto-max running the new events you will see new components from GroveStreams as shown in Figure 1.

Humidity values being logged by GroveStreams

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:

GUI widgets from GroveStreams

Figure 6: GUI widgets from GroveStreams

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.