mirror of
				https://github.com/beestat/app.git
				synced 2025-11-04 02:47:01 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/**
 | 
						|
 * Temperature Profiles Details
 | 
						|
 */
 | 
						|
beestat.component.modal.temperature_profiles_info = function() {
 | 
						|
  beestat.component.modal.apply(this, arguments);
 | 
						|
};
 | 
						|
beestat.extend(beestat.component.modal.temperature_profiles_info, beestat.component.modal);
 | 
						|
 | 
						|
beestat.component.modal.temperature_profiles_info.prototype.decorate_contents_ = function(parent) {
 | 
						|
  const thermostat = beestat.cache.thermostat[beestat.setting('thermostat_id')];
 | 
						|
 | 
						|
  const container = $.createElement('div')
 | 
						|
    .style({
 | 
						|
      'display': 'grid',
 | 
						|
      'grid-template-columns': 'repeat(auto-fill, minmax(150px, 1fr))',
 | 
						|
      'margin': '0 0 16px -16px'
 | 
						|
    });
 | 
						|
  parent.appendChild(container);
 | 
						|
 | 
						|
  const fields = [];
 | 
						|
 | 
						|
  [
 | 
						|
    'heat_1',
 | 
						|
    'heat_2',
 | 
						|
    'auxiliary_heat_1',
 | 
						|
    'auxiliary_heat_2',
 | 
						|
    'cool_1',
 | 
						|
    'cool_2',
 | 
						|
    'resist'
 | 
						|
  ].forEach(function(type) {
 | 
						|
    if (thermostat.profile.temperature[type] !== null) {
 | 
						|
      const profile = thermostat.profile.temperature[type];
 | 
						|
 | 
						|
      // Convert the data to Celsius if necessary
 | 
						|
      const deltas_converted = {};
 | 
						|
      for (let key in profile.deltas) {
 | 
						|
        deltas_converted[beestat.temperature({'temperature': key})] =
 | 
						|
          beestat.temperature({
 | 
						|
            'temperature': (profile.deltas[key]),
 | 
						|
            'delta': true,
 | 
						|
            'round': 3
 | 
						|
          });
 | 
						|
      }
 | 
						|
 | 
						|
      profile.deltas = deltas_converted;
 | 
						|
      const linear_trendline = beestat.math.get_linear_trendline(profile.deltas);
 | 
						|
 | 
						|
      fields.push({
 | 
						|
        'name': beestat.series['indoor_' + type + '_delta'].name,
 | 
						|
        'value':
 | 
						|
          'Slope = ' +
 | 
						|
          linear_trendline.slope.toFixed(4) +
 | 
						|
          '<br/>Intercept = ' +
 | 
						|
          linear_trendline.intercept.toFixed(4) + beestat.setting('units.temperature')
 | 
						|
      });
 | 
						|
    }
 | 
						|
  });
 | 
						|
 | 
						|
  fields.forEach(function(field) {
 | 
						|
    var div = $.createElement('div')
 | 
						|
      .style({
 | 
						|
        'padding': '16px 0 0 16px'
 | 
						|
      });
 | 
						|
    container.appendChild(div);
 | 
						|
 | 
						|
    div.appendChild($.createElement('div')
 | 
						|
      .style({
 | 
						|
        'font-weight': beestat.style.font_weight.bold,
 | 
						|
        'margin-bottom': (beestat.style.size.gutter / 4)
 | 
						|
      })
 | 
						|
      .innerHTML(field.name));
 | 
						|
    div.appendChild($.createElement('div').innerHTML(field.value));
 | 
						|
  });
 | 
						|
};
 | 
						|
 | 
						|
beestat.component.modal.temperature_profiles_info.prototype.get_title_ = function() {
 | 
						|
  return 'Temperature Profiles Info';
 | 
						|
};
 |