ConstantGraph Data Logging and Charting

I used to be a field tech before SmartThings existed. There are always a lot of local factors. If the device doing the very frequent energy reporting is also the most frequently selected repeater for several other devices, then they can become “unreliable“ because the repeater is busy. But if you have other devices available to do the repeating, there may not be any noticeable issues.

So there are often things you can do that will improve the situation, but even in this community we’ve seen people complaining that some particular sensor was unreliable when in fact the issue was the amount of polling they were doing on a completely different device. Without seeing a route map, which smartthings does not provide to its customers, it’s just hard to predict in advance what will happen at any one home.

Fortunately, as noted, the shelly is a Wi-Fi device so it may run into some artificial limits that ST has applied, but otherwise it should be fine.

Yes, He has an internal relay, in addition to the current meter

As far as I am aware all drivers and smartapps are restricted to the rate limits documented here.

My reading of that link says that smartapps can do an update per second, while devices are limited to updates every 5 seconds. However I think there are some exceptions to this in certain ‘burst’ situations. For example, this wouldn’t fly when you are onboarding multiple devices within seconds.

The only time I’ve ever seen rate limit errors is when I was doing some work with direct connected devices. I haven’t seen any errors from Edge drivers, and there are definitely cases where a device might burst several state updates within a second. It’s likely that continuous state updates, like every second for a prolonged timeframe would result in problems, but I haven’t really experimented with it too much.

1 Like

The last I tried, I couldn’t get any Edge devices to be recognized by the Energy monitor stuff in the app. Right now it only seems to support known Samsung appliances. @Mariano_Colmenarejo has tried this too with his zigbee drivers, but no success.


If you manage to get your energy data into ConstantGraph and disaggregate it into the separate devices, you should be able to ask questions like, what device is using the most energy or costing me the most money to run? In this example there are a lot of “vampire load” devices that never switch off.

Looking closer at the washing machine, you could ask, when do I use the washing machine most? and plot the amount of energy used by the washing machine on any day vs the average amount on that day of the week (this graph also overlays the 30th and 70th percentile energy usage - showing what is normal for any day of the week)

From the graph you can see that 14th April was a heavy usage day for the washing machine (as opposed to 7th May which was a below average day). Checking the 14th April, you can see when the washing machine was used and how much energy it used.

If you input your energy cost you can see this as a cost rather than in kWh.

1 Like

@Diegocampy taking a look at your device number 29, as well as the main switch, it contained 3 sub-devices which ConstantGraph wasn’t recognising. That’s now been fixed in a production update today and you have 3 new sub devices (107, 108 and 109). The sub-devices report themselves as category type “Other” which isn’t very helpful and will be the reason they aren’t recognised by other energy apps. I’ve modified the data in your account so they are of category type “CurbPowerMeter” in ConstantGraph now so they can be picked up by the Energy Configuration section. Device 107 appears to be reporting about once every minute but 108 and 109 report much less frequently.

If you want to use the energy disaggregation feature you’ll still need to sample at least every 30 seconds, but at least you can access the other energy analysis tools now such as switching between price and energy.

I also noticed that the meter is reporting in Wh rather than kWh which is more normal. I’ll take a look to see if ConstantGraph will need to convert this or not.


Thank you. I’ll try to see if I can do something.Thank you.

1 Like

I’ve noticed that some people have more than 1 location on SmartThings but only the first location is getting imported into ConstantGraph. This is because the basic subscription on ConstantGraph only allows1 location. However, if you move up to the next subscription (for free) then and add your Personal Access Token again, more locations can be imported.

An update has now been released to make the messaging around this a bit clearer.

1 Like

Thanks, I can tell you that 107 108 and 109 are the three different clamp meters that device uses. Currently in use only the first, with all the consumptions of my home. 108 and 109 are not used, so the data you see is just noises probably.
Your program is really well done, but my knowledge is so limited that I haven’t been able to understand much. But one thing for sure I understand. channel 107 is seen as one of the many that add up consumptions, but in reality 107 will be the total of all consumptions, and not a sum of all the others. I’ll try to figure out if I can adjust this setting. I can’t do anything else, but it’s my problem of understanding.

1 Like

It’s code interface is exactly like SmartThings Classic, except that the Groovy code for apps and devicetypes runs on the hub and not in the cloud. E.g., existing SmartThings Groovy code often runs unchanged.

If you already have a Groovy version of your interface, it might just work with no (or minimal) changes.

1 Like

