ConstantGraph Data Logging and Charting

I’ve been working on an integration between SmartThings and (which is a cloud based logging and graphing site for home automation). ConstantGraph has been working with the Ezlo/Vera platform for a while now but this is the first attempt to hook it up to SmartThings.

Is anyone interested in testing it out and giving feedback on how well the integration works? The service is completely free. Of particularly interest is anyone who has a whole home energy meter capable of logging at at least every 30 seconds or better (e.g. Aeotec HEM) as there is a feature to “disaggregate” the energy signature into the individual devices (even if there are not smart).

Once you have created an account there is an option on the account page to connect to your SmartThings account.


Very interesting. this is always a hot topic in the forum. :fire:

Is this specific integration using the new API architecture? So it will continue to work after the groovy cloud is phased out? Over the years there have been a number of projects of this type, some self-contained, some integrations to other services, but I think almost all of them are going to disappear once the Samsung hosted groovy cloud goes away, which is supposed to be soon. So I’m sure there will be a lot of demand for an energy logging project that will work with the new architecture.

Official announcement on the architecture change just in case you haven’t seen it:


Hi JDRoberts,

Yes - I’m aware of the new architecture. There are actually two integrations here, one that uses the latest SmartThings Connected Service architecture which uses both the APIs, the webhook lifecycle events and oauth authentication, and another one that just uses the APIs with a Personal Access Tokens (PAT).

Unfortunately, SmartThings does not currently provide a mechanism to publish Connected Services on their new architecture. I’m looking forward to that being available which would make the integration very simple for end-users.

That leaves the Personal Access Token route currently used and I’m interested to see how simple people find to set-up and use.

Not a line of groovy in sight (or should I say in site :wink:!)


Excellent, I’m sure many people will be interested in this integration! :sunglasses:

Speaking just for myself, I always appreciate seeing a business model where there is a free tier with limited features and then paid tiers with additional features. It gives me more confidence that the business will be able to keep going, and isn’t just hoping for an acquisition. Good luck!

Tagging a few people who might be interested (I know Nathan is already following the thread)

@rontalley @tom_guelker @Automated_House @mvevitsis @joshua_lyon @johnconstantelo @jlv @TAustin @jody.albritton


Thanks for tagging. I wonder if this would be of interest to those using Edge drivers that have energy consumption tracking - examples are drivers from @Mariano_Colmenarejo, my virtual energy/power meter, or my Shelly driver.

For awareness/comment @milandjurovic71 @Diegocampy


Hello, do you have a tutorial or provide support for this solution?

1 Like

Thanks for the tag – I saw the thread when it got created. But I’ve moved all my devices and automations to another (non-SmartThings) platform, including all my data collection and charting.

1 Like

Thanks for the tag. Very interesting, for now I have created the account and made the smartthings token. Then I’ll try to understand how it works. Thanks

1 Like

Thanks everyone for your interest.
@Luis_Canelo there is some documentation available on the help pages: Constant Graph Help.
@jlv there is also an API for getting data into the system if you are interested. What system are you using now? I’m always interested in where the flow is going.

If anyone spots a bug or wants a new feature - I’m open to feedback. Thanks.

1 Like

Me Me Me Me!

I am so interested in this. Thanks for the tag.

1 Like

@rontalley if you want to give the energy disaggregation a go, sign-up to ConstantGraph and connect to your SmartThings account as described here: Disaggregation requires the “Historical Analysis” subscription (all subscription levels are free) which can be changed from the account page. Then you can select your home energy meter via the Energy menu as described here: You will need to have at least 1 full day of power (watts) history before you can enable disaggregation.

Let me know how you get on, or if you need any help setting it up.

1 Like

Hubitat. Groovy apps from SmartThings run on it nearly unchanged, except as a bonus they run locally (reliably) on the hub and not in the cloud.

1 Like

I use a 3EM shelly with Drive edge (thanks @TAustin ) but it does not appear among the energy control devices. Maybe because it doesn’t provide data every 30 seconds? but only every minute? Is this the reason? Too bad, it was the thing that interested me most :slight_smile:

