1
0
mirror of https://github.com/beestat/app.git synced 2025-05-24 02:14:03 -04:00

Moved thermostat system type and stage count logic into dedicated functions

This commit is contained in:
Jon Ziebell 2021-01-22 08:38:48 -05:00
parent cda8857019
commit f6f544ba35
4 changed files with 58 additions and 14 deletions

View File

@ -57,3 +57,43 @@ beestat.thermostat.data_synced = function(thermostat_id, required_sync_begin, re
current_sync_end.isSameOrAfter(required_sync_end) === true
);
};
/**
* Helper function to get any system type.
*
* @param {number} thermostat_id
* @param {string} mode heat|auxiliary_heat|cool
*
* @return {string} The system type.
*/
beestat.thermostat.get_system_type = function(thermostat_id, mode) {
const thermostat = beestat.cache.thermostat[thermostat_id];
if (thermostat.system_type2.reported[mode].equipment !== null) {
return thermostat.system_type2.reported[mode].equipment;
} else if (thermostat.system_type2.detected[mode].equipment !== null) {
return thermostat.system_type2.detected[mode].equipment;
}
return 'unknown';
};
/**
* Helper function to get any stages.
*
* @param {number} thermostat_id
* @param {string} mode heat|auxiliary_heat|cool
*
* @return {string} The system type.
*/
beestat.thermostat.get_stages = function(thermostat_id, mode) {
const thermostat = beestat.cache.thermostat[thermostat_id];
if (thermostat.system_type2.reported[mode].stages !== null) {
return thermostat.system_type2.reported[mode].stages;
} else if (thermostat.system_type2.detected[mode].stages !== null) {
return thermostat.system_type2.detected[mode].stages;
}
return 'unknown';
};

View File

@ -30,17 +30,18 @@ beestat.component.card.my_home.prototype.decorate_system_type_ = function(parent
(new beestat.component.title('System')).render(parent);
var heat = thermostat_group.system_type_heat !== null
? thermostat_group.system_type_heat
: 'unknown';
var heat_auxiliary = thermostat_group.system_type_heat_auxiliary !== null
? thermostat_group.system_type_heat_auxiliary
: 'unknown';
var cool = thermostat_group.system_type_cool !== null
? thermostat_group.system_type_cool
: 'unknown';
const heat = beestat.thermostat.get_system_type(
thermostat.thermostat_id,
'heat'
);
const heat_auxiliary = beestat.thermostat.get_system_type(
thermostat.thermostat_id,
'heat_auxiliary'
);
const cool = beestat.thermostat.get_system_type(
thermostat.thermostat_id,
'cool'
);
var button_group = new beestat.component.button_group();
button_group.add_button(new beestat.component.button()

View File

@ -56,7 +56,10 @@ beestat.component.modal.change_system_type.prototype.decorate_contents_ = functi
for (let key in options) {
(new beestat.component.title(titles[key])).render(parent);
let current_type = thermostat_group['system_type_' + key];
let current_type = beestat.thermostat.get_system_type(
thermostat.thermostat_id,
key
);
let button_group = new beestat.component.button_group();
options[key].forEach(function(system_type) {

View File

@ -170,10 +170,10 @@ beestat.layer.load.prototype.decorate_ = function(parent) {
beestat.setting('temperature_unit', thermostat.temperature_unit);
// Rename series if only one stage is available.
if (ecobee_thermostat.settings.coolStages === 1) {
if (beestat.thermostat.get_stages(thermostat.thermostat_id, 'cool') === 1) {
beestat.series.sum_compressor_cool_1.name = 'Cool';
}
if (ecobee_thermostat.settings.heatStages === 1) {
if (beestat.thermostat.get_stages(thermostat.thermostat_id, 'heat') === 1) {
beestat.series.sum_compressor_heat_1.name = 'Heat';
}