ConstantGraph Data Logging and Charting

I’m trying to get the average temperature of the different levels of my home and compare that to the outside temperature. I know I can change to averages in the graphs, but I have more than 20 allowed per graph

1 Like

Hey Simon @constantgraph

i’m looking to replace some functionality I had with Simple Event Logger and wondering if ConstantGraph will work. I don’t think the below are possible, but let me know if i’m mistaken:

  1. The sensors outputs voltage. I don’t think constantgraph supports voltage capability?
  2. I’m more interested in viewing the data in a table. are tables supported?
  3. Can you manipulate the data reported from smarthings at all? I would like to take the raw value and multiply by a fixed number.

Thanks!

Hi @Automated_House.

Thanks for reaching out. Could you please send me an email to contact@constantgraph.com with the email address that you used to register on ConstantGraph? Let me know the names of the devices that you want to measure the voltage from and I’ll see if I can get that enabled for you?

Tables aren’t currently supported - the reason being that some of the data can get big (the maximum number of points on a graph goes up to 20,000) which wouldn’t work well in a table. However, it could be possible for smaller amounts. Could you describe exactly what you want to see in the table (e.g. how many channels? across what time span? in what units, hours/days/weeks etc?)

There is some secret functionality for scaling the data in ConstantGraph e.g. y = mx + c where m and x can be defined but it is currently hidden as it hasn’t been tested properly yet. Again, can you let me know exactly which devices you can to scale and by how much and I’ll see what I can do.

Hi @granzy can you send an email to contact@constantgraph.com with the email you registered from and let me have a list of all of the channels you want to put into one graph. I’ll take a look and see if I can make it work better for you. Thanks.

@Garrett_M - I’ve just released a change to the “advanced” graph settings menu. If you try to switch back to basic from advanced, a warning confirmation now appears before your graph configuration is reset. Hopefully this will stop it happening by accident.

1 Like

@Automated_House - I’ve just released a new (experimental) tables feature on ConstantGraph. It’s under the graphs menu and allows you to display the results in a table. The configuration menus are cut down slightly to make sure your table doesn’t get too big. However, it will still allow you to create some pretty big tables and will scroll as necessary. It probably still requires a bit of work but please let me have your feedback.

1 Like

@Automated_House - I’ve just added voltage onto the list of recognised capabilities. However, I haven’t been able to test it very well as I don’t have a suitable device. Please take a look and let me know what you think. Note that it may take up to several hours before data starts flowing in. If you send me an email with the details of the device you are using, I can test it properly. Thanks.

1 Like

Looks like a good start for the tables. I would like to see a horizontal scroll bar in the window and a setting to pivot where the data is by columns instead of rows.
image

@Automated_House - the missing scrollbar is now fixed and there is now also an option for a vertical layout rather than horizontal.

1 Like

Very nice! Can you add an option to sort most recent at top? Might be good to wrap the text in the column headers, too.

Does Constantgraph support multiple SmartThings locations?

@Automated_House - ConstantGraph does support multiple SmartThings locations. They are called controllers in ConstantGraph and all locations (up to the maximum supported on your subscription) will be loaded when you add your SmartThings access token. If you add additional locations in SmartThings, it can be refreshed in ConstantGraph by re-adding your access token again.

1 Like

@Automated_House - the Data Tables now have the ability to change the sort direction from the options menu. I’m afraid there were unwanted side effects when I tried to get the table headers to wrap around. However, if you hover over a table header a tooltip will show you the full name, if it has been truncated.

1 Like

Now when you select “Open at last data” on the options menu of a Time Series graph (or Data Table) and select 1 day, you will get the last 24 hours of data rather than the whole of the current day. This “rolling” time period will hopefully make for easier comparisons (especially in the morning).

1 Like

