v0.8.1
This commit is contained in:
+9
-7
@@ -1235,15 +1235,16 @@ async fn control_zones(state: &AppState) -> Result<()> {
|
||||
|
||||
// House "off" means the smart thermostat does not control inherited zones.
|
||||
// A zone explicitly switched to heat/cool remains independent and may still run.
|
||||
let effective_mode = if zone.inherit_house_mode {
|
||||
settings.house_mode.as_str()
|
||||
let effective_mode_owned = if zone.inherit_house_mode {
|
||||
settings.house_mode.clone()
|
||||
} else {
|
||||
zone.mode.as_str()
|
||||
zone.mode.clone()
|
||||
};
|
||||
zone.effective_mode = effective_mode.to_string();
|
||||
zone.effective_mode = effective_mode_owned.clone();
|
||||
let ownership_blocked_by_group = zone.local_thermostat_power != Some(true)
|
||||
&& groups.iter().any(|group| !group.power_enabled && group.zone_ids.iter().any(|zone_id| zone_id == &zone.id));
|
||||
refresh_control_ownership(&mut zone, settings.house_power_enabled, ownership_blocked_by_group);
|
||||
let effective_mode = effective_mode_owned.as_str();
|
||||
|
||||
let previous_source = zone.control_temperature_source.clone();
|
||||
// Never feed the thermostat a cached GREE temperature after any communication
|
||||
@@ -2030,14 +2031,15 @@ pub async fn build_control_plan(state: &AppState) -> Result<ControlPlan, AppErro
|
||||
|
||||
for mut zone in zones {
|
||||
let device = devices.iter().find(|item| item.id == zone.device_id);
|
||||
let configured_effective_mode = if zone.inherit_house_mode {
|
||||
settings.house_mode.as_str()
|
||||
let configured_effective_mode_owned = if zone.inherit_house_mode {
|
||||
settings.house_mode.clone()
|
||||
} else {
|
||||
zone.mode.as_str()
|
||||
zone.mode.clone()
|
||||
};
|
||||
let blocked_by_group = zone.local_thermostat_power != Some(true)
|
||||
&& groups.iter().any(|group| !group.power_enabled && group.zone_ids.iter().any(|zone_id| zone_id == &zone.id));
|
||||
refresh_control_ownership(&mut zone, settings.house_power_enabled, blocked_by_group);
|
||||
let configured_effective_mode = configured_effective_mode_owned.as_str();
|
||||
let manual_device_mode = device.map(|item| if item.power { item.mode.as_str() } else { "off" });
|
||||
let effective_mode = if zone.device_manual_override {
|
||||
manual_device_mode.unwrap_or(configured_effective_mode)
|
||||
|
||||
Reference in New Issue
Block a user