Thanks to everyone who has signed up to ConstantGraph and tried it out. Has anyone got any feedback or improvements. I’m interested to know how easy people are finding it to use or whether there any essential features missing? For those of you with more than 100 devices, are you managing to find what you need easily?

I also thought I’d share some interesting analysis showing the relationship between the average outside temperature and the amount of gas consumed. I knew the amount of gas would go up as it got colder, but until I saw this graph, I wasn’t sure what the relationship would look like exactly. I’d be interested to know if anyone can find any other interesting relationships between device variables that are being logged.

Forgive the rookie questions, but I am struggling with the whole app. I have created an account and logged on successfully. I have a handful of devices that report power, but the vast majority that don’t.

The ones that do report power are contributing to the dashboard, but all the other graphs seem to not work. This is no big deal really I was just curious to see what this looked like.

What I was probably more interested in was the whole home smart meter device (device 180) which is integrated into ST. I am not sure where you are located so forgive me if this seems a basic thing to say, but I am in the UK and smart meters that connect to the main power inlet are becoming (very) common here. The integration is on the Life tab of the ST app and reports daily in the app (although the meter itself reports real time to a display in my house).

I assume that this smart meter does not work with the constantgraph application?

@skinnypope - thanks for reaching out. I’ve had a look into your data and I’ve been learning some stuff too about how the SmartThings platform works so it’s not a rookie question.

At a high level there are locations in SmartThings that map into Controllers in ConstantGraph. Under that are devices which are also called devices in ConstantGraph - however, multipart devices (not so common) become separate devices in ConstantGraph. All devices should be imported correctly (If not then let me know). Under devices are capabilities which map to channels in ConstantGraph.

Some capabilities are common and useful such as powerMeter or temperatureMeasurement and import directly. Others are not so useful and I have chosen to not to import such as polling and healthCheck. If you go into the history tab on a specific device in the SmartThings app - ConstantGraph should be able to pull in anything you see listed here.

Other capabilities are bespoke to an app provider - in your example of the Smart Meter device, there is an energy capability but it does not have any data in it so nothing gets through to ConstantGraph. The full set of capabilities that ConstantGraph imports from SmartThings right now is…

  • lock
  • illuminanceMeasurement
  • energyMeter
  • powerMeter
  • thermostatMode
  • battery
  • relativeHumidityMeasurement
  • motionSensor
  • switchLevel
  • switch
  • temperatureMeasurement
  • thermostatHeatingSetpoint
  • thermostatCoolingSetpoint
  • alarm

Some of these capabilities have their text values converted to numbers by the import process e.g. switch off becomes value 0 and switch on becomes value 1.

So the short answer could be sorry, that’s not the way it works…

However, I spent some time looking at the Smart Meter device and installed it myself see how it works and buried in the configuration data, I found something that might be useful. The app appears to store the previous day’s energy consumption in 30 minute intervals in a bespoke format. I wouldn’t normally suggest supporting bespoke apps (as there are probably thousands of them), however as you say this one seems very common. Would you be interested in seeing if the data can be extracted and imported?

As for the other devices that don’t seem to work, I see you have a number of other apps which don’t use the standard reporting capabilities. I could take a look at those at some point, but it looks like the energy one is more interesting.

Let me know what you think. Thanks.

1 Like

Hi Simon, thanks for the reply, I think it all makes sense thank you, I’ll have a tinker with some of my devices.

The Smart Meter is the one interesting one worth diving in a little deeper maybe. I am not sure if you changed anything, or if I didn’t notice it before, but a new Channel 282 “Smart Meter -powerConsumption” appeared and is now reporting values. I have a full graph for yesterday, but a flat line for today?

I also am able to add it for Disaggregation, but nothing showing yet (as expected).

1 Like

@skinnypope there was a production release literally just a few minutes ago which added the new Smart Meter functionality :grinning:. The SmartThings driver for the Smart Meter appears to get the full previous day’s meter readings once a day, so it will always be at least a day out of date.

I’m not sure how it let you enable disaggregation for Device 180 as the update frequency is much too low for it to work reliably. You may have discovered a bug. Now that it’s done, I’m interested to see the results but I suspect it’s not going to be at all accurate.

Let me know if there are any other devices you’d to get the data for that aren’t currently showing


@skinnypope It turns out the disaggregation engine couldn’t work with such low sample rates and gave up. The bug that allowed you to select the device in the first place has now been fixed. If you have entered a whole home energy device, you can still get some good information on energy usage by clicking the “Create System Energy Dashboard” button on the Energy → Configure menu (edit: I’ve just noticed you’ve already done this)