ConstantGraph Data Logging and Charting

I see there’s now a means to filter channels during import when you enroll the hub - nice.

Are you still considering adding a way to “bulk delete” channels already subscribed? I’d like to clean up my channel config but the individual delete process remains time consuming and lacking any cost (to me) to just keep everything laziness will prevail.

Hi @georgeh
I’ve added bulk channel delete to the to-do list but it’s not that high up at the moment.
Next on the list is the ability to scroll the time axis on a graph, even after it is saved.

There have been some more updates to ConstantGraph (please reload the page to make sure you are running the latest version)

  1. You can now scroll along the horizonal axis of a Time Series graph to quickly scan through historical data. To enable, click the gear menu icon in the Time Series graph and select “Time axis scroll”. The scrolling will be available in any dashboards you create.
  2. There have also been a number of bug fixes and performance enhancements.
1 Like

hi Simon - only just come across this, at first glance, early days in collecting data, it’s exactly what i was after. Only feedback as others have said, it imported all my devices and i ended up having to remove a lot of them one by one. Thanks again, hope to donate once this has bedded in a bit.

@Daniel_Berry thanks for the feedback. I guess I’ll push this up the priority list. Could you (and @georgeh and others) describe how this might be done better? e.g.

  1. On the Data Types page, a button to bulk delete all channels that don’t have a currently enabled data type.
  2. On the Channel Config page, the ability to select multiple items and delete them all simultaneously
  3. some other idea?

Your feedback appreciated.

2 sounds good. Add a checkbox to each channel the user can select, then give a bulk delete option for all selected channels. The concept could be extended to allow other operations on multiple selections in the future via a drop-down of options (although I can’t think of other multi-channel operations of interest at this time other than deleting, some could come up).

  1. What would be best/cheapest way to get values for outside temperature at my house? Apparently none of my devices report this into ST
  2. I would like to see deviations from set points to actual temperatures but I am unable to create time series difference or difference from set point to temperature over time. I would like to track this difference and find correlations for different temperature differentials w/ outside temperature.

Hi @bafonso.

I’m sure there are plenty of devices out there that can report on outside temperature. Maybe even a weather app can give you local enough temperatures depending on how precise you need it to be.

On your second point, I’m interested to understand a little more about what you are trying to achieve. What do you mean by finding the correlations for different temperature differentials with outside?

Are you trying to show the relationship between two different channels? E.g. what is the relationship between inside temperature and outside temperature? Or how does the difference between inside and outside temperature relate to my heating energy consumption?

I have just released a new feature that allows you to bulk delete channels. Just select the channels you want deleted in the Channel Config menu and click on the new Delete all selected channels button @Daniel_Berry @georgeh.

A major improvement for those of us with lots of unused channels – thanks!

After using it, just a few comments (for future enhancement bin):

  • The 20 channel selection limit was not obvious to me and it took me a few iterations to figure that out. If you do need such a low limit, then I’d suggest noting that somewhere in channel config scheme view.
  • A button to “deselect all selected channels” would be useful
  • I found I usually used the “search channels” facility to list candidates for removal, then individually select each in the resulting search list. A button to “select all search results” in that view would streamline selection considerably (assuming one could still deselect individuals in the search results afterwards of course).

As it turns out, one now needs to have an edge smartapp which means we need a local computer to run a bridge driver 24/7 … at which point one wonders, why not just use home assistant

I’d like to gauge how long it takes to heat up my house 1C from temp X C if it’s -20C or -10C outside. This could potentially be used to estimate how long in advance to start heating up the house if I’m away for a few days. It could also be useful to estimate when to start heating up the house and by how many degrees if we don’t plan on using electric heating for a certain timespan of time during peak electricity usage in quebec (hydro quebec)

1 Like

@georgeh - all good points. I’ve made the 20 channel limit more obvious but also made a note to see if that can be improved later. I’ve also added a deselect all channels button. I’ve also added the search results button to the list of ideas for the future.

Maybe I am missing something but how do I get my thermostat status to be imported? i.e., when it is heating? This would be the thermostatOperatingState bit. It does import thermostatMode but that is not useful since it never changes, it is always set to heat :slight_smile: (or 1)


@bafonso - My first thoughts on this are that there would have to be a way to create a channel that is calculated as a function of the values of other channels. Whilst doing the maths is easy, the overhead of managing custom channels is not. I’ll add it to the list of feature requests for the future.

@bafonso - I have just added a new data type for thermostatOperatingState so it should start working now. Let me know if it’s OK as I don’t have a device to test it with. Thanks!

note that ConstantGraph can only graph numbers and not text values such as those available from thermostatOperatingState. To make it work, the text values are converted into numbers, e.g. cooling = 0, fan only = 1. The numbers that are used can be seen by hovering over the icons in the Icon Set of the data type in the Data Types menu:
Whilst you can use custom data types to log types that are not built in, they do not yet have the ability to convert text to numbers like some built-in type do.

Thank you @constantgraph , it is very nice to have this info! I wonder if there is a way to improve its presentation. I think ideally if we could split the y axis into two separate ones, it would be good. Right now I can improve it by setting the dimensions of the secondary axis but a split axis would make it more resilient to zooming, etc.

I am wondering if there is a way for me to convert Auto to 0 and heating to 1? Right now my thermostat is apparently on “Auto” (3) instead of off, so creates confusingly looking graphs. The other thing would be to see if it’s possible to have last value if it’s missing. See below :slight_smile:

There have been a few more updates as follows:

  1. Custom data types now automatically convert text to numeric values. This brings custom data types in line with built-in data types and means that pretty much any data type can now be monitored.
  2. The values of the text conversions on data types have been made clearer:
  3. Raw data stepped line and stepped area graphs now automatically extend
1 Like

@bafonso - I’d like to make sure I understand your request properly. Can you send me a private message with the channel numbers that you are using in your graph (the one you wanted separate axes for) and what settings you have them on - ideally save the graph and let me know what it’s called.
To reduce the confusion on which setting the graph is on, let me see if I can label the axes with the text value.
As for filling in the last missing value, I may have just fixed that - let me know if it works for you.

1 Like

The latest release includes converting numeric values into their text equivalents:

  1. Time Series graphs now show the text values on the y-axis, if they are available
  2. tables how show the text values, if available