Getting historical data

I’m trying to get the historical data of some sensors using the statesBetween() of the device class. But i get an error: ’ java.lang.IllegalArgumentException: Command ‘statesBetween’ is not supported. Supported commands: []’. The same holds true for the statesSince(), eventsSince() and eventsBetween() functions. The events() functions works, but i can’t specify a Date from which i need the data from. Are these functions implemented? Or are there some other way to get the data?

The SmartThings folks were very helpful in sorting out this problem (Thanks @dlieberman, @urman and especially @scottvlaminck). Here is how to get historical data from devices in case anybody is interested.

Following are the methods of the device class which could be used for it:

  • Device events between 2 dates: eventsBetween(Date startDate, Date endDate, [max: N])
  • States between 2 dates for a given attribute: statesBetween(String attributeName, Date startDate, Date endDate, [max: N])

Do remember to use the square brackets [] for the max argument. All hell broke loose just because of those missing brackets. And do provide the attributeName while using statesBetween method. There is a small mistake in the current documentation.

2 Likes

That’s awesome!! What are you doing with the data once you pull it?