[OBSOLETE] GroveStreams SmartThings QuickStart

Hi All,

Just to let you all know that Mike Mills (founder of GroveStreams) and myself have put together a QuickStart tutorial for integrating SmartThings with GroveStreams.

It walks you through all the steps you need to do to get your sensors logging to GroveStreams so that you can have a dashboard of your home.

You can read it here

Let me know what you think,


Just set this up, will give it some time to populate. One thing I would like to see added is possibly a way to log when the furnace heat/ac is running vs not running. Any ideas on how to do that?


Thanks for putting this together! It seems like a fantastic solution to logging data and I am trying it out right now. One quick note, there is a bug in your smart app - you have an extra and incorrect definition of putParams on line 136.

You’re absolutely right - I’ve let Mike know so it should get fixed shortly - many thanks!

I’m afraid I haven’t had a chance to play with devices like that so I don’t know what capabilities they have. Can you see a likely candidate in https://graph.api.smartthings.com/ide/doc/capabilities?

If you can then you should be able to use the same pattern as that used for the other capabiliies:

  1. Write an input line that saves the devices to a new collection, say “hvacs”
  2. subscribe to an hvacs event or events
  3. Handle the event to call sendValue providing it with a closure that converts the attribute value to something GroveStreams can use (for on/off things this would be true/false.


Just did some more digging…
Looks like you might want “capability.thermostat” and an event handle for “thermostatMode”. You could map the modes to numbers and send them to GroveStreams - the graph shown would then indicate the state.

I’m sure someone could come up with a better idea though!

To determine furnace/AC status, I would stick a temperature sensor in the discharge duct and log it to GroveStreams. If you want an explicit on/off point, then GS has the ability to calculate a new binary stream value by “derivation”, which is a VERY flexible calculation engine.

I’ve added a thermostats category, and I’m doing:
subscribe(thermostats, “thermostatOperatingState”, handleThermostatOperatingStateEvent)

…where the handler is:
def handleThermostatOperatingStateEvent(evt) {
sendValue(evt) { it == “idle” ? “false” : “true” }

Works fine for me.

1 Like

So, do I read correctly that the free offering is limited to 20 data streams?

Thank you! I was able to add that and get it working. Just waiting for the data to be published to the dashboard now. Seems it is only showing data for 4 devices rather than all of them. Wonder if it takes a while?

I haven’t seen that anywhere - where did you read it?

You will only see the device when it sends a reading, which is when the value changes.


I have a question about asynchronous data streams in Grovestream - is there an easy way to display asynchronous binary streams (ie doors, lights, HVAC status) with a linear time scale? I have enabled the ‘step’ mode for the plots on the dashboard, which gives a good representation of the boolean variable. However, it ends up plotting the data against a non-linear time scale resulting in square wave, even if the variable is false for 59 minutes and true for 1 minute.

@rando you need to specify a “data point cycle”, example 1 hour, with a number of events. Oops “cycles” not events. Enter 48 Cycles to plot two days on a fixed scale.

There are lots of great tweaks you can do. Like edit the component, to tell the stream to “count” multiple samples of each binary event, and put that count in the 1 hour cycle. Since each open usually has a close, there are two counts, so you can “derive” a new stream to divide the count by 2.

1 Like

I was wondering if anyone had been using this and how effective was it? Is this the best option for logging your data or are there others?

I’ve been using it for a couple of months now, and I’m very satisfied with it: reliable, flexible enough, fast, free or very inexpensive at worst.
I’m quite sure it’s not the only way to do it.

@minollo What have you been using this for temp, open/close and motion? I have some data in there now, I was trying to figure out how to set up and configure the dashboards on Grove.

I was curious to see how other people are using it, and what are the biggest benefits they are getting out w/ their data. Should I focus on temp or other data points in your opinion?

This is part of one of the dashboards I have created, with information about temperature (inside in various areas and outside), thermostat batteries and heating (equivalent to on/off, open/close, movement/no-movement).

Just curious what’s your typical data rate is? Are hitting any GS free usage limits? Any stats? Thanks.

I’m using a self-hosted package so it looks different, but the benefits are the same. Probably the biggest benefit I got out of it was after we installed one of the Aeon Home Energy Meters. It became easier to see and understand what in the house was using power and when.