Help required… I’ve been looking at applying a conversion to data that comes into ConstantGraph as per the request from @Automated_House. There are a number of ways of tackling this and I wanted to see what would work best for most people. Here are the options as I see them (feel free to suggest something else)…

  1. Data needs to be manipulated because it is in a set of units that ConstantGraph doesn’t understand. e.g. gas from cubic feet to kWh / temperature from Celsius to Fahrenheit / time from epoch to date. In this scenario it is probably best to have a feature that recognises the source units and gives an option to convert to the required unit. ConstantGraph would know the conversion formula and conversion would be a simple click. This is simplest from a usability point of view.

  2. A conversion can be specified as a formula y = mx + c where x (multiplier) and c (offset) are arbitrary values specified for any channel that needs conversion. The conversion is applied to all incoming data on that channel from the time it is applied and the converted values will be stored in the database. Changing the conversion will not change historical values which will remain converted as before. As the conversion is applied to the raw incoming data, aggregations will automatically take into the account the conversion. Exporting the raw data will export the converted values.

  3. As above with the multiplier and offset but the conversion is applied to the display of the graph only (not the raw data). The system will automatically calculate how the aggregation changes the data on a particular graph but the data in the database remains unconverted. Changing the conversion will change all historical values. Exporting the raw data will export the unconverted values.

Note that ConstantGraph already does some conversions (e.g. Watts to kWh and kWh to cost) and these all follow the option 3 approach.

Many thanks

I think the approach differs on the use case. Going in reverse order, I think the option should be to apply the conversion to whichever type to both the processed data and the graph would be useful (raw data would still be an option for troubleshooting).

As to use case, the second option would be best if measurement and evaluation (M&V) is done and the user cannot calibrate the device in smart things. It would also allow for cases, where an invariant load has been measured and could be applied as power in constant graph. This my preferred case.

Option #1 as you point out is likely the easiest and handles most cases, but obviously requires a look up table that you’d have to update regularly. It would not allow for M&V or a invariant load being an equivalent power value.

#2 would fit what I was looking for I think. In this particular case, an Edge driver has a custom capability (water pressure) that i’m wanting to analyze. But since ConstantGraph doesn’t support custom capabilities, I was trying to think of another way to see the data. In the end, we ended up modifying the Edge Driver to duplicate the value to a standard capability (Humidity) in order to get it into ConstantGraph.

Thanks for the feedback. It looks like modifying the values as they come in and storing the modified values in the database is the way to go. It would also be useful to add custom “capabilities” so that any device in SmartThings could be read. I’ll have a think about how that could work. It may take a few weeks before I can share anything though.

1 Like

Hello, I was excited to run across this service, since I’ve been dreading finding a Grovestreams replacement given the ST transition (or jumping to an alternative platform)… a few quick questions before I jump onboard (sorry if these have been previously addressed).

  1. All tiers are currently “free”. If I choose the highest tier now and later decide to downgrade, what happens to any existing data that was logged?
  2. I assume export to some format (csv or xls) is supported?
  3. When “daily data” is logged, is that the average of all readings captured during that day or the most recent at the end of the day, or something else? (Gotta think its an average but want to check).
  4. If I start capturing data from a “legacy” groovy DTH driver, and switch the device to an Edge driver, is that transition seamless to the data logging, or does the driver change make it a new device from the perspective of the data logging system?

thanks

Hi @georgeh to address your questions individually…

  1. The higher tiers allow for longer data retention and additional locations. When you downgrade, any data that is older than the lesser retention period will be deleted. Currently, any additional locations over the subscription limit will be retained.
  2. It is possible to export the raw data of an individual channel in csv format. You can’t export the aggregated data.
  3. You can chose from lots of aggregation functions (sample - the first data point, change - the different between the maximum and minimum values during the period, sum - of all of the logged values during the period, weighted average, minimum, maximum, on duration - the number of hours the device was on, on count - number of times the device switched on, sample count - the number of samples taken)
  4. the data is queried via the SmartThings API, the driver should be transparent. However, it is keyed from the SmartThings device Id (I’ve not tested whether this changes when you change the driver or not)

Hope that is all good for you but let me know if you need anything else.