Thanks @jlv. I’ve not looked at Hubitat before - it sounds similar to Vera in the the apps run locally - Vera gave you root access to the box so you do write apps to do pretty much anything (except it kept running out of memory and crashing!)

@Diegocampy - Can you let me know which device number (in ConstantGraph) your energy monitor is? I can then have a look at your account and check. I already had a quick look but you have a number of devices that measure power and I wasn’t sure which one it was.
The way that energy disaggregation works is by examining the shape of the waveform - if you only sample once per minute, it’s not enough to work with. A sample rate of 5 seconds would be best but 30 seconds is just enough but a bit unreliable. Searching around the internet, it might be possible to get the Shelly 3EM to sample much faster (if this is the same device, they have it reporting every 10 seconds - GitHub - apreb/shellyEMmockup: base code for shelly EM energy meter)

1 Like

is #46 on/off and 47 power or 29 Dev.
I use it with the drive edge made by Taustin and I remember that he had created it so that the data was updated every minute, but I have no idea what the Shelly 3EM can give in order as time between measurements

Sampling a zwave or Zigbee home automation system in real time would likely crater the network. These are low power mesh systems intended for very small messages sent infrequently, your basic light switch model.

If you want to collect frequent samples in the device itself and then send it over the network once a day to do historical analysis, no problem.

But for real-time analysis, it’s best to stick to WiFi devices or another constant contact protocol.

Otherwise you’re likely to start seeing reduced Quality of Service because of messages that can’t get through the mesh due to all the polling traffic.

SmartThings has some rate limits in place for exactly this reason.

An individual customer can try it if they want to see how it goes in their setup, but they should also be prepared for unreliability created by the excessive polling. And that unreliability can occur anywhere on the network on any device, not just the one doing the energy reporting. It’s a traffic jam problem.

Again, data collected in a device and only uploaded once a day won’t cause this. But too frequent messaging will.

It’s the biggest mindset challenge that most DIY home automation users face: understanding the difference between a constant connection protocol like WiFi and an asynchronous mesh protocol like zwave. But it’s critical to understand the difference if you don’t want to deal with dropped messages caused by excessive polling.

The Shelly, for example, is WiFi, and is a good choice for reporting multiple times an hour—I just don’t know if the ST rate limits will let it through for under a minute cycles or if they treat WiFi the same as Zigbee and zwave in this regard.

@TAustin might know.

@Diegocampy - I had a look and that device appears to be reporting itself as a switch but it is clearly doing a lot more than that! It might be possible to extract a bit more data out of it - I’ll report back after an investigation. There is not much I can do from here on the reporting times but if you (or anyone else on this forum???) can find a way to make it report more frequently that would be great.

1 Like

@JDRoberts - you’re right there is a big different between what the mesh networks can cope with vs something like WiFi. I’ve spent a enough time fiddling with the parameters of various Zwave devices to know what you can get out of them. I have an Aeotec Home Energy Meter (Z-wave) pushing out power (watts) readings every 5 seconds with no trouble, but I had to tweak it to reduce the frequency of energy (kWh) and current (amps) readings to keep my network from clogging up (I have a set of window blinds that all close at sunset and when the network gets busy they start closing at slightly different times). I also have another energy meter pushing out watt readings every 20 seconds, speeding up to every second when something interesting happens (as well as a host of other less chatty stuff). So far it’s all pretty stable so my experience is that 5 second sample time is fine if it’s only 1 or 2 devices and you are careful with the settings.

I’d be interested to see where the bottle neck is too on the Shelly. Should be able to crank up the rate if it’s a WiFi device.


Perhaps off topic but also interesting is when I moved my Fibaro Wall Plug over to SmartThings it was reporting watts every 30 seconds and I knew it could do much better. I fiddled with the parameters but it didn’t fix it and after a bit of poking around, I found that the SmartThings driver was setting the parameters to only report every 30 seconds and overwriting my settings. The way around it was that the Fibaro actually had 3 sets of reports it could run, so I set up one of the other reports to process more frequently and that worked fine.