Runtime Statistics

Hello, thank you for the awesome work on beestat! I love using this tool to try to optimize my house thermostat settings, while staying comfortable. I know this can be done by downloading the data as a CSV and doing some math on Excel, but I think it’d be really helpful if there was a chart, just X-Y table, or actual graph, that had the runtime hours that the heat/AC was on, and if possible, relate it to the outdoor (or indoor setpoint) temperature, for an entire day/week/month, etc.

Assuming that the weather doesn’t change. My goal is to look at beestat and quickly see that the furnace was on for 100 hours this week. I then go make a change in the thermostat. Run the furnace for another week. Go back to beestat and check the runtime, e.g. it was 120 hours this week, so the change that I made made the furnace run more.

Hi Maty!

This is actually possible on the Runtime Summary chart. Just use the dropdown on that chart to choose a custom range. The popup will let you group the data however you want.

More info here: Runtime Summary Help

As an example, here’s my runtime for the past 3 months grouped by week:

1 Like

Am I able to download data on a month summary?
Tried downloading the CSV but that’s on a 5 min basis. I am trying to compare my monthly gas usage vs total run time per month by loading this into an excel sheet.

If you open your browser console and paste this code in you can download that chart. It’ll be daily, so you still need to aggregate but should help:

var rows = [
  ['thermostat_id', 'date', 'count', 'avg_indoor_humidity', 'avg_indoor_temperature', 'avg_outdoor_humidity', 'avg_outdoor_temperature', 'max_outdoor_temperature', 'min_outdoor_temperature', 'sum_auxiliary_heat_1', 'sum_auxiliary_heat_2', 'sum_compressor_cool_1', 'sum_compressor_cool_2', 'sum_compressor_heat_1', 'sum_compressor_heat_2', 'sum_degree_days', 'sum_dehumidifier', 'sum_economizer', 'sum_fan', 'sum_humidifier', 'sum_ventilator']
];

for (var runtime_thermostat_summary_id in beestat.cache.runtime_thermostat_summary) {
  var runtime_thermostat_summary = beestat.cache.runtime_thermostat_summary[runtime_thermostat_summary_id];

  var row = [];
  rows[0].forEach(function(column) {
    row.push(runtime_thermostat_summary[column]);
  });

  rows.push(row);
}

var csv = 'data:text/csv;charset=utf-8,';

rows.forEach(function(row) {
  csv += row.join(',') + "\r\n";
});

var encoded = encodeURI(csv);
window.open(encoded);

How would this need to be modified to pull the full log of 5 minute interval data?

This won’t work for the high-resolution data. The Runtime Summary chart only has the daily aggregated data. You can download the high resolution data from the main menu in the